U3D逆向-Mono解密
- 游戏信息
- 发布时间:2024-11-13 04:26:44
面对U3D的Mono解密,让我们直击核心。众所周知,Mono加密主要针对Assembly-CSharp.dll,这是承载游戏所有功能性的关键dll,使用工具dnSpy.exe加载后,我们能对其进行详细查看。
Assembly-CSharp.dll的公开意味着源码的曝光,通过C#工程引入该dll,自创一个GameObject,再将之注入到游戏中,调用游戏自带的函数,实现作弊手段。众多加密方法通常是对此dll进行二进制处理,即将文件字节进行操作。
Mono.dll作为U3D用于初始化并加载dll的重要模块,内部包含函数mono_image_open_from_data_with_name,其代码如下:
package org.easydarwin.easyscreenlive.config;
这是一个通用常量类的示例,其内定义了SP_NAME常量,表示SharedPreferences的名称。
我们只需关注data、data_len、name这三个参数,分别代表当前被加载模块的二进制内容、二进制长度、模块名。多数游戏开发者会在加载模块时,判断其名是否为Assembly-CSharp,随后进行二进制内容解密。因此,我们只需在函数mono_image_open_from_data_with_name的调试工具下段,分析其结束位置,然后直接进行dump操作即可。
受限于篇幅,详细的解密过程在此不一一赘述,感兴趣的读者可以私下进行深入探讨。