首页
社区
课程
招聘
未解决 [求助]IDA 7.0 调试Android模拟器 so文件的问题
发表于: 2020-7-3 07:53 6414

未解决 [求助]IDA 7.0 调试Android模拟器 so文件的问题

2020-7-3 07:53
6414

现在一般流行的Android模拟器都是x86架构的, 但是上面可以运行arm的APP, 我使用如下步骤调试一个使用arm lib的进程, 但是设置断点或者单步执行总是失败, 并且得到好多的SIGSEGV 错误。

  1. 拷贝android_x86_server到模拟器,修改属性并且运行

  2. adb forward tcp:23946 tcp:23946

  3. 运行IDA, Attach Remote Linux Debugger, choose process to attach

到目前为止一切顺利, 但是当进程load到IDA后, 选择感兴趣的so模块, 双击到导出函数, 找到一个感兴趣的下断点。

 

接着我就收到SIGCHLD signal 和 很多的SIGSEGV signals, 被调试的程序黑屏, 没有响应。

 

各位大神可能是什麽问题呢?另外我是应该使用android_x86_server, 而不是android_server,对吗?


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2020-7-3 07:55 被taotao_su编辑 ,原因:
收藏
免费 1
支持
分享
最新回复 (5)
雪    币: 210
活跃值: (731)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
2
为啥不用真机,模拟器调试还是不太友好
2020-7-3 09:33
0
雪    币: 4969
活跃值: (19080)
能力值: ( LV13,RANK:317 )
在线值:
发帖
回帖
粉丝
3
模拟器调试so要调x86的,用android_x86_server
2020-7-3 13:14
0
雪    币: 99
活跃值: (364)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
但是设断点不能断,也不能单步执行,出各种奇怪的signals可能是什麽原因呢?
另外虽然模拟器x86, 但是app是arm的,有关系吗?
2020-7-4 00:12
0
雪    币: 348
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
5
taotao_su 但是设断点不能断,也不能单步执行,出各种奇怪的signals可能是什麽原因呢? 另外虽然模拟器x86, 但是app是arm的,有关系吗?

我在雷電模調試一個flutter app遇到過這個問題,

那個app的so文件只有arm 32位,arm 64和x86_64的build

沒有x86 build,我在IDA 調試時發現是arm 32位 so被加載

用frida hook 時,找不到那個so,返回null

結論是不管是frida還是IDA,在模擬器上,只能調試x86的so。

app沒有x86的so就沒法了

你可以用這個frida腳本打印能被server 識別出來的so,應該是沒有你要調試的so

Java.perform(function() {
    const System = Java.use('java.lang.System');
    const Runtime = Java.use('java.lang.Runtime');
    const SystemLoad_2 = System.loadLibrary.overload('java.lang.String');
    const VMStack = Java.use('dalvik.system.VMStack');

    SystemLoad_2.implementation = function(library) {
        console.log("Loading dynamic library => " + library);
        try {
            const loaded = Runtime.getRuntime().loadLibrary0(VMStack.getCallingClassLoader(), library);
            if(library.includes("yourlibraryhere")) {
                // do stuff
            }
            return loaded;
        } catch(ex) {
            console.log(ex);
        }
    };
});


2020-7-4 15:25
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
Wika 我在雷電模調試一個flutter app遇到過這個問題,那個app的so文件只有arm 32位,arm 64和x86_64的build沒有x86 build,我在IDA 調試時發現是arm 32位 s ...
大佬您好
能问一下为什么在x86的模拟器上只能调试x86的so呢, 模拟器不是有libhoudini.so可以动态将arm的so翻译成x86的吗?
2021-8-8 19:20
0
游客
登录 | 注册 方可回帖
返回
//