-
-
[原创]让你的Android Studio能够对任意进程进行源码级native debug
-
发表于:
2021-11-6 19:40
20077
-
[原创]让你的Android Studio能够对任意进程进行源码级native debug
在进行逆向分析时我们经常需要将自己的代码注入到第三方进程内悄咪咪的干一些事情,为了能够更直观的看到注入代码是如何工作的,我们往往会使用Android Studio配套的debug工具在被注入的进程内观察自己的代码执行,可以说是相当之舒服了。
然鹅很不幸的是,有时候用Android Studio attach到第三方进程时会报错,提示"Cannot find module that matches process name xxxxxxx",如下图所示
可以说是相当之蛋疼了,稍微有经验的分析者可能会知道这和native debug有点关系,只需要在attach时选择只debug java代码就能够避免这个问题 ,如下图所示。选择Java Only后就能给继续愉快地debug了。
一般来说,问题到这里就可以告一段落了,毕竟我们还能借助无敌的ida来完成完成native部分的debug。然鹅ida的汇编级debug很多时候还是不够直观,使用体验终究是不如Android Studio的源码级debug。如果我们能够想办法让Android Studio能够像ida那样对任意进程的native code进行debug,配合上idea良好的debug交互体验,许多问题解决起来就会变得轻松许多了。
太长不看的可以直奔github的release内下载最终文件进行替换。
正式开始之前先放一下最终结果,如下图所示,我们成功对MT管理器开启了Android Studio的native + java级debug,接下来只需要像debug自己的程序一样快乐滴下源码级断点就好了。
但是这还不够,实际上我们在进行某些特殊的开发时可能需要debug这些进程的子进程,例如分析那些通过execve启动的elf进程等。他们可能是fork出来的,也可能是execve出来的,不过这不重要,可以看到Android Studio的可debug进程列表里显示出了MT管理器的所有子进程
成功将Android Studio的native debugger attach上了pid值为19765的MT管理器的子进程。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
最后于 2021-11-7 20:47
被不吃早饭编辑
,原因: