# World **Repository Path**: wc1217/World ## Basic Information - **Project Name**: World - **Description**: 一个运行时dex代码注入框架 - **Primary Language**: Android - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2020-10-21 - **Last Updated**: 2020-12-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # World ## 1、World是什么 World是一个android平台的动态的运行时dex代码注入框架**(需要root权限)** ## 2、World的优势 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、版本签名目前来看相同 ## 3、需要完善的地方 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没有英文版本,之前的项目或多或少有。。。 ## 4、关于作者 作者是个高三党,有人可能在github上见过我的几个不成熟的小项目(这个也是呢~) 喜好研究这些东西,浙江7选3,选的偏文科,也不知道学这为了啥,纯兴趣吧,挺有成就感 欢迎随意使用我的代码(虽然距离各位大佬还有很大差距),标明一下出处即可,谢谢 **联系方式:发issue,我看见一定尽快回复、解决,希望各位理解**