1.基本配置
上传IDA调试服务器地址:IDAPro70\dbgsrv\android_server
cmd进入到该目录下: IDAPro70\dbgsrv
导入IDA调试服务器:adb push android_server /data/local/tmp ( 存放位置随意 )
2.开启IDA服务
adb shell
su
cd data/local/tmp
./android_service // 根据架构选择64或者32 -- service跟ida必须成对
// 反调试
./as32 -p31928
3.端口转发
adb forward tcp:23946 tcp:23946
// 反调试
adb forward tcp:31928 tcp:31928
4.打开ddms 观察端口号
5.在终端命令窗口,开启调试模式
// 以实际app为准
adb shell am start -D -n com.et.capplication/.MainActivity
6.打开IDA
菜单 Debugger -> Remote ARMLinux/Android debugger
7.输入127.0.0.1确认
8.选中要调试的进程
9.进入调试界面
9.Debugger -> Debugger options... 三项选中
10. F9 进入runing状态
11.这时候查看ddms的端口号,开启调试
jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8600 根据实际情况
这样为成功
12.查看是否加载so,如果没有继续F9直到加载so
13.没有找到so,继续F9直到找到我们的libet_native_lib
14.双击目标so 找到jniload函数
15.双击,进入目标函数,切换视图,开始断点
16.Debugger -> Debugger options... 三项取消
17.F9进入到断点
18.F8下一步开始调试
TS:F9进入当前断点后,如果想进入下一个断点,必须把上个断点取消掉,然后在F9,否则报错。