-
-
[求助]4.4 SElinux影响注入问题
-
发表于:
2015-3-20 09:14
10857
-
大家应该目前都是采用ptrace的方式进行对目标进程的内核调试,使其dlopen来达到注入自身hook.so的目的,但是近期我测试到android4.4的系统发现ptrace不好使用。
首先,我已经拿到了系统的root权限,但是缺无法像4.0那样成功的注入并执行。
现在我把自己身上发生的奇怪事情跟大家说一下,希望懂的朋友给个帮助。
原本我的inject注入代码是采用4.0.3的源码环境进行编译的,我们这里就称为inject4.0吧。这时候4.0.3的系统可以注入成功,我的代码主要是注入system_server后创建sqlite数据库并对系统的相关操作进行收集。
下面,我开始尝试到4.4的系统了,inject4.0注入成功,并数据库创建了,可这时候system_server 内的所有服务都died了,导致android系统卡在一个假死的黑色界面。无法再进入桌面。
后来,我就尝试了用4.4的源码环境编译了我的inject,这里称为inject4.4吧。这个inject4.4的结果是没有注入成功,数据库都没创建,查看log发现就结束在hook_entity方法这,就是dlopen的部分。
听朋友说是SElinux导致的问题,所以想来问问,既然是SElinux的问题,为什么4.0编译是可以注入的呢? 我看遍了log发现inject4.4的died之前的错误跟inject4.0died之前的错误有很大不同,是在同一部机器上的。inject4.4的错误是E/ActivityManager的错误导致的,inject4.0是因为debuggerd程序的错误导致的,因为自身注入的程式是写在debuggerd程式里面的。
请大家路过,留个思路。谢谢大家。
[培训]科锐逆向工程师培训第53期2025年7月8日开班!