最新开发进度:多模块注入完成,maps隐藏注入完成(并且修复了riru内存泄漏问题) 现在仍然面临soinfo链表遍历无法隐藏的情况
我会初步进行框架层面的hook进行隐藏,进一步使用自定义linker来伪装成系统库的加载。
原项目https://github.com/Perfare/Zygisk-Il2CppDumper
本项目在原项目基础上做局部更改,请支持原项目作者劳动成果
-
安装Magisk v24以上版本并开启Zygisk
-
生成模块
- GitHub Actions
- Fork这个项目
- 在你fork的项目中选择Actions选项卡
- 在左边的侧边栏中,单击Build
- 选择Run workflow
- 输入游戏包名并点击Run workflow
- 等待操作完成并下载
- Android Studio
- 下载源码
- 编辑
game.h
, 修改GamePackageName
为游戏包名 - 使用Android Studio运行gradle任务
:module:assembleRelease
编译,zip包会生成在out
文件夹下
- GitHub Actions
-
在Magisk里安装模块
-
将要注入的so放入到/data/local/tmp下修改为test.so
(部分手机第一次注入不会成功,请重启,再之后的注入会成功)
多模块注入已经开发完成:
void hack_start(const char *game_data_dir,JavaVM *vm) {
load_so(game_data_dir,vm,"test");
//如果要注入多个so,那么就在这里不断的添加load_so函数即可
}
目前正在开发的分支:
1. 使用Java的System.load加载so
2. 注入多个so的分支(已完成)
计划开发:
- 第一步,仿照Riru,将注入的so进行内存上的初步隐藏(可以对抗部分业务检测,游戏安全相关已经补齐,建议不要尝试)(已经开发完成)
- 第二步,实现一个自定义的linker,进行更深层次的注入隐藏
- 第三步,搭配对应配套手机的内核模块对注入的模块进行进一步完美擦除,达到完美注入的目的
以此项目为脚手架的计划开发:
-
一个全新的Frida框架,保留大部分原生api,并可以过任何相关注入检测
-
一个全新的Trace框架,高性能Trace,速度是Stallker的60倍,并且支持更全面的信息打印。(具体效果可以参考看雪帖子)
-
一个全新的无痕调试框架,支持像GDB一样调试,没有ptrace痕迹,两种思路进行无痕调试(基于硬件断点以及基于VM)