Closed qwp-led closed 3 years ago
xhook的原理是去改内存里对应so的.got
表里存的地址,所以理论上只要两个xhook不是同时去改是没问题的,会组成责任链(同时去改的话先发生的修改有可能会被覆盖掉)
另外太极阳的原理以前是替换libprocessgroup.so,现在貌似是动态patch app_process
动态patch app_process, 是个什么原理,大佬我最近有个新的想法,最近我看了面具的隐藏root的原理,我发现面具的隐藏root原理,就是通过pid 动态注入,大概就是只要拿到这个进程的pid,通过执行面具的二进制,就能直接注入到目标进程。我想这个会不会跟太极的实现原理有关系,https://bbs.pediy.com/thread-247408.htm,通过一个二进制,就能注入到目标进程
zygote对应的可执行文件实际上就是app_process,所以改app_process就能实现注入,比如在.init_array添加自己的代码(实际用起来还要处理很多问题,记得有个叫lief的库可以修改elf),可以看看https://bbs.pediy.com/thread-224191.htm
至于ptrace,ptrace的问题在于很容易错过代码执行时机、绕过目标进程的反调试保护等等,所以不太像用的ptrace
首先我觉得楼主真的脑洞大开,居然通过public.libraries.txt来注入so, 哇靠,真的很棒,非常优秀。另外我也非常佩服太极阳,也是非常轻量级的注入到了进程,但是由于没开源不知道使用啥原理,不过我觉得楼主的注入方式要比riru要好的多,不用替换so就能注入到进程了。
我的问题点: 关于使用xhook hook 了jniRegisterNativeMethods,那么如果别人使用了riru,会不会2个都使用了xhook hook了同一个native方法会不会造成冲突. 先抛开javahook的逻辑,因为我的需求是,把自己的dex注入到目标进程,不需要java的hook,希望楼主能回复我