1. 程式人生 > 其它 >安卓反編譯除錯

安卓反編譯除錯

安卓反編譯除錯
工具:adb,ida

1.先kingroot,獲取su許可權,否則下面的步驟無效
adb install d:\kingroot_v5.1.0-176_Android-2.3.apk

2.安卓裝置-》設定-》關於平板電腦-》猛擊版本號出現開發者模式(開啟usb除錯即可)

3.電腦(安卓ida)cmd視窗輸入:adb shell
----顯示當前包名和activity名
3.1輸入 dumpsys window w | grep mCurrent(步驟8為啥選com.XX.maxi)

------------------------------------------------------------------------操作區
C:\Users\Administrator>adb shell
shell@maxisysXXXs:/ $ su #獲取超級使用者許可權
root@maxisysXXXs:/ # cd /data/local/tmp #獲取超級使用者許可權
root@maxisysXXXs:/data/local/tmp # ls #ls 列出所有軟體版本
------------------------------------------------------------------------

##ls後可以看到ida7.0,7.5版本以及反除錯anti_debug
------------------------------------------------------------------------操作區
anti_debug
dalvik-cache
dmf
ida70
ida75
------------------------------------------------------------------------

4.首次開機需要hook,輸入命令:
cd anti_debug
./inject zygote /data/local/tmp/anti_debug/libanti_debug.so 1


5.ida測試連線,並獲取到埠號(##埠號23946)輸入命令:
cd ..
./ida75 ##等價於./data/local/tmp/ida75 -p23946

------------------------------------------------------------------------操作區
root@maxisysXXXs:/data/local/tmp # ./ida75
IDA Android 32-bit remote debug server(ST) v7.5.26. Hex-Rays (c) 2004-2020
Listening on 0.0.0.0:23946... ##埠號23946
2021-07-03 20:09:18 [1] Accepting connection from 127.0.0.1...
------------------------------------------------------------------------


6. 進到所要除錯的車型, 在XX.so中靜態計算偏移。
6.1再開一個cmd 輸入:adb forward tcp:23946 tcp:23946


到此可以開啟IDA附加了
7. 開啟IDA 選擇 debugger選項 attach remote_ArmLinux/android debugger 注意localhost和埠號要對應(##埠號23946)
8. 選擇com.XX.maxi附加
9. module列表選libdiag.so 右鍵點選 選擇jump to module base
10.按G 然後輸入之前計算的需要跟的函式地址 (基址+偏移)
11.跳到對應位置摁alt+G 摁P轉化為彙編,然後摁F5轉化為虛擬碼
12. 點選執行按鈕 觸發斷點
13. LR暫存器為上層呼叫
14.F7步入 F8步進 F2斷點 F9執行
15.想看一個值的數值,將滑鼠放在靜態那個值上 會顯示對應的棧偏移 在動態下面資料欄裡摁G 輸入例如SP+0x64 就能看到對應數值
16.一般函式的返回值都存在R0暫存器中
17.函式的引數傳參一般從R0開始, R0,R1,R2

本文來自部落格園,作者:{archer},轉載請註明原文連結:https://www.cnblogs.com/archer-mowei/p/15071762.html