iOS逆向開發(fā)第二章-建立Tweak工程

建立tweak工程,最重要的就是配置theos掰茶。

這里插一段話,上一章講了從無到用usbmuxd連接越獄手機(jī),網(wǎng)上普遍文檔是直接 ssh root@ip的 然后tweak的配置也是直接傳到這個(gè)ip来涨,而一部分講的是usbmuxd用USB線連接越獄手機(jī) ?然而,我遇到的困難是 ssh root@ip 無法直接連接到手機(jī)启盛,也不是錯(cuò)誤蹦掐,就是無反應(yīng),哪怕有個(gè)錯(cuò)誤也好僵闯,開一整晚都無反應(yīng)卧抗,而用 ping ip 得到的是連接正常,關(guān)于這個(gè)問題請(qǐng)教過很多人鳖粟,也包括大牛社裆,都無法解決,所以這里后續(xù)會(huì)補(bǔ)充 如何在USB連接情況下 ssh傳輸數(shù)據(jù)給手機(jī)向图,這步也是卡了我這10天節(jié)奏的主要原因泳秀,我就一菜鳥,希望把我這一步一步東西榄攀,都分享給大家嗜傅,我知道自己摸索有多麻煩,我也是直接摸索過來的檩赢。

首先吕嘀,安裝theos。

這里首先要注意路徑問題,一開始不懂币他,自己在/opt/下建立了一個(gè)theos文件夾坞靶,后來沒辦法 用 rm -rf /opt/theos 刪除重新安裝,不然后面很多配置問題不能和網(wǎng)上對(duì)應(yīng)蝴悉,開始初學(xué)還是盡量都跟著主流教程走彰阴。

在命令行 輸入1、 export THEOS=/opt/theos? 2拍冠、sudo git clone git://github.com/DHowett/theos.git $THEOS

這時(shí)候使用 ?/opt/theos/bin/nic.pl (這句話是可以打開tweak模板)

如果出現(xiàn)這個(gè)錯(cuò)誤

[error] Cowardly refusing to make a project inside $THEOS (/opt/theos/)

這個(gè)需要修改.bash_profile文件就在路徑~下 沒有的自己建立就好 ‘.’表示隱藏文件 手動(dòng)mac下不讓建立? 可以用touch 命令建立? 然后用vi 在里面添加

export THEOS=/opt/theos

export PATH=/opt/theos/bin/:$PATH

這兩句話 這個(gè)就是路徑問題? 之所以上面說我自己建立了個(gè)theos文件夾 然后里面再裝theos 我修改這里 為/opt/theos/theos 作用無效 不知道哪里有問題尿这,為了避免扯太多麻煩,初學(xué)階段暫不研究庆杜,就重裝了theos射众。

然后輸入/opt/theos/bin/nic.pl

這個(gè)時(shí)候應(yīng)該就可以了 ?能夠出現(xiàn)

theos模板

這個(gè)時(shí)候就說明theos安裝成功 ?我們選擇11,網(wǎng)上大多還是5晃财,有點(diǎn)過時(shí)叨橱,可能你們裝的時(shí)候也不是11了,注意選擇tweak就好

然后填寫一些東西断盛,什么bundle 組織名 作者 就是最后一條要注意罗洗,是安裝完成后需要重啟的應(yīng)用,以進(jìn)程名表示

項(xiàng)目填寫

cd到工程目錄下 先用 命令 make 一下 我的理解 應(yīng)該是編譯的意思钢猛,

Makefile:1: theos/makefiles/common.mk: No such file or directory

Makefile:7: /framework.mk: No such file or directory

