android調試系列--使用ida pro調試so


1、工具介紹

IDA pro: 反匯編神器,可靜態分析和動態調試。

模擬機或者真機:運行要調試的程序。 

樣本:阿里安全挑戰賽第二題:http://pan.baidu.com/s/1eS9EXIM

 

2、前期准備

2.1  安裝樣本程序

adb install AliCrackme_2.apk

2.2 上傳android_server文件

adb push android_server /data/local/tmp/
adb shell chmod 777 /data/local/tmp/android_server

 

3、調試步驟

3.1  開啟android_server,監聽23946端口,與IDA pro通信

adb shell /data/local/tmp/android_server

3.2  設置本地端口轉發

adb forward tcp:23946 tcp:23946

3.3  以調試模式啟動程序

adb shell am start -D -n com.yaotong.crackme/.MainActivity

3.4 啟動IDA pro,點擊Debugger->attach->Remote ARMLinux/Android debugger,輸入localhost,選擇要調試的進程即可。

image

3.5 附加程序成功后,選擇,Debugger option,勾選

       suspend on process entry point

       suspend on thread start/exit

       suspend on library load/unload

       三項,然后按f9運行調試程序,此時IDA pro 掛起

3.6  使用jdb恢復程序執行

jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8700

3.7 此時IDA pro斷在linker中,此時module中並沒有libcrackme.so,說明licrackme.so還沒有加載到內容中,只需要跟幾步f8,在寄存器中看到libcrackme.so加載進來了,就可以在module中找到,有兩種情況

       1、如果IDA Pro能夠解析成功,雙擊module中的libcrackme.so就可以看到它export的函數,就可以右鍵下斷點了

       2、如果IDA Pro解析失敗,需要再開一個IDA,查找到要下斷的函數地址,加上libcrackme.so加載到內存的地址即可(在init_array下斷只能使用這種方法)。

3.8  IDA Pro按F9幾次,直到斷在自己下斷的地方即可

 

3、總結

本章內容和調試原生程序有重復,就省略了一些內容。

另外還有一種so函數是在用戶操作的時候才能觸發,只需要下好斷點,用戶進行觸發即可


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM