-
-
少前2:追放 资源解密记录
-
发表于:
2023-10-5 19:04
12019
-
最近,某个总是被人说药丸的游戏出了一个新游戏,闲的没事想看看资源结果被加密了(⊙ˍ⊙) 直接掏出珍藏已久的 IDA,干他 :)
一般来说像YM这种体量不大的厂商,一般只会在业务代码中写解密逻辑,不大可能在 Unity 源码里面塞解密和修改 global-metadata.dat 的读取结构 (点名某个厂商), 所以先把 il2cpp 的符号还原会看着舒服点。
先拿 010 Editor 看下文件,标准签名头没有修改 (AF 1B B1 FA),但是后面的内容全部被加密了
启动游戏,Process Monitor看一眼,直接一眼丁真,鉴定为纯纯的传统派,这不就是把内容直接映射到内存然后解密吗,找到内存直接 dump 出来,再拿 il2cppdumper 把符号导出来就完事了 ᕕ(◠ڼ◠)ᕗ
跟着堆栈走一圈,最终跟到了 NEP2.dll 里面,等解密完之后把内存 dump 出来,再把 4~8 字节的 SDK 版本号给他修一下就可以获得符号了
(忘记截图了就来张压缩包的照片吧 -_- )
有了符号,追AB包解密就轻松很多了 (^_^)
这次追放的AB包分为两个部分: 一个是存放在 StreamingAssets\aa\StandaloneWindows64
的未加密AB包,另一部分是放在 LocalCache\Data\AssetBundles_Windows
的加密AB包,这也是绝大部分游戏资源存放的地方
查看加密文件,有一个比较明显的规律,既有的字节没有加密,如下图中 UnityFS
的标准头中 FS
没有被加密,且部分版本号如 2019.4.29f1
中的 19.4
、5.x.x
中的 5.x
没有被加密。
根据一定数量的观察,发现规律基本一致,那么可以确实解密方式应该就是单纯的异或了
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2023-10-6 17:21
被DNLINYJ编辑
,原因: