安卓反编译调试

安卓反编译调试
工具: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

 

posted @ 2021-07-28 17:41  默*为  阅读(297)  评论(0编辑  收藏  举报