調(diào)試可以用
- Monkeydev (可調(diào)試 hook 、class-dump頭文件、重簽名等)
- CrackerXI鲁驶、class-dump (砸殼)
- Hopper Disassembler (靜態(tài)調(diào)試)
- LLDB俱两、frida-trace、dtrace (砸殼)
- Flex痛侍、Reveal2Loader 查看UI層次結(jié)構(gòu)
- Flex3 (APP插件朝氓,可以自己制作,也可以下載云端的)
- frida-trace
官網(wǎng) https://frida.re/docs/installation/
有安裝說明,和 frida-trace使用說明
// mac 端查看當前正在運行的進程
ps -e | grep QQ
frida-trace -m "-[NSView drawRect:]" Safari
frida-trace -m "-[DMTrialController *]" QQ
frida-trace -m "-[SMEnterLicenseViewController loadView]" -p 61004
frida-trace -m "-[* terminate:]" AirServer
- lldb調(diào)試
- 導出手機中的debugserver 更改權(quán)限
// 導出到mac電腦的用戶目錄下 ~
scp root@192.168.40.155:/Developer/usr/bin/debugserver ~/
- debugserver瘦身(非必要)
// 查看支持的架構(gòu)
lipo -info debugserver
// 運行命令瘦身只保留arm64 (arm64:測試機8P赵哲,armv7s:5待德、5C...)
lipo debugserver -thin arm64 -output debugserver_arm64
- 重簽名需要的plist文件,復制保存為ent.plist
<!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>
- debugserver增加權(quán)限get-task-allow??和task_for_pid-allow????
// 可以查看權(quán)限信息
codesign -d --entitlements - debugserver_arm64
// 簽名權(quán)限
codesign -f -s - --entitlements ent.plist debugserver_arm64
// 或者簡寫為
codesign -fs- --entitlements ent.plist debugserver_arm64
// 除了codesign也可以用ldid簽名
brew install ldid
// 先導出原來的權(quán)限枫夺,然后xcode打開可以修改添加get-task-allow??和task_for_pid-allow???? 如下圖
ldid -e /Path/debugserver > debugserver.entitlements
// 改完重簽回去
ldid -Sdebugserver.entitlements debugserver
image.png
????????????????????????????????把已經(jīng)簽好權(quán)限的????????????????debugserver(debugserver_arm64可以重命名了)放到手機的????/usr/bin??????????????/目錄
debugserver 使用
// 手機端将宪,10010是自定義的端口號
debugserver *:10010 -a Thor
電腦端,終端輸入lldb
// ????連接debugserver服務
process connect connect:手機IP:10010
// ????使用lldb的??c命令讓程序先繼續(xù)運行
c
// 通過debugserver啟動APP
debugserver -x auto *:端口號APP的可執(zhí)行文件路徑