iOS逆向入門(mén)應(yīng)用

最近公司業(yè)務(wù)需要蜂怎,簡(jiǎn)單研究了點(diǎn)逆向穆刻,做個(gè)筆記。

1.砸殼
下載ipa原包

1.可以在PP助手上直接下載杠步;
2.itunes中下載氢伟;
由于公司業(yè)務(wù)需要嗎,我通常是在虛擬機(jī)上幽歼,Safari瀏覽器中粘貼itms://itunes.apple.com/cn/app/idxxxxxx?mt=8朵锣,然后在iTunes中下載該應(yīng)用。下載后甸私,拖入到原電腦的某個(gè)文件夾诚些。(2020.3月份已經(jīng)不能使用)
3.使用Apple Configurator 2(具體教程不再寫(xiě)了)
需要appid賬號(hào),越獄手機(jī)皇型,另外手機(jī)上購(gòu)買(mǎi)太多的話诬烹,可能會(huì)導(dǎo)致卡死。
4.愛(ài)思助手
愛(ài)思助手-游戲-安裝應(yīng)用-打開(kāi)文件夾也可以下載原包弃鸦。但是下載的應(yīng)該是被愛(ài)思重簽過(guò)的绞吁,而且應(yīng)用有限。

砸殼需要配置環(huán)境寡键,由于時(shí)間原因掀泳,今天就不具體寫(xiě)了雪隧,網(wǎng)上很多教程。

1.frida-ios-dump砸殼方式:

1.將下載后的ipa包员舵,用iTools pro安裝到越獄手機(jī)中脑沿;
2.電腦連接越獄手機(jī),打開(kāi)終端马僻,輸入:iproxy 2222 22


image.png

如上圖庄拇,說(shuō)明已經(jīng)USB連接成功。
2.重新開(kāi)一個(gè)終端頁(yè)面,終端按照下面輸入

cd frida-ios-dump目錄
python ./dump.py app
python ./dump.py -l (打印手機(jī)上安裝的app)
python ./dump.py 下載的ipa原包 -o 砸殼存放的目錄(可直接執(zhí)行這一步韭邓,直接砸殼)

2.bagbak砸殼方式

1.需要安裝nodejs環(huán)境措近;
2.bagbak 包名或者ipa名字 -o 輸出路徑
提取ipa路徑~/Library/Group Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps/

此時(shí)在砸殼存放的目錄中會(huì)有砸殼后的ipa包,砸殼完事女淑。

2.代碼注入

代碼注入瞭郑,實(shí)際上就是注入Framework或者dyld動(dòng)態(tài)庫(kù),使用上面砸殼后的的ipa
1.新建個(gè)工程鸭你,目錄下新建APP文件夾屈张,將上面砸殼后的ipa放進(jìn)去;
2.用到的重簽名腳本(我暫時(shí)還沒(méi)有傳github上袱巨,網(wǎng)上也很多)阁谆,暫用‘腳本’代理稱(chēng)呼
在工程TARGETS-Build Phases-?-New Run Script Phase ,然后將腳本路徑拖入進(jìn)去愉老,編譯工程场绿,會(huì)發(fā)現(xiàn)工程目錄下出現(xiàn)個(gè)Temp的文件夾。砸殼的包體也能跑起來(lái)嫉入。
3.創(chuàng)建Framework焰盗,F(xiàn)ile - New - Target - Cocoa Touch Framework,
然后在該目錄下創(chuàng)建一個(gè)Hook類(lèi)劝贸,Hook.m寫(xiě)入load方法姨谷,隨便打印點(diǎn)東西,這是就是注入代碼的地方映九。
4.在TARGETS-Build Phases-?New Copy Script Phase梦湘,然后將Destination改為Frameworks,點(diǎn)擊加號(hào)件甥,將你創(chuàng)建的Framework加入捌议。
在上面的腳本的最后加入:

yololib "TARGET_APP_PATH/APP_BINARY" "Frameworks/LCHookFramework.framework/LCHookFramework"

運(yùn)行工程,則功能能夠跑起來(lái)引有,剛才Hook類(lèi)的load方法中的NSLog則會(huì)打印出來(lái)瓣颅,說(shuō)明我們代碼注入成功。
剩下的就可以在load方法內(nèi)注入需要的代碼譬正。

3.Class-dump獲取砸殼ipa的.h文件

class-dump:可以將Moch-O文件中的OC運(yùn)行時(shí)的聲明信息導(dǎo)出宫补,即.h文件
1檬姥、class-dump環(huán)境搭建
下載地址:http://stevenygard.com/projects/class-dump/

備注:

使用class-dump -H報(bào)錯(cuò)Error:Cannot find offset for address 0xd80000000101534a in stringAtAddress:猜測(cè)可能是因?yàn)轫?xiàng)目使用了Swift和Oc混編,官網(wǎng)的class-dump不支持dump swift files導(dǎo)致粉怕。

