hello
前言
使用IDA pro 9.0 android_server64调试程序会报错:


分析过程
字符串
IDA查找对应的字符串"internal error"

最终找到调用方法interr

frida分析
启动android_server64和frida
上frida hook interr
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | function main() { var moduleName = "android_server64"; var functionName = "interr"; Interceptor.attach(Module.findExportByName(moduleName, functionName), { onEnter: function(args) { console.log("Entering " + functionName); showNativeStack(this.context) }, onLeave: function(retval) { console.log("Leaving " + functionName); } });} |
frida启动之后,打开ida去开启调试

输入手机IP和端口

然后会看到程序直接退出了,观察frida打印

IDA跳转到0x940d0,确定当前位置就是判断的逻辑,准备nop掉

修复android_server64
IDA获取该地址的bytes字节,拿到 ARM COVER去辅助还原

修改前
1 | 1F 01 00 71 AD 00 00 54 E0 03 13 AA F3 7B 41 A9 |
修改后
1 | 1F 20 03 D5 AD 00 00 54 E0 03 13 AA F3 7B 41 A9 |
然后保存文件,重新push到手机,随便找个APK验证下。发现可以正常读取进程了。

漫长等待之后,也进入了debug界面,module选择想调试的so


至此结束。上传一份修复好的