准备
IDA
1.运行android_server
先将android_server push到模拟器或者真机上
adb devices
adb push "D:\soft\IDA 7.0\dbgsrv\android_server" /data/local/tmp/as #32位
adb push "D:\soft\IDA 7.0\dbgsrv\android_server64" /data/local/tmp/as64 #64位
adb shell
su
cd /data/local/tmp
chmod 777 as
chmod 777 as64
# 根据手机架构选择运行32位还是64位
./as # or ./as64 可以加-p23946修改默认端口号
如果遇到端口被占用,可以通过以下命令结束程序
netstat -anp |grep 23946
kill -9 pid
2.端口转发
adb forward tcp:23946 tcp:23946
3.打开需要调试的app
adb shell am start -D -n com.test.jni_03/.MainActivity
4.打开IDA
选择 go - Debugger - Attach - Remote ARMLinux/Android debugger
ctrl-F搜索到需要的进程双击,稍等一会。
Debugger-Debugger options 勾选三项,点击OK,F9运行
5 CMD打开DDMS
monitor # or ddms
记下图中的8620,此时的虫子红色的
5.运行jdb命令
jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8620
接下来就可以愉快的调试了
F2下断点(HEX View下为修改指令和保存指令)
F4移动到光标处
F7进入函数
F8单步调试
F9跳到下一个断点
G调到函数地址
N重名
Y修改参数
A识别为字符串
D data解析成数据
更多调试快捷键参考下面的文章
https://blog.csdn.net/jitaliangliang111/article/details/103672074