另类的global-metadata.dat解密思路,以[XX方舟]为例子
游戏版本是taptap上下的最新版查看安装包内的global-metadata.dat文件,很明显是加密了的
尝试使用各位大佬的一键dump工具失败
猜测可能是对dat文件的特征进行了隐藏
这里我们换一种思路进行手动dump
首先确定XX方舟的unity版本 2017.4.39f1
找到对应版本的il2cpp的源码
通过阅读源码得知 metadata文件会通过下面这条函数加载到内存中
那么思路就很清晰了 只要在内存中找到s_GlobalMetadataHeader即可
首先把游戏的so拖到ida中
等so加载好后使用shift+f12打开字符串界面 搜索global-metadata.dat
找到后双击跳转,按X查看引用
可以看到只有一条函数 我们跳转过去查看伪代码
通过对比源码,很轻松的就能看出来 off_70B2F90就是s_GlobalMetadataHeader
在内存中跳转到off_70B2F90再进行一次指针跳转就拿到了global-metadata.dat文件
我们把它dump下来看看
果然 AF 1B B1 FA的特征被改成了00 00 00 00
我们将文件头手动修改然后尝试使用il2cppdumper
成功
注:这个游戏的so也是加密的 从内存里dump出来就行
BFZWQ 发表于 2023-2-21 12:20
有的可以直接用模块dump,不过即使dump出来了,一改so也进不去,不知道是啥原因,不止这一个游戏,我遇到的 ...
XX方舟使用了腾讯的tp保护,会对il2cpp.so的md5进行校验 此方案失效,求大佬跟新最新dump方案。 牛,多少年没看到有xx方舟的例子了。 用这个也不可以吗?
https://github.com/Perfare/Zygisk-Il2CppDumper 正己 发表于 2023-2-21 10:45
用这个也不可以吗?
https://github.com/Perfare/Zygisk-Il2CppDumper
这个动态dump出来的东西比普通dump出来的少很多,比如结构体文件,ida分析脚本之类的 {:1_921:}{:1_921:}{:1_921:}{:1_921:}牛啊 这个例子可以 有的可以直接用模块dump,不过即使dump出来了,一改so也进不去,不知道是啥原因,不止这一个游戏,我遇到的加密的几乎都对so进行了防修改检测。
不知道是不是so加密的原因,在这问一下大佬怎么从从内存dump so 63178249 发表于 2023-2-21 12:21
XX方舟使用了腾讯的tp保护,会对il2cpp.so的md5进行校验
噢,好吧,这种我就不会了,大佬有时间可以看看猫咪和汤这个游戏,谷歌的应该不会用腾讯的吧
谢谢大佬的解答 点赞收藏啦 是不是明日呀,有源码 是不是能看出来?