ida 7.0 發(fā)布了,擁有調(diào)試iOS應(yīng)用的能力,自己嘗試了一下,踩了很多坑,這方面資料太少了,按照官方文檔操作也是失敗的,在這里總結(jié)一下.
目前只能調(diào)試個(gè)人App,對(duì)于系統(tǒng)的,我還是無(wú)能為力,下面講解過(guò)程
一.將應(yīng)用脫殼
脫殼過(guò)程就不多說(shuō)了, 參考網(wǎng)上的各種脫殼方案, iClutch, dumpdecrypted 等.
二.將脫殼應(yīng)用安裝到手機(jī)
過(guò)程不多說(shuō), 助手, ideviceinstall等
三.修改簽名get-task-allow
此處的簽名不指平時(shí)用的重簽名, 而是要修改get-task-allow的值, 用用發(fā)布后默認(rèn)是沒(méi)有開(kāi)啟的,以MobileSafari為例:
1.在越獄iOS設(shè)備上友扰,利用iOS系統(tǒng)文件管理工具(itools兼呵,ifunbox)介时,在Applications/MobileSafari.app目錄下褐澎,找到MobileSafari這個(gè)執(zhí)行文件
ldid -e MobileSafari >> MobileSafari.xml
2.打開(kāi)MobileSafari.xml細(xì)心看看俭正,好多的私有key。不過(guò)不必天真始苇,Code signing Entitlements若出現(xiàn)了私有key管呵,是不允許上架的坷襟。在MobileSafari.xml添加get-task-allow這個(gè)key桌粉,并賦值為true缘薛,保存退出
<key>get-task-allow</key>
<true/>
3.對(duì)MobileSafari進(jìn)行重簽名:
ldid -SMobileSafari.xml ./MobileSafari
三.將脫殼的二進(jìn)制文件用ida打開(kāi)
然后選擇剛才要調(diào)試的app
1.Debugger -> Select debugger 選擇 Remote iOS debugger
2.Debugger -> Process options 里面有兩個(gè)選項(xiàng)Application
,inputfile
3.找到你要下斷點(diǎn)的位置
4.然后Debugger ->Start process
就可以調(diào)試了, 操作, 然后觸發(fā)斷點(diǎn)就可以調(diào)試了
四.常用指令
F7 step in
F8 setp
F9 run
F4 run into cursor
基本就這樣了