在安卓平台上针对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
[原创]基于ptrace注入对unity手游进行dump的方案
379 浏览
16 回复
但是有些比较狠的游戏直接将il2cpp相关的api全部隐藏了,在这种情况下,你用il2cpp_domain_assembly_open还是要失败的吧
看看学习
看一下,学习学习
学习学习
看一下,学习学习
学习学习
vmoveq
但是有些比较狠的游戏直接将il2cpp相关的api全部隐藏了,在这种情况下,你用il2cpp_domain_assembly_open还是要失败的吧
这种没法用通用的工具去处理的,都是只能自己定制工具去搞
但是有些比较狠的游戏直接将il2cpp相关的api全部隐藏了,在这种情况下,你用il2cpp_domain_assembly_open还是要失败的吧
这种没法用通用的工具去处理的,都是只能自己定制工具去搞
感谢分享,向大佬学习
谢谢。学习一下。
看看隐藏
感谢分享。
谢谢分享
PtraceIl2cppDumper
学习
学习