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

通常動態調試app時,都是在終端裏用lldb直接調試,可是用Xcode的Attach to Process也能夠鏈接到真機上的進程進行調試。可是隻能調試用本身的證書籤名的app。git

在Xcode上調試的優勢:github

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

步驟以下。markdown

1.重簽名須要逆向的app

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

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

2.Attach to Process

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

3.查看UI

鏈接上後,就能夠點擊使用Xcode的Debug UI Hierarchy來查看界面佈局:佈局

UI Hierarchy

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

4.查看內存信息

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

Memory Graph

5.查看正在使用的文件

debug gauges中的Disk工具能夠查看app當前打開的文件。spa

Open Files

5.instrument調試

相似的,也能夠用instrument調試重簽名後的app,不過並非全部工具均可以使用,對逆向的幫助不大。

相關文章
相關標籤/搜索