iOS debugserver 部署

操作環境:
* iPad mini 2, iOS 9.2 [Jailbroken]
* iMac, OS X EI Capitan
* Xcode 7.3.1
* usbmuxd 1.0.6 [解壓后放在Desktop目錄下]

1. 定制debugServer

  • 導出debugserver.

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/9.2/DeveloperDiskImage.dmg 找到 DeveloperDiskImage.dmg.

雙擊DeveloperDiskImage.dmg 打開它. 在目錄/Volumes/DeveloperDiskImage/usr/bin/下找到debugserver.

debugservercopy到Desktop目錄下, 命令如下:

cp /Volumes/DeveloperDiskImage/usr/bin/debugserver ~/Desktop/debugserver
  • debugserver簽名.

需要用到內容如下的entitlement.xml, 將其保存到Desktop目錄下.

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
  <dict> 
    <key>com.apple.springboard.debugapplications</key> 
    <true/> 
    <key>get-task-allow</key> 
    <true/> 
    <key>task_for_pid-allow</key> 
    <true/> 
    <key>run-unsigned-code</key> 
    <true/> 
  </dict> 
</plist>

codesigndebugserver簽名, 命令如下:

cd ~/Desktop
codesign -s - --entitlements ./entitlement.xml -f debugserver 

2. 安裝debugserverARMDisassembler.framework

將簽名后的debugserver拷貝到iDevice/usr/bin目錄下, 將ARMDisassembler.framework拷貝到iDevice目錄/System/Library/PrivateFrameworks下.

新開一個Terminal tab,執行:

python usbmuxd-1.0.6/python-client/tcprelay.py 22:2222

在原Terminal tab里執行:

scp -P 2222 debugserver root@localhost:/usr/bin/
scp -r -P 2222 /Volumes/DeveloperDiskImage/Library/PrivateFrameworks/ARMDisassembler.framework root@localhost:/System/Library/PrivateFrameworks/

3. 調試應用

  • iOS上用debugserverattach 進程或啟動應用

Attach 進程, 命令如下:

debugserver *:12345 --attach=<pid>

或者:

debugserver *:12345 --attach=<process name>

啟動應用作為調試進程, 命令如下:

debugserver *:12345 /path/to/app
  • OS X 上用LLDB遠程調試

新開一個Terminal tab執行:

python usbmuxd-1.0.6/python-client/tcprelay.py 12345:12345

再新開一個Terminal tab運行lldb, 輸入以下lldb命令:

process connect connect://localhost:12345

稍等片刻,待連上之后,我們就可以開始調試了.

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容