本帖最后由 OurOT 于 2025-3-15 19:38 编辑
一,前言
研究仅供学习交流,如有侵权请联系删除
目前主流dump分下列这二种:
2, 使用zygisk-Dumper 进行动态Dump
后者由于是透过符号查找il2cppAPI进行动态dump
但有的游戏会隐藏或加密导致获取不到il2cppAPI
这款游戏都没有办法使用上面两种直接Dump
二,分析
使用静态Dump发现失败了!

但好像可以更改il2cppDump去修复(但我打算使用动态Dump)
之后我使用动态Dump发现也同样Dump不出来
只能去看看他的SO了
我先使用readelf查看符号,发现并没有Dump需要的il2cppAPI符号

那我们把il2cpp拖入IDA看看怎么了
跑完SO直接Shift+F12查看字串

搜索il2cpp_domain_get会发现有函数用到直接进去F5!!

三,查找Il2cppAPI函数

我们发现他把字串赋值给v0 v0+1是一个函数
我就猜这个函数就是API了
我们直接查看其他游戏的API函数内部实现去对比

我们发现除了函数名不一样其他大致一样
至此我们就找到il2cppAPI了
剩下就写个工具把需要的API提取出来就可以了

四,Dump
找到API就轻松了,可以修改Zygisk-Dumper源码
或者使用Frida-Dump
这里我使用imy大佬的frida脚本进行Dump(还可以dump某盾)

五,总结
这次逆向算比较简单的,对SO的加固没有很强(残血)
也没有对字串进行处里IDA(搜索就找到了)
API拿到也能直接用
所以总得来说也是很容易的
这是一个比较笨拙的方法但胜在简单
也有比这更好的方法
参考
Zygisk-Il2CppDumper
Frida-il2cppDumper
|