本文参考:
夜神模拟器 结合IDA 动态调试SO文件
打开夜神模拟器,然后进入夜神模拟器安装目录下(有nox.exe那个文件夹)
输入命令
nox_adb.exe connect 127.0.0.1:62001
如果显示cannot connect to 127.0.0.1:62001: 由于目标计算机积极拒绝,无法连接。 (10061)
,我的解决办法是 夜神模拟器 cannot connect to 127.0.0.1:62001: 由于目标计算机积极拒绝,无法连接。 (10061)
输入命令
adb push E:\Programs\IDAPro\dbgsrv\android_x86_server /data/local/tmp
前面的目录就是ida的安装目录里找android_x86_server,后面的目录应该是随意的,不过可能有检测机制. 其实一开始我用的是android_server,但是一开始报错 error: only position independent executables (PIE) are supported.
,找网上解决办法修改后提示Segmentation fault
,然后ida连接不上,别人的教程说用x86的,我就换成这个试了一下,果然可以)
如果显示'E:\Programs\IDAPro\dbgsrv\android_x86_server' to '\data\local\tmp': remote Read-only file system
,我的解决办法是 ADB 调试问题记录一:error:failed to copy
然后修改权限并执行android_x86_server
adb shell
cd /data/local/tmp
chmod 777 android_x86_server
./android_x86_server
正常应该显示:
然后新开一个cmd,输入
adb forward tcp:23946 tcp:23946
结果提示如下代码。后来想起来之前把adb拖到夜神模拟器那里,然后从夜神模拟器目录下启动的adb,然后再新开的cmd里也先进入到模拟器目录再执行就好了
adb server version (41) doesn't match this client (40); killing...
could not read ok from ADB Server
* failed to start daemon
error: cannot connect to daemon
正常应该显示:
然后打开ida,选择Debugger-Attach-Remote Linux debugger,
在弹出选项里,hostname填localhost,端口号默认为刚才adb forward的23946不用改。
接下来选择正在运行的进程,一般应用就是显示它的包名,我这里要调试pvz,就选择北美版的包名com.popcap.pvz_na
双击后进入调试界面
![]() | ![]() |
---|---|
![]() | ![]() |