iOS逆向:用Xcode直接調試第三方app

一般動態調試app時,都是在終端裏用lldb直接調試,但是用Xcode的Attach to Process也可以連接到真機上的進程進行調試。但是隻能調試用自己的證書籤名的app。

在Xcode上調試的優點:

  • 有UI界面,查看堆棧更直接,可以用Xcode打斷點。
  • 可以使用debug gauges裏的Disk和Network等工具。
  • 輸入lldb命令時有自動補全。
  • 可以使用Xcode的Debug UI Hierarchy功能,直接查看app的界面佈局。
  • 可以使用Xcode的Debug Memory Graph功能,查看當前內存中存在的所有對象,以及對象之間的引用關係。

步驟如下。

1.重簽名需要逆向的app

重簽名後才能用Xcode attach。而重簽名前需要對app進行砸殼。這些步驟就不再重複了。

額外說一句,在砸殼後建議進行一下恢復符號表的操作。恢復符號表後,在調試時就能直接在堆棧中看到方法名,免去了計算偏移量然後在hopper裏查找的麻煩。參考:iOS符號表恢復&逆向支付寶, restore-symbol

2.Attach to Process

重簽名後安裝到越獄設備上,啓動app,在Xcode中隨便打開一個工程,選擇越獄設備,就可以在Debug->Attach to Process中找到正在運行的進程名和進程id,點擊後就會開始連接。大概過1分鐘就會連接上。

3.查看UI

連接上後,就可以點擊使用Xcode的Debug UI Hierarchy來查看界面佈局:

UI Hierarchy

注意,Debug UI Hierarchy對Xcode版本似乎有要求,在調試重簽名app時,Xcode8.3.2可以,而Xcode8.2就沒有這個功能按鈕。

4.查看內存信息

點擊Debug Memory Graph按鈕,可以查看當前內存中存在的數據。打印地址,查看引用關係,可以配合malloc stack進行追蹤。如果打開了malloc stack,就可以直接在右邊顯示這個對象的創建堆棧。開啓方法參考:iOS逆向:在任意app上開啓malloc stack追蹤內存來源

Memory Graph

5.查看正在使用的文件

debug gauges中的Disk工具可以查看app當前打開的文件。

Open Files

6.instrument調試

類似的,也可以用instrument調試重簽名後的app,不過並不是所有工具都可以使用,對逆向的幫助不大。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章