1 回答

TA貢獻1942條經驗 獲得超3個贊
安卓手機用ida在apk執行前動態調試其so中的函數
方法1
1、解包對方APK,插入一個:對應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)對應.local X。
2
另外,有的包在你要調試的那個SO里面有簽名保護,反正你重新打了包之后會導致程序運行崩潰,這個相比JAVA修改困難些,建議你用那個簽名漏洞來打包。事實上我調試那個SO也遇到過這樣,然后打了個簽名漏洞的包嵌入的延時函數就可以了。
方法2
1) am start -D -n 包名/類名;
2) IDA pro attach 進程, 設置新線程,加載so時斷點,continue;
3) 打開ddms, 查看調試端口, jdb attach port;
4) 這個時候應該已經斷在新線程,或者加載so處了,在你感興趣的so處停下來;
5) 另外用ida 打開so,查看你感興趣的函數偏移, 加上你感興趣的so的基地址,打上斷點,continue, 就大功告成了。
注意事項
windows下ida6.1不行,linux ida 6.4可以,不知是ida的問題還是windows的問題,你可以在linux下用wine測一下。
經驗內容僅供參考,如果您需解決具體問題(尤其法律、醫學等領域),建議您詳細
- 1 回答
- 0 關注
- 231 瀏覽
添加回答
舉報