首页
社区
课程
招聘
[原创]解决jdb加ida无法附加google亲儿子pixel 4 Android10的问题
2021-4-8 17:15 14895

[原创]解决jdb加ida无法附加google亲儿子pixel 4 Android10的问题

2021-4-8 17:15
14895

一.问题

am start -D -n xxxx

接着ida 附加

然后 jdb 附加报错,app直接闪现走人

java.io.IOExceptio VirtualMachineManagerImpl.createVirtualMachine


貌似只有android 10才会报错


二.解决办法


经过我漫长的调试发现,错误点位于__dl_notify_gdb_of_load 的

这个地方

1)第一种解决办法

    修改源码

linker_gdb_support.cpp

void notify_gdb_of_load(link_map* map) {
  ScopedPthreadMutexLocker locker(&g__r_debug_mutex);

  _r_debug.r_state = r_debug::RT_ADD;
  //rtld_db_dlactivity();

  insert_link_map_into_debug_map(map);

  _r_debug.r_state = r_debug::RT_CONSISTENT;
  //rtld_db_dlactivity();
}

直接将 rtld_db_dlactivity() 这两个函数注释掉重新编译源码

2)第二种解决办法

    直接将 __dl_notify_gdb_of_load 函数中两个 BL              rtld_db_dlactivity

给NOP掉也可以


然后就可以愉快的调试你的so了


3.结尾

但是有两个问题,不知道是IDA的问题还是我修改的问题

问题一:

内存已经加载so了但是module中无法看到,而且ida log框中也不提示

问题二:

thread ida也只显示这一个了


盲猜是IDA与Google Android 10还没有XXOO

不过用上面的解决方法调试还是可以调试so的,就是要手动去在linker中去下断点,没有以前ida自动判断是不是相同so来的方便

问一问有没有大佬用google亲儿子调试Android 10成功的



2021-04-09 更新:

    问题二已经得到解决


[培训]内核驱动高级班,冲击BAT一流互联网大厂工 作,每周日13:00-18:00直播授课

最后于 2021-4-11 23:32 被大帅锅编辑 ,原因:
收藏
点赞3
打赏
分享
最新回复 (13)
雪    币: 1475
活跃值: (2260)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
wx_yf 2021-4-8 18:16
2
0
https://bbs.pediy.com/thread-258103.htm
雪    币: 211
活跃值: (511)
能力值: ( LV9,RANK:172 )
在线值:
发帖
回帖
粉丝
vmtest 2021-4-8 18:19
3
1
androdi 10 路径不显示的问题可以export IDA_LIBC_PATH ,   指定一下glibc路径。  >= 7.4sp1 的ida有这个功能
雪    币: 16156
活跃值: (5966)
能力值: ( LV13,RANK:861 )
在线值:
发帖
回帖
粉丝
大帅锅 4 2021-4-8 20:35
4
0
wx_yf https://bbs.pediy.com/thread-258103.htm
雪    币: 16156
活跃值: (5966)
能力值: ( LV13,RANK:861 )
在线值:
发帖
回帖
粉丝
大帅锅 4 2021-4-8 21:08
5
0

感谢楼上两位大佬线程这个已经解决了(通过export IDA_LIBC_PATH) 还剩下modules没解决了,直接用ida attach没毛病就是 jdb + ida就看不到apk本身的so,等我再去研究研究

雪    币: 1
活跃值: (976)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wx_阿达西 2021-4-9 15:54
6
0
大佬研究出来了记得分享下啊
雪    币: 16156
活跃值: (5966)
能力值: ( LV13,RANK:861 )
在线值:
发帖
回帖
粉丝
大帅锅 4 2021-4-9 16:10
7
0
wx_阿达西 大佬研究出来了记得分享下啊


目前看到这,貌似也是android_server的问题,android_server 会往linker里面插入断点,用于检测app的行为(貌似是这样的),最近有项目没空了,后面再研究吧

雪    币: 1
活跃值: (976)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wx_阿达西 2021-5-19 16:24
8
0
坐等大佬
雪    币: 32
活跃值: (103)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
cowkx 2021-7-2 12:39
9
0
楼主大佬,路过的大佬,ida调试so,ida每次会在so的不同的地方报各种signal,app提示没有响应,让你选择“关闭应用”或"等待",没法往下调试。又或者报无法设置断点(有时在系统so中,如libart.so),然后程序崩溃。这些是哪类反调试吗,怎么确定反调试的位置呢?若能指教再提供程序样本,有偿也行的
雪    币: 16156
活跃值: (5966)
能力值: ( LV13,RANK:861 )
在线值:
发帖
回帖
粉丝
大帅锅 4 2021-7-2 18:06
10
0
cowkx 楼主大佬,路过的大佬,ida调试so,ida每次会在so的不同的地方报各种signal,app提示没有响应,让你选择“关闭应用”或"等待",没法往下调试。又或者报无法设置断点(有时 ...
随便找个加了壳的app,里面就是一大堆反调试,能过的话,基本上就了解有那些反调试了
雪    币: 2
活跃值: (515)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
asdf呵呵 2022-2-6 22:15
11
0
楼主,你好!
请问,你提到的“经过我漫长的调试发现,错误点位于__dl_notify_gdb_of_load 的”,具体的发现错误点的步骤是什么样的呢? 是不是在jdb -connect 之前,先在linker64的某个函数上下断点,然后再单步调试?具体是在linker64的什么函数上下断点呢?
雪    币: 5997
活跃值: (1220)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
严启真 2022-2-7 07:52
12
0
是不是配置清单中:
android:extractNativeLibs="true"
没有设置为true
我也纠结这个问题,华为手机调试始终也看不到加载的so,除了libc能断下,其它地方都断不下,不知道是ida问题还是手机问题…

有知道的大神,烦请支招,感谢!
雪    币: 16156
活跃值: (5966)
能力值: ( LV13,RANK:861 )
在线值:
发帖
回帖
粉丝
大帅锅 4 2022-2-8 11:12
13
0
asdf呵呵 楼主,你好! 请问,你提到的“经过我漫长的调试发现,错误点位于__dl_notify_gdb_of_load 的”,具体的发现错误点的步骤是什么样的呢? 是不是在jdb -connect 之前,先在 ...

对, 差不多吧,那个东西要crash,慢慢调试的

最后于 2022-2-8 11:15 被大帅锅编辑 ,原因:
雪    币: 7
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
翻手为云 2023-11-1 10:26
14
0
大佬,内存已经加载so了但是module中无法看到的问题解决了吗
游客
登录 | 注册 方可回帖
返回