即刻获取 免费体验
新注册游戏可享限时免费体验,包含安全加固、修改器闪退、变速器闪退等功能
免费体验Unity3D 是由 Unity Technologies 开发的一款专业游戏引擎,Unity3D 具有跨平台、高效的开发语言和工具、丰富的插件和极易上手等优势,已逐渐成为使用率最高的游戏引擎。Unity3D 程序由 C# 语言开发,采用了 .NET 框架,可以由 mono 运时行解释执行也可以直接编译本地代码il2cpp,不管何种方式,在极大提升了开发效率的同时也带来了一些安全问题。
对于Backend是il2cpp类型的Unity程序,在global-metadata.dat里面会存储程序所有的类名和方法名
如果不加密直接暴露出去,攻击者通过iL2CppDumper等工具的提取后并加以利用,这会非常有效的帮助攻击者进行逆向分析。
对于Backend是Mono类型的Unity程序, 用户编写的代码最终是在核心程序集文件 Assembly-CSharp.dll ,它是标准的 .NET 文件格式,附带了方法名、类名、类型定义等丰富的元数据信息,使用 DnSpy 等工具可以轻易地将其反编译和篡改,代码逻辑、类名和方法名等和看C#源码一样方便。
对于Backend是il2cpp类型的Unity程序,用户编写的代码最终会被编译成本地代码,相对上面的Assembly-CSharp.dll 安全一点,但是对于有经验的逆向分析者来说,只要没进一步加密,通过Ghidra静态分析工具,虽然没有和阅读源码一样方便,但是对于有效的分析是绰绰有余。
Unity3D 程序在编译打包阶段会通过 Unity 编辑器将资源加包成 Asset Bundle 文件,Asset Bundle 是一种公开的压缩类文件格式,使用 Asset Studio 等工具可以对其解析、展示和提取。
在使用AssetStudioGUI工具对加密前后的资源分析:
加密前后的字节比较:
使用iL2CppDumper工具在对加密前后的dat文件进行符号提取:
加密前后的字节比较:
使用dnSpy工具对加密前后的进行反编译:
加密前后的字节比较:
jar包工具跨平台操作,直接对Windows可执行文件目录一键加固。
结语:
FairGuard专注于游戏加固与反外挂,深耕技术,致力于打造业界顶尖的游戏加固产品。公司开发团队都是来自于网易游戏加固的核心人员,创始人专注于安全领域10多年,前网易游戏加固负责人,从0到1主导了网易游戏保护项目。
有兴趣的可以加入FairGuard技术交流QQ群:1105310296
也可以关注FairGuard微信公众号: