论坛首页 安全工具分享区 阅读主题

[原创]基于ptrace注入对unity手游进行dump的方案

379 浏览 16 回复
#1 楼主 2026-06-01 21:09:12
在安卓平台上针对unity手游进行动态dump的项目已经非常多了,比较主流的两个项目是Zygisk-Il2CppDumper和frida-il2cpp-bridge,这两个项目分别基于zygisk注入和frida注入,在大部分情况下是十分好用的,但是因为相关的针对性检测愈发严格,使得绕过这些检测去使用这些项目进行dump的成本也水涨船高。但或许是因为这些检测的针对性太强反而忽视了最原始的ptrace注入。现如今直接使用ptrace注入反而更不容易触发一些手游的检测。因此直接用ptrace注入特定的so模块去执行dump的任务或许是更好的选择。基于此我写出了PtraceIl2cppDumper。PtraceIl2cppDumper在Zygisk-Il2CppDumper的基础上进行了一定的修改,主要有两点。一是因为要将这个项目改为一个可以被ptrace注入工具注入至指定unity手游进程中的so模块,所以需要将主动调用dump的程序入口迁移到init_array中使得在so模块被注入进指定手游的进程后能够直接自动开始进行主动调用dump。二是不再使用il2cpp_domain_get_assemblies这个il2cpp的api来获得unity手游的所有程序集,改为使用il2cpp_domain_assembly_open这个api来获取指定的程序集,虽然这会额外需要提供指定的程序集名称,但是好在程序集名称可以通过指定手游apk包中的assets\bin\Data\ScriptingAssemblies.json文件获得。之所以弃用il2cpp_domain_get_assemblies这个api,主要是因为继续使用这个api可能会陷入相关游戏加固厂商的反主动调用陷阱中。


回复或点赞可查看完整内容

---
来源: 看雪论坛
原文链接: https://bbs.kanxue.com/thread-286222.htm
#2 2026-06-01 21:09:12
但是有些比较狠的游戏直接将il2cpp相关的api全部隐藏了,在这种情况下,你用il2cpp_domain_assembly_open还是要失败的吧
#3 2026-06-01 21:09:12
看看学习
#4 2026-06-01 21:09:12
看一下,学习学习
#5 2026-06-01 21:09:12
学习学习
#6 2026-06-01 21:09:12
看一下,学习学习
#7 2026-06-01 21:09:12
学习学习
#8 2026-06-01 21:09:12
vmoveq


但是有些比较狠的游戏直接将il2cpp相关的api全部隐藏了,在这种情况下,你用il2cpp_domain_assembly_open还是要失败的吧

这种没法用通用的工具去处理的,都是只能自己定制工具去搞
#9 2026-06-01 21:09:12
感谢分享,向大佬学习
#10 2026-06-01 21:09:12
谢谢。学习一下。
#11 2026-06-01 21:09:12
看看隐藏
#12 2026-06-01 21:09:12
感谢分享。
#13 2026-06-01 21:09:12
谢谢分享
#14 2026-06-01 21:09:12
PtraceIl2cppDumper
#15 2026-06-01 21:09:12
学习
#16 2026-06-01 21:09:12
学习
‹ 上一页 1 2 下一页 ›

请登录后参与讨论

立即登录 注册账号