-
-
[原创]解决jdb加ida无法附加google亲儿子pixel 4 Android10的问题
-
2021-4-8 17:15
14895
-
[原创]解决jdb加ida无法附加google亲儿子pixel 4 Android10的问题
一.问题
先
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
被大帅锅编辑
,原因: