解密app反编译后的png图片等资源的方法和所需要的工具: 怕下次自己忘了。 使用工具:CPP2IL GitHub - SamboyCoding/Cpp2IL: Work-in-progress tool to reverse unity's IL2CPP toolchain. Il2CppInspector AssetStudioGUI dnspy ida x64dbg 用到的工具比较多
一、先找语言文件 先打开AssetStudioGUI
直接加载游戏文件目录,等他跑一小会,随便搜搜关键字筛选一下看看 ![](https://img-blog.csdnimg.cn/388572dd9ff949a88b4339fcdbc5b937.jpeg)
![](https://img-blog.csdnimg.cn/4aa41d2bd7e14c0188ff5dcb906b9386.jpeg) 能看到多语言文件都是加密过的,先右键导出个英文的文件准备开干。
二、解包GameAssembly.dll 下载好Cpp2il,填上bat命令行,一键导出,或者使用Il2CppInspector。 命令行:Cpp2IL.exe --game-path="D:\Program Files (x86)\Steam\steamapps\common\Yu-Gi-Oh! Master Duel" --exe-name="masterduel" 经过漫长无比的等待后 cpp2il文件目录下会输出若干文件 ![](https://img-blog.csdnimg.cn/e4d3893ea1164ee5bac2236826dffabc.jpeg)
三、分析Assembly-CSharp.dll 拖进dnspy可以看到类似这样,看不到函数内部,只能看到函数名,够用了,开始找解密函数 ![](https://img-blog.csdnimg.cn/976a6911ae034cffa718d512d6d33d73.jpeg) 搜索Decrypt方法,只有一个符合,我这里已经知道这个函数就是解密函数了,所以直接拿他开整。 ![](https://img-blog.csdnimg.cn/2e4538ab98794ca0b3a5c0154ca04bb2.jpeg)
记录下地址:[Address(RVA = "0x7BD270", Offset = "0x7BC470", VA = "0x1807BD270",dnspy先别关一会还有用
四、分析GetBytesDecryptionData解密函数 掏出IDA拖入GameAssembly.dll,抽根烟开始漫长的等待。跑完之后直接去00000001807BD270处F5看一下伪代码 ![](https://img-blog.csdnimg.cn/3e74948367c54b48b179d7b036d93071.jpeg) 很简单的逻辑,在去dbg里跑一下看一眼变量。
这里rbx+78对应的a1 + 120,拿到v5的数值,接下来写个算法就好了,其实就两行。 ![](https://img-blog.csdnimg.cn/6fb92ba93e1a4e3ca45024dbe7c8c862.jpeg) 简单的运算,没啥好讲的,解密之后发现还是加密的状态,后来我仔细找了找,返回值还有一个call双击进去,复制1806ED310,dnspy搜一下字符串
对应的应该是zlib算法里的解压函数,下载一个zlib类库看下源码 ![](https://img-blog.csdnimg.cn/d37919bf89c54eb7bc5388c426f12c7c.jpeg)
OK,引用到项目,测试一下完活
![](https://img-blog.csdnimg.cn/7a606dc692064edf87de9aa8f5a04461.jpeg) ![](https://img-blog.csdnimg.cn/e981533887b24a1093288cb12a2836d3.jpeg)
![](https://img-blog.csdnimg.cn/4e9a47bf0c83432091cdce6673f63491.jpeg) |