本帖最后由 bant 于 2023-12-31 16:30 编辑
它加密了吗,如加——明日方舟:终末地 资源解密记录没啥可说的,鸽了几个月的东西()
1. 观察先看看AB包,这种奇怪后缀肯定加了料 不加我倒立
瞄一下程序行为,读取AB包头看起来比较正常,偏移看上去没问题
扔进 AssetStudio,改了压缩类型,大概率也做了加密 (和某厂差不多的味道)
2. 分析
这玩意的 UnityPlayer.dll 不仅加了VMP3,也加了不知名压缩壳,我选择直接 dump 出来之后再静态分析 (差了几倍你敢信???) 找到 CreateDecompressor , 果然使用了自定义的flag 解压函数一时半会看不出来什么问题,先去看看前面的处理,一般来说不在解压做解密,那就会在读取做解密 找到 ArchiveStorageReader::ReadFromStorage ,发现了点问题,直接一个jmp大跳跳到别的函数去读取了 这个函数实际上就是将读取的工作扔去 FairGuardProtect.dll 里面,具体可以看下面 GPT4 的解释 动态一下(其实看堆栈也行),跳转来到了 FairGuardProtect.dll + 0x26F50 ,下面的 sub_180049950 一眼就看出是解密函数 废话,那你拿缓冲区内存去干嘛
进去瞄一眼,好嘛,直接明文,加密跟没加一样
直接把伪代码抄一下,补齐一下依赖的函数,顺利解密
注: 其实 LZ4 解压那边也动了点手脚,但出于版权问题不写完,也算是保护下对方版权-O- 3. 结尾现在厂商这么有钱了嘛,第二个看到买 Unity 源码改的厂商了()
注:若转载请注明大神论坛来源(本贴地址)与作者信息。
|