模拟器+jadx+adb调试(Java/Smali层​)

模拟器本人选择BlueStack5为例,首先点开模拟器的设置菜单:

  1. 在“手机”一栏中勾选启用Root权限

  1. 在“高级”一栏中找到Android调试(ADB),勾选以127.0.0.1:5555连接到Android

然后用jadx分析要调试的apk文件,点开右上角的调试配置

用命令行打开adb,并输入如下指令连接模拟器服务

1
adb connect 127.0.0.1:5555

可使用如下指令确认设备连接状态

1
adb devices

此时jadx的调试配置窗口就会出现对应的设备及其包含的程序,选择要调试的程序,点击运行APP即可开始调试

可在Smali层中对指令打断点,运行使断点命中即可。步进、步过、步出功能与IDA类似,可在下方的调试窗口中按按键使用

已Root实机+IDA 8.3+adb调试(Native层)

将已Root的实机用USB连接到电脑,打开命令行输入如下指令查看已连接的设备信息

1
adb devices

打开IDA所在根目录,在/dbgsrv处找到对应的调试器,在当前文件夹打开新终端并将其通过如下指令传入实机中

1
adb push android_server64 /data/local/tmp

将端口转发到本地

1
adb forward tcp:23946 tcp:23946

然后在终端中输入以下指令以启动调试服务

1
2
3
4
5
6
adb shell
# 进入shell后输入如下shell指令
cd /data/local/tmp
chmod 777 android_server64
su
./android_server64

用IDA分析从apk文件中解包出的.so文件(位置:\baby_re.apk\lib\arm64-v8a\libcreateso.so),选择Debugger->Remote ARMLinux/Android debugger,并进行如下配置

此时在手机上运行要调试的程序,然后选择附加进程,即可开始调试