解決辦法:

使用該下載地址:https://github.com/AloneMonkey/MonkeyDev/blob/master/bin/class-dump

2健民、打開(kāi)終端輸入 open /usr/local/bin

3、把dmg文件中的class-dump文件復(fù)制到 /usr/local/bin

4贫贝、更改權(quán)限:終端輸入 sudo chmod 777 /usr/local/bin/class-dump

可以終端輸入class-dump秉犹,查看是否安裝成功。


說(shuō)明安裝成功

步驟:找到ipa的可執(zhí)行文件.app路徑稚晚,創(chuàng)建一個(gè)存放獲取到.h文件的文件夾
終端輸入:class-dump -H ipa的可執(zhí)行文件.app路徑 -o 存檔文件夾路徑
大功告成崇堵,將獲取到的.h拖入測(cè)試工程,就可以愉快地閱讀頭文件和方法屬性了客燕!

若執(zhí)行class-dump命令報(bào)錯(cuò)/usr/local/bin/class-dump: Permission denied鸳劳,在終端運(yùn)行sudo chmod 777 /usr/local/bin/class-dump命令賦予所有用戶可讀可寫(xiě)可執(zhí)行class-dump文件權(quán)限(sudo chmod +x class-dump )

原理:
主要是通過(guò)方法讀取Mach-O 理解的Mach-O文件的結(jié)構(gòu)所有的事情就迎刃而解了。 Mach-O 有3部分Header也搓、Load commands棍辕、Raw segment data(各種section),其中section就有解析類(lèi)表(classname)还绘、解析方法表(methodname)。然后class-dump通過(guò)一系列計(jì)算(得到我們要的類(lèi)名栖袋,及方法名拍顷。Mach-O我還需要再學(xué)習(xí),加油塘幅!

4.Hopper分析ipa代碼

這個(gè)今天就不說(shuō)這個(gè)了昔案,可以簡(jiǎn)單查查Hopper的使用方法。

今天由于時(shí)間原因电媳,上面的筆記有點(diǎn)簡(jiǎn)單粗暴踏揣,有些地方?jīng)]有鏈接和圖片,我自己理解就行匾乓,啊哈哈捞稿。。拼缝。后面補(bǔ)上娱局。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市咧七,隨后出現(xiàn)的幾起案子衰齐,更是在濱河造成了極大的恐慌,老刑警劉巖继阻,帶你破解...
    沈念sama閱讀 222,378評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件耻涛,死亡現(xiàn)場(chǎng)離奇詭異废酷,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)抹缕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,970評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)澈蟆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人歉嗓,你說(shuō)我怎么就攤上這事丰介。” “怎么了鉴分?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,983評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵哮幢,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我志珍,道長(zhǎng)橙垢,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,938評(píng)論 1 299
  • 正文 為了忘掉前任伦糯,我火速辦了婚禮柜某,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘敛纲。我一直安慰自己喂击,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,955評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布淤翔。 她就那樣靜靜地躺著翰绊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪旁壮。 梳的紋絲不亂的頭發(fā)上监嗜,一...
    開(kāi)封第一講書(shū)人閱讀 52,549評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音抡谐,去河邊找鬼裁奇。 笑死,一個(gè)胖子當(dāng)著我的面吹牛麦撵,可吹牛的內(nèi)容都是我干的刽肠。 我是一名探鬼主播,決...
    沈念sama閱讀 41,063評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼免胃,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼五垮!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起杜秸,我...
    開(kāi)封第一講書(shū)人閱讀 39,991評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤放仗,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后撬碟,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體诞挨,經(jīng)...
    沈念sama閱讀 46,522評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡莉撇,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,604評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了惶傻。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片棍郎。...
    茶點(diǎn)故事閱讀 40,742評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖银室,靈堂內(nèi)的尸體忽然破棺而出涂佃,到底是詐尸還是另有隱情,我是刑警寧澤蜈敢,帶...
    沈念sama閱讀 36,413評(píng)論 5 351
  • 正文 年R本政府宣布辜荠,位于F島的核電站,受9級(jí)特大地震影響抓狭,放射性物質(zhì)發(fā)生泄漏伯病。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,094評(píng)論 3 335
  • 文/蒙蒙 一否过、第九天 我趴在偏房一處隱蔽的房頂上張望午笛。 院中可真熱鬧,春花似錦苗桂、人聲如沸药磺。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,572評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)与涡。三九已至,卻和暖如春持偏,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背氨肌。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,671評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工鸿秆, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人怎囚。 一個(gè)月前我還...
    沈念sama閱讀 49,159評(píng)論 3 378
  • 正文 我出身青樓卿叽,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親恳守。 傳聞我的和親對(duì)象是個(gè)殘疾皇子考婴,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,747評(píng)論 2 361

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