Android 5.0 + IDA 6.8 调试经验分享
現在升級快,網上的資料只能做參考。?
學到了NDK逆向這一塊,昨天為了能讓IDA 能動態調試SO,瞎折騰了很久,這里分享一下我的經驗。
工具:?
IDA pro 6.8?
Android 5.x
IDA 6.8 在看雪吾愛應該都能找到下載地址。?
我的手機是三星 on7 Android 5.1系統。?
以前我一直用的是IDA 6.6,群里人說5.0以上的系統要用6.8…?
在啟動android_server 服務的時候遇到下面這種情況有可能就是IDA的版本不對了。?
?
下面開始正式寫,內容可能有些重復。?
0x0: 將IDA pro 6.8 目錄下的\dbgsrv\android_server 上傳到手機 /data/local/tmp 目錄下。?
具體命令:?
adb push \dbgsrv\android_server /data/local/tmp/android_server // 上傳 \dbgsrv\android_server 根據自己實際情況修改?
adb shell // 得到Android系統的shell,下面是在Shell中的操作?
su //獲得Root權限?
cd /data/local/tmp?
chmod 755 android_server // 修改android_server權限 rwxr-xr-x?
./android_server //運行?
這個CMD不要關了。?
0x1 : 開啟端口轉發?
另外打開一個cmd?
adb forward tcp:23946 tcp:23946
0x2: 操作IDA?
打開IDA ->Debugger->Attach->Remote ARMLinux/Anroid debugger?
Hostname 就是Anroid機的主機地址,一般和電腦都在一個局域網吧? 填寫Android主機的ip地址。端口默認即可。?
完成后按下 Ok。?
按下Ok后會出現一個進程列表,選擇你要調試的進程。?
附件里有一個So例子,先在Android機上運行起,然后在刷新IDA的進程列表。?
進程太多的話,可以用包名關鍵字搜索。?
附加后調試器會停在一個地方,先讓程序跑起來吧,因為我們調試的是So模塊。
如何調試XX模塊?例子以附件中的Apk為例子?
?
從這里調出模塊窗口。
模塊很多,你需要知道你要調試的是什么模塊,用搜索功能會方便很多。?
?
這個就是例子中要調試的模塊,用Android Killer分析出來的。?
在Module List窗口中雙擊欲調試的模塊,會看到模塊的導出函數。?
?
假如要調試 getCoin這個函數。 雙擊getCoin,就進入了函數的匯編代碼界面。?
?
單擊紅色圓圈中的藍色原點就能下斷點。 我們需要修改這個函數的返回值,來達到修改金錢的目的,所以在 BX LR 這一行下斷點。?
當IDA停下來后,就可以在寄存器窗口修改R0寄存器的值。?
全劇終。
一些小問題的非專業解答:?
0x0:?
?
1、手機沒有Root?
2、運行android_server 前請先su一下
0x1:?
?
IDA 6.8目錄下,運行idaq.exe
0x2:?
,,, 換真機,模擬器不行。
0x3:?
?
版本不對,升級IDA,或者在手機上刷一個低版本的系統。
記住:?
一定要Root,一定要Su,一定要改權限
例子下載:http://pan.baidu.com/s/1i3wzetf?
參考文章:?
如何使用ida在apk執行前動態調試其so中的函數?
http://bbs.pediy.com/showthread.php?t=178659
一步步搭建ida pro動態調試SO環境。?
http://bbs.pediy.com/showthread.php?t=203080
菜鳥總結so分析,arm 匯編,IDA靜態分析?
http://www.pd521.com/thread-790-1-1.html
原文地址:?http://blog.csdn.net/PandaOS/article/details/50614453
總結
以上是生活随笔為你收集整理的Android 5.0 + IDA 6.8 调试经验分享的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android安全教程(2)---Fid
- 下一篇: Android安全教程(3)---Fid