make: *** No rule to make target `/framework.mk'.Stop.

如果出現(xiàn)如上錯(cuò)誤 使用 ln -sf $THEOS 重新使用make

這時(shí)候錯(cuò)誤變成

==> Error:The vendor/include and/or vendor/lib directories are missing. Please run `git submodule update --init --recursive` in your Theos directory. More information: https://github.com/theos/theos/wiki/Installation.

make: *** [before-all] Error 1

說的很明白 讓我們運(yùn)行g(shù)it submodule update --init --recursive這句話 伙菜,都不用google了 這時(shí)候回到 theos目錄下 使用sudo git submodule update --init --recursive 注意加上sudo 這里有權(quán)限問題

然后再回到項(xiàng)目里面 使用make 這時(shí)候編譯很順利?

theos編譯成功

不要注意yueyu兩個(gè)字 ?這個(gè)tweak我來來回回建了3 4個(gè)吧 名字不重要

這時(shí)候需要安裝ldid,簽名用的命迈,這塊我本來想理一下再發(fā)贩绕,還是先發(fā)一下吧 ?不然萬一影響安裝就抱歉了

首先直接輸入 ldid

應(yīng)該是直接輸入ldid ?但我記得好像還下過一個(gè)ldid的包,不是很記得有沒有影響壶愤,如果有影響淑倾,可以私聊我,把這個(gè)包發(fā)你們征椒。

應(yīng)該是有影響的踊淳,你們可以自行網(wǎng)上下載個(gè)ldid 或者找我要一個(gè),網(wǎng)上大多需要把ldid這個(gè)bin文件拷貝到/usr/bin目錄下 但是mac這個(gè)文件夾權(quán)限不開放陕靠,不管用什么命令都無法將文件拷到這個(gè)目錄下,這個(gè)很氣啊脱茉,然后網(wǎng)上說可以/usr/local/bin用這個(gè)路徑代替/usr/bin路徑 因?yàn)闀?huì)先從/usr/local/bin目錄加載 然后再加載/usr/bin目錄 ?不清楚是不是這個(gè)說法?

sudo cp /Users/pro_cookie/Downloads/ldid /usr/local/bin

然后使用這句 將文件拷貝到了 /usr/local/bin目錄

這樣就算配置成功了? 后來發(fā)現(xiàn) 我好蠢啊? 好像使用brew install ldid就可以搞定這個(gè) brew是個(gè)命令行安裝工具的神器? 沒有的趕緊自行安裝 別問我? 因?yàn)槲彝?這個(gè)brew使用起來感覺和pip pod這些一樣? 很簡(jiǎn)單? 另外提一點(diǎn) 網(wǎng)上很多N年前的版本? 當(dāng)時(shí)使用的命令是apt-get 等同于 brew ?我之前很蠢 ?不明白 ?然后想安裝個(gè)apt-get 安裝死我了 ?后來因?yàn)楹孟耱?yàn)證還是什么證書問題 反正好像現(xiàn)在裝不了了 ?大家都說用brew代替了這個(gè)apt-get

好了 ?這個(gè)時(shí)候ldid也裝好了 ?回到我們的工程來

使用cat 命令可以直接看文件內(nèi)容剪芥,很好的命令

然后 說明一下 makefile文件是配置一些版本信息的 ?我給大家看一下我成功的配置


makefile配置?


這里需要說明的,就是開頭提到的USB連接方式ssh傳輸數(shù)據(jù)琴许,網(wǎng)上有的是THEOS_DEVICE_IP = xxx.x.x.x 沒有下面這句 export THEOS_DEVICE_PORT = 2222 因?yàn)樗麄兌际莣ifi連接 ?税肪。。。 我因?yàn)檫@句話至少卡了我5天時(shí)間 后來還是在公車上看帖子看到的益兄,回來一試 果然成功了 export應(yīng)該是多余的 ?只要后面的就好這里還需要注意的是 ?我的工程名是 secondTest ?自己根據(jù)自己的工程名修改上面需要修改的地方 自己找不同啊

然后是 Tweak.xm文件 這文件里面是我們要寫的代碼都寫在這里面锻梳,初始模板的文件是都被注釋掉的 運(yùn)行起來 手機(jī)就springBoard刷新一下 ?然后沒反應(yīng),我一開始不知道 還奇怪 代碼都有 手機(jī)也有反應(yīng)了 怎么沒出效果 ?后來才發(fā)現(xiàn)被注釋掉了


tweak.xm

上面部分是初始模板 ?我代碼是%hook %end之間這段?

然后運(yùn)行make package install 就應(yīng)該能傳輸?shù)绞謾C(jī)了

成功圖

中間還有一些錯(cuò)誤解決 净捅,不太記得了 疑枯,我在最后說一下吧

Makefile:1: /makefiles/common.mk: No such file or directory

Makefile:6: /tweak.mk: No such file or directory

make: *** No rule to make target `/tweak.mk'.Stop.

如果出現(xiàn)這個(gè)錯(cuò)誤? 就需要export THEOS=/opt/theos一下

==> Error:/Applications/Xcode.app/Contents/Developer/usr/bin/make install requires that you set THEOS_DEVICE_IP in your environment.

