jmeter 加密解密_Unity PC端加密加固方案

一、背景

    Unity3D 是由 Unity Technologies 开发的一款专业游戏引擎,Unity3D 具有跨平    台、高效的开发语言和工具、丰富的插件和极易上手等优势,已逐渐成为使用率最高的游戏引擎。Unity3D 程序由 C# 语言开发,采用了 .NET 框架,可以由 mono 运行时解释执行也可以直接编译本地代码il2cpp,不管何种方式,在极大提升了开发效率的同时也带来了一些安全问题。

二、Unity程序面临的风险

    2.1    符号文件的提取风险

        对于Backend是il2cpp类型的Unity程序,在global-metadata.dat里面会存储程序所有的类名和方法名,如果不加密直接暴露出去,攻击者通过iL2CppDumper等工具的提取后并加以利用,这会非常有效的帮助攻击者进行逆向分析。

    2.2    核心代码逻辑极易被反编译或反汇编

        对于Backend是Mono类型的Unity程序, 用户编写的代码最终是在核心程序集文件 Assembly-CSharp.dll ,它是标准的 .NET 文件格式,附带了方法名、类名、类型定义等丰富的元数据信息,使用 DnSpy 等工具可以轻易地将其反编译和篡改,代码逻辑、类名和方法名等和看C#源码一样方便。

        对于Backend是il2cpp类型的Unity程序,用户编写的代码最终会被编译成本地代码,相对上面的Assembly-CSharp.dll 安全一点,但是对于有经验的逆向分析者来说,只要没进一步加密,通过强大的IDA静态分析工具,虽然没有和阅读源码一样方便,但是对于有效的分析是绰绰有余。

    2.3    游戏资源易被提取的风险

        Unity3D 程序在编译打包阶段会通过 Unity 编辑器将资源加包成 Asset Bundle 文件,Asset Bundle 是一种公开的压缩类文件格式,使用 Asset Studio 等工具可以对其解析、展示和提取。

三、FairGuard应对上述风险

3.1    global-metadata.dat文件的内存动态加解密。

3.2    Mono类型的DLL程序集的整体加解密,单独函数方法的加解密

3.3    Asset Bundle 资源文件的加解密

四、加密前后的对比

4.1 AssetBundle资源保护前后对比:

      在使用AssetStudioGUI工具对加密前后的资源分析:

cae141eab6543c3ba542355676ff7ea4.png

加密前后的字节比较:

c2cc928d4e19e35830ad9c0e64ddbb95.png

4.2 global-metadata.dat保护前后对比:

   使用iL2CppDumper工具在对加密前后的dat文件进行符号提取:

d07cf3bfab2fee0e48069dcbad0bb4d5.png

a9ab77e0483f07cee01d6846a0795fc4.png

    加密前后的字节比较:

d939aabfa2064a71ac3d3003e862b999.png

4.3 DLL保护前后对比

    使用dnSpy工具对加密前后的进行反编译:

06c353867bd66e51cc62aef63828e981.png

    加密前后的字节比较:

d4a7ca7705b2dd37554ca6e1b1460e2f.png

五、FairGuard加固方式

    jar包工具跨平台操作,直接对Windows可执行文件目录一键加固。

1c4d541feae8caedc1d30a775d7b5c59.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值