iOS逆向:用Xcode直接調(diào)試第三方app

一般動(dòng)態(tài)調(diào)試app時(shí),都是在終端里用lldb直接調(diào)試,但是用Xcode的Attach to Process也可以連接到真機(jī)上的進(jìn)程進(jìn)行調(diào)試。但是只能調(diào)試用自己的證書簽名的app。

在Xcode上調(diào)試的優(yōu)點(diǎn):

  • 有UI界面,查看堆棧更直接,可以用Xcode打斷點(diǎn)。
  • 可以使用debug gauges里的Disk和Network等工具。
  • 輸入lldb命令時(shí)有自動(dòng)補(bǔ)全。
  • 可以使用Xcode的Debug UI Hierarchy功能,直接查看app的界面布局。
  • 可以使用Xcode的Debug Memory Graph功能,查看當(dāng)前內(nèi)存中存在的所有對(duì)象,以及對(duì)象之間的引用關(guān)系。

步驟如下。

1.重簽名需要逆向的app

重簽名后才能用Xcode attach。而重簽名前需要對(duì)app進(jìn)行砸殼。這些步驟就不再重復(fù)了。

額外說一句,在砸殼后建議進(jìn)行一下恢復(fù)符號(hào)表的操作?;謴?fù)符號(hào)表后,在調(diào)試時(shí)就能直接在堆棧中看到方法名,免去了計(jì)算偏移量然后在hopper里查找的麻煩。參考:iOS符號(hào)表恢復(fù)&逆向支付寶, restore-symbol。

2.Attach to Process

重簽名后安裝到越獄設(shè)備上,啟動(dòng)app,在Xcode中隨便打開一個(gè)工程,選擇越獄設(shè)備,就可以在Debug->Attach to Process中找到正在運(yùn)行的進(jìn)程名和進(jìn)程id,點(diǎn)擊后就會(huì)開始連接。大概過1分鐘就會(huì)連接上。

3.查看UI

連接上后,就可以點(diǎn)擊使用Xcode的Debug UI Hierarchy來查看界面布局:

UI Hierarchy

注意,Debug UI Hierarchy對(duì)Xcode版本似乎有要求,在調(diào)試重簽名app時(shí),Xcode8.3.2可以,而Xcode8.2就沒有這個(gè)功能按鈕。

4.查看內(nèi)存信息

點(diǎn)擊Debug Memory Graph按鈕,可以查看當(dāng)前內(nèi)存中存在的數(shù)據(jù)。打印地址,查看引用關(guān)系,可以配合malloc stack進(jìn)行追蹤。如果打開了malloc stack,就可以直接在右邊顯示這個(gè)對(duì)象的創(chuàng)建堆棧。開啟方法參考:iOS逆向:在任意app上開啟malloc stack追蹤內(nèi)存來源

Memory Graph

5.查看正在使用的文件

debug gauges中的Disk工具可以查看app當(dāng)前打開的文件。

Open Files

6.instrument調(diào)試

類似的,也可以用instrument調(diào)試重簽名后的app,不過并不是所有工具都可以使用,對(duì)逆向的幫助不大。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容