==> Notice:It is also recommended that you have public-key authentication set up for root over SSH, or you will be entering your password a lot.

make: *** [internal-install] Error 1

如果出現(xiàn)這個(gè)錯(cuò)誤 就需要export THEOS_DEVICE_IP=127.0.0.1


如果上傳手機(jī)最后一步中出現(xiàn)了這個(gè)錯(cuò)誤? 就需要 這就比較麻煩了 和下面那個(gè)錯(cuò)誤不一樣? 這個(gè)錯(cuò)誤是我自己亂搞? 不知道搞了什么搞出來的? 后來 去theos重新找了deb.mk文件 這個(gè)文件千萬不要亂修改

dpkg-deb: error: obsolete compressiontype'lzma'; use xz instead Type dpkg-deb--helpforhelpabout manipulating*.deb files;Typedpkg--helpforhelpabout installing and deinstalling packages.make:***[internal-package]Error2

如果出現(xiàn)上面這個(gè)錯(cuò)誤

/opt/theos/makefiles/package

sudo vi deb.mk ?使用這句代碼 ?上面那句是路徑

這里需要把lzma 改成xz 因?yàn)闊o法解壓xz文件 注意 !;琢>S馈!這個(gè)文件里面還有一個(gè)錯(cuò)誤

?$(ECHO_NOTHING)COPYFILE_DISABLE=1 $(FAKEROOT) -r dpkg-deb -Zgzip -b "$(THEOS_STAGING_DIR)" "$(_THEOS_DEB_PACKAGE_FILENAME)" $(STDERR_NULL_REDIRECT)$(ECHO_END)??

這段替換我整出了一個(gè)無語的錯(cuò)誤? 然后選擇重新替換掉deb.mk文件才解決? 并不是原theos的deb.mk文件

附上個(gè)連接https://github.com/moloch--/theos這個(gè)里面的/makefiles/package里面的deb.mk文件 替換之后好像連修改lzma變成xz都不需要了 我傳個(gè)截圖看看吧

自己摸索就是困難国章,希望有初學(xué)者能夠互相交流一下具钥,這個(gè)tweak的基本上所有坑都躺過 很多錯(cuò)誤都沒發(fā)表 ?有些找不到源頭了 ?有些改文件里面的 忘了改了什么 實(shí)在對(duì)不住大家 ?不過記憶深的都發(fā)出來了 ?既然是記住的 ?說明比較麻煩 ?記不住的 ?說明大家自己查下就能很簡(jiǎn)單的解決了 ?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市液兽,隨后出現(xiàn)的幾起案子骂删,更是在濱河造成了極大的恐慌,老刑警劉巖四啰,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件宁玫,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡拟逮,警方通過查閱死者的電腦和手機(jī)撬统,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來敦迄,“玉大人恋追,你說我怎么就攤上這事》N荩” “怎么了苦囱?”我有些...
    開封第一講書人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)脾猛。 經(jīng)常有香客問我撕彤,道長(zhǎng),這世上最難降的妖魔是什么猛拴? 我笑而不...
    開封第一講書人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任羹铅,我火速辦了婚禮,結(jié)果婚禮上愉昆,老公的妹妹穿的比我還像新娘职员。我一直安慰自己,他們只是感情好跛溉,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開白布焊切。 她就那樣靜靜地躺著扮授,像睡著了一般。 火紅的嫁衣襯著肌膚如雪专肪。 梳的紋絲不亂的頭發(fā)上刹勃,一...
    開封第一講書人閱讀 51,631評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音嚎尤,去河邊找鬼荔仁。 笑死,一個(gè)胖子當(dāng)著我的面吹牛诺苹,可吹牛的內(nèi)容都是我干的咕晋。 我是一名探鬼主播,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼收奔,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼掌呜!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起坪哄,我...
    開封第一講書人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤质蕉,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后翩肌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體模暗,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年念祭,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了兑宇。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡粱坤,死狀恐怖隶糕,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情站玄,我是刑警寧澤枚驻,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站株旷,受9級(jí)特大地震影響再登,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜晾剖,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一锉矢、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧齿尽,春花似錦沈撞、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至贷岸,卻和暖如春壹士,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背偿警。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工躏救, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人螟蒸。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓盒使,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親七嫌。 傳聞我的和親對(duì)象是個(gè)殘疾皇子少办,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容