进入IDA的安装目录,我这个是免安装的,直接打开它的解压目录了
看到android_server没?把它push到手机的 /data/local/tmp中去
adb devices查看真机或者虚拟机是否有在链接
android-server push到手机
Microsoft Windows [版本 10.0.19041.1415]
(c) Microsoft Corporation。保留所有权利。
C:\Users\Admin>adb devices
List of devices attached
127.0.0.1:62025 device
#将android_server文件push到手机
C:\Users\Admin>adb push C:\Users\Admin\Desktop\IDA_Pro_Green\IDA_Pro_v7.0_Portable\dbgsrv\android_server /data/local/tmp
C:\Users\Admin\Desktop\IDA_Pro_Green\IDA_Pro_v7.0_Portable...ile pushed, 0 skipped. 779.1 MB/s (589588 bytes in 0.001s)
C:\Users\Admin>
C:\Users\Admin>adb shell
root@shamu:/ # su
root@shamu:/ # cd /data/local/tmp
root@shamu:/data/local/tmp # ls
AppiumBootstrap.jar
android_server
appium_cache
dump.xml
frida-server-12.9.8-android-x86
re.frida.server
127|root@shamu:/data/local/tmp # chmod 777 android_server
root@shamu:/data/local/tmp # ./android_server
IDA Android 32-bit remote debug server(ST) v1.22. Hex-Rays (c) 2004-2017
Listening on 0.0.0.0:23946...
Microsoft Windows [版本 10.0.19041.1415]
(c) Microsoft Corporation。保留所有权利。
C:\Users\Admin>adb forward tcp:23946 tcp:23946
23946
C:\Users\Admin>
error:incompatible debugging server:address size is 4 bytes
这个错误的原因是,你的android_server 是32位的
但是你启动的 ida 是64位的
换成32位的ida 就可以了
我就想启动64bit的IDA
把android_x64_server push到手机试试看
同android_server push到手机后一样chmod 777之后执行报错:
./android_x64_server: not executable: 64-bit ELF file,那就用IDA32打开吧。
点击Search
填入目标app的包名
会跳转到进程号和包名对应的那一行,检查一下进程号是否正确
点击OK
F2反汇编窗口,在目标行添加断点
因为程序已经打开,所以返回到手机主界面重新打开APP,就会被断点拦截住。
但不能每次添加断点都要重新打开APP,所以以调试模式启动应运而生。
不知道清理后台会怎样,如果清理后台的目标APP再进入,我猜会由于进程号发生改变导致IDA的进程号与现有进程号不对应导致Debug失败。
不需要提前打开应用程序,此处的adb shell am start -D -n .....就相当于打开app了
adb shell am start -D -n /<.程序入口界面>
DDMS 工具存放在SDK – tools/路径下,直接双击ddms.bat运行
DDMS中查看目标包名对应的端口填入下面的cmd命令中
jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=端口
截屏