游戏反编译源码-【技术分享】Unity3D程序脚本反编译分析与加密

前言

使用Unity3D开发的程序存在被反编译的风险,也存在显存转储的威胁,最终导致游戏或项目被抄袭甚至盗版。 下面简单介绍一下Unity3D脚本的分析过程,并为其防护提供参考方法。

工具集

dnSpy、Ollydbg、CheatEngine

背景

大家都知道Unity3D使用开源的monoC#语法。 所有代码都没有编译为EXE,而是位于{APP}uildgame_DataManagedAssembly-CSharp.dll中(最新的Unity3D2017不是这样),但mono语法只兼容C#,原理完全不同。 传统的C#防病毒方法都无效,因为Assembly-CSharp.dll不是标准的DLL加载进程。 它既不是 PE DLL,也不是 dotNet DLL。 相反,mono.dll 读取 Assembly-CSharp。 dll的C#脚本被解释并执行。 所有这一切都无需等待官方 IL2CPP 或定制您自己的单声道引擎!

反编译

要反编译Unity3D脚本代码,可以使用dnSpy来达到非常好的效果。 dnSpy可以准确地将Unity3D脚本文件和标准DotNet动态库文件反编译为源代码。 通常游戏反编译源码,只需将需要反编译的文件推送到dnSpy工具中即可。 效果如下,可以完整的看到编码器的代码逻辑:

官方demo反编译截图

根据反编译的代码,可以进一步分析软件的流程方向,甚至可以篡改原始流程。 详细情况将不再描述。

如何保护脚本代码?

对于这些脚本代码的保护,一般采用脚本文件加密和协程解密来实现加密方案。 下面简单介绍一下可以保护这些脚本的现成产品:VirboxProtector和VirboxAHS。

VirboxProtector和VirboxAHS分别可以避免Unity3D软件产品的静态分析和动态调试游戏反编译源码,并具有以下特点:

1.一键加密您的代码逻辑,使反编译和转储显存变得困难。

2、不会提高游戏帧率,在某些情况下甚至可以提升游戏帧率。

3. Assembly.DLL代码按需显示。 只有调用时才会在显存中显示出来。 如果不被调用,则不会被透露。 黑客很难一次性破解所有代码。

4、完整的授权解决方案,支持云授权、软锁授权、USB加密锁授权、网络锁授权,支持时间限制、数量限制、网络并发数限制。

5.自带反黑客引擎和驱动级反调试,对大多数调试器都有效。

(注:如需要游戏防盗最高安全硬度,请参考防盗引擎)

使用加密工具前后对比

1、dnspy反编译被免杀的结果:

杀人前

脱离杀戮后

分析:从对比结果可以看出,大量的代码信息丢失了,再次分析会非常困难。

2.X6464Dbg和OllyDbg在PC上调试和挂载失败

分析:VirboxAHS 提供的这些动态调试保护方案将在程序的实时分析中发挥重要作用。

3.Cheat-Engine读取显存失败(需要新的反黑客引擎支持)

分析:通过保护原程序的显存数据,想要通过更改数据进行作弊的恶意行为也会被拦截。

典型客户场景

1.Unity3D游戏客街机游戏

2.VR设备交互体验

3、机器/医疗/工业/航天VR交互

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 源码编译 游戏反编译源码-【技术分享】Unity3D程序脚本反编译分析与加密 https://www.wkzy.net/game/192061.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务