0x0 前言
IDA 的调试功能也很强大,尤其是它的远程调试,看看怎么调试 apk。
这里使用 android studio 的模拟器作为远程设备。
0x1 安装 apk
这里的模拟器是 x86 版本的。
首先打开模拟器,安装 apk,这里的 apk 名字是 java.apk
:
adb install java.apk
安装之后可以先测一下能不能正常启动运行。
0x2 设置 dbg server
在 IDA 的 dbgsrv 文件夹找对应的 server 程序,我这里用的是 android_x86_server,执行命令:
# 上传 dbg server
adb push android_x86_server /data/local/tmp/
# 进 shell 添加执行权限并启动
adb shell
cd /data/local/tmp/
chmod 755 android_x86_server
./android_x86_server
正常情况会有这样的输出:
Listening on 0.0.0.0:23946
端口号一会儿要用。
0x3 IDA 设置
IDA 直接打开 apk 文件,然后选择其中的 classes.dex(我是调这个文件的,想调 so 文件也可以自己选择),在需要的位置设置断点,开始设置调试器。
这里默认选的是 Dalvik debugger,因为调的是 dex 文件。
设置应用和端口,这里注意端口和上面的保持一致即可:
Debugger -> Process options
设置 Package name 和 Activity:
Debugger -> Debugger options -> Set specific options
0x4 愉快地调试
因为 Android 大部分是回调函数,所以如果看到 Running
的消息,就可以在模拟器里做一些操作,让程序继续运行了。
开始愉快地调试吧。
20200522