IDA 调试¶
本章节将介绍如何使用 FIRERPA 及其相关功能与脚本快速调试安卓应用。我们的演示环境为 Android 10,主机系统为 Ubuntu 22.04,已安装 IDA 7.5 (Wine)、ADB、JDB、Python 等工具。建议您的 IDA 版本不低于 7.5,并安装最新版本的 FIRERPA 服务端。

设置为可调试模式¶
如果您的系统已经处于调试模式,则无需执行此步骤。否则,请打开 FIRERPA 远程桌面,在终端中输入 setdebuggable。执行该命令后,您的手机将进行一次软重启,但不必担心,大约两分钟后就会完全恢复正常。此时,您的手机已进入可调试模式。

安装 IDA 调试服务¶
开始调试前,您还需要将 IDA 的安卓调试服务端上传到设备上。在 IDA 安装目录的 dbgsrv 文件夹下可以找到 android_server 和 android_server64。如果目标应用使用了 32 位动态链接库,请使用 android_server;否则请使用 android_server64。将所需的文件拖拽上传或通过 adb push 发送到安卓设备,并赋予可执行权限:
chmod 755 android_server*
赋予可执行权限后,需启动 android_server 服务。您可以通过 adb(需要 root 权限)或远程桌面终端运行该可执行文件。对于 Android 10 及更高版本,需提前设置 IDA_LIBC_PATH 环境变量:
IDA_LIBC_PATH=/apex/com.android.runtime/lib64/bionic/libc.so ./android_server64 -kk
备注
如果调试目标是 32 位应用,请将 IDA_LIBC_PATH 改为 /apex/com.android.runtime/lib/bionic/libc.so,并使用 32 位的 android_server 调试服务。
转发 IDA 调试服务¶
对于调试这类对实时性和性能要求较高的场景,建议使用 USB 连接。请确保设备已通过 USB 连接至当前电脑并已完成 ADB 授权,然后执行以下命令:
adb forward tcp:23946 tcp:23946
备注
23946 是 IDA android_server 的默认监听端口。如果您在启动时修改了该端口,请转发时指定实际端口号。
开始应用调试¶
我们已为您封装了一个脚本,它可以帮助您自动完成后续的大部分操作。您只需按照脚本的输出提示操作即可。您可以在项目的 tools 目录下找到 ida.py 脚本,使用以下命令运行:
python3 ida.py -d 192.168.0.2 -a com.android.settings

其中,-d 参数为设备 IP,即运行 FIRERPA 服务的设备 IP;-a 参数为目标应用的包名。执行命令后,脚本将提示您在 IDA 中将调试器附加到应用进程。



全部流程已就绪。请回到 ida.py 的命令行界面,按下回车键,然后您就可以继续调试了。