1 回答

TA貢獻(xiàn)1942條經(jīng)驗 獲得超3個贊
安卓手機用ida在apk執(zhí)行前動態(tài)調(diào)試其so中的函數(shù)
方法1
1、解包對方APK,插入一個:對應(yīng)SMALI: android.os.SystemClock.sleep(20000);const-wide/16 v0, 0x2710 #20秒invoke-static {v0, v(X-1)}, Landroid/os/SystemClock;->sleep(J)V這里(X-1)對應(yīng).local X。
2
另外,有的包在你要調(diào)試的那個SO里面有簽名保護,反正你重新打了包之后會導(dǎo)致程序運行崩潰,這個相比JAVA修改困難些,建議你用那個簽名漏洞來打包。事實上我調(diào)試那個SO也遇到過這樣,然后打了個簽名漏洞的包嵌入的延時函數(shù)就可以了。
方法2
1) am start -D -n 包名/類名;
2) IDA pro attach 進程, 設(shè)置新線程,加載so時斷點,continue;
3) 打開ddms, 查看調(diào)試端口, jdb attach port;
4) 這個時候應(yīng)該已經(jīng)斷在新線程,或者加載so處了,在你感興趣的so處停下來;
5) 另外用ida 打開so,查看你感興趣的函數(shù)偏移, 加上你感興趣的so的基地址,打上斷點,continue, 就大功告成了。
注意事項
windows下ida6.1不行,linux ida 6.4可以,不知是ida的問題還是windows的問題,你可以在linux下用wine測一下。
經(jīng)驗內(nèi)容僅供參考,如果您需解決具體問題(尤其法律、醫(yī)學(xué)等領(lǐng)域),建議您詳細(xì)
- 1 回答
- 0 關(guān)注
- 235 瀏覽
添加回答
舉報