ida调试Genymotion的Android模拟器
Arm环境
Genymotion虽然是Android模拟器但实际使用的是x86的指令集,如果apk文件中使用了ndk编程,则需要在模拟器中安装arm指令转x86指令的转换器,https://github.com/m9rco/Genymotion_ARM_Translation 这里包含了各种版本SDK的转换器,直接在package中取相应的版本拖到模拟器中安装后重启即可。
调试环境配置
第二天总结中提到的配置适用于使用root了的手机,但是对于Android模拟器稍微有点区别。
如果是x86的模拟器
- 使用dbgsrv文件夹中的
android_x86_server
文件,而不是android_server
文件 - 在ida中选择
Remote Linux debugger
而不是Remote ARMLinux/Android debugger
但是我用Genymotion按照这个步骤来还是会出错,换上了夜神的模拟器.
- 首先需要打开模拟器的设置,点系统版本号5次打开开发者模式
- 找到nox_adb.exe文件,输入
nox_adb.exe connect 127.0.0.1:62001
然后执行adb connect 127.0.0.1:62001
就可以执行adb了。如果失败的话就nox_adb.exe kill-server
再执行connect如果还是不行就换成5037端口.
夜神模拟器可以用android_x86_server
也可以用android_server
,但是附加成功以后,不下断点的时候可以正常执行,下了断点以后会出现SIGILL和SIGTRAP等错误,我感觉好像就是模拟器的原因...
总结
今天一天就是在不断的装模拟器,我用了Genymotion,夜神, 网易momo这些模拟器都调试不通,就是一下断点就SIGTRAP or SOGILL...绝望...还是需要去买一个手机
网友评论