World是一个android平台的动态的运行时dex代码注入框架**(需要root权限)**
1、传统Xposed框架的注入和更新都在系统启动,这样更新hook逻辑的时候需要重启系统,效率低下,尤其不适合逆向场景,XPatch将粒度缩小到每次重启app,但World更进一步,实现实时注入
2、注入的是dex文件,逻辑灵活性更强,包括但不仅限于hook
3、注入时机更加灵活,可以在app完全启动后注入(多数app防hook、调试都在启动的时候),且不采用ptrace机制,而是采用binder服务的形式(binder服务不同rom碎片化很强,无法针对检测),抗检测能力更强
4、实现、原理简单,无关逻辑较少,代码易于理解(后续会增加注释,高三党时间实在有限,这个项目也是突然有了这个想法花了一个周末赶出来的,git每次在我要用的时候都不怎么听话,这也是这个项目创建了repo却没有代码的原因)
5、扩展性好,可以自带hook环境,也可以随系统启动准备hook环境(取决于是要效率还是要抗检测,目前hook环境是 RPROP 大佬的AndHook,因为我的那个ArtHook适配还不够)
6、兼容性好,zygote的注入方式可以很轻易的转移到riru上,借助magisk。同时,hook的函数各个rom、版本签名目前来看相同
1、鉴权机制不足,后续可能考虑为requestLoadDex调用增加Context.enforceCallingPermission的鉴权方式
2、目前DexService处于system_server,zygote里JNI_CreateJavaVM回调时创建DexClassLoader总是返回null,无stacktrace(原方法已经执行),无法修改zygote实现全局注入,希望有知道原因的大佬可以issue一下或者发个pull request
2、如果在使用过程中发生任何问题,欢迎提issue,如果是遇到了hook函数兼容性的问题,请务必issue告诉我或自行pull request,我每周末在线维护
4、这篇README.md没有英文版本,之前的项目或多或少有。。。
作者是个高三党,有人可能在github上见过我的几个不成熟的小项目(这个也是呢~)
喜好研究这些东西,浙江7选3,选的偏文科,也不知道学这为了啥,纯兴趣吧,挺有成就感
欢迎随意使用我的代码(虽然距离各位大佬还有很大差距),标明一下出处即可,谢谢
联系方式:发issue,我看见一定尽快回复、解决,希望各位理解