Return to site

Unity 3D程序-加密流程

保护背景

Unity3D主要使用C#语法和开源mono运行开发商的代码逻辑,所有代码都不是编译到EXE,而是位于{APP}\build\game_Data\Managed\Assembly-CSharp.dll(注意Unity-2017位置略有不同)。

而且mono执行原理跟微软.NET Framework兼容但是执行原理完全不一样。传统的.NET Framework加壳全部失效,因为Assembly-CSharp.dll不是PE格式的动态库也不是.NET的动态库,无法从 .NET Framework 加载,而是由mono.dll读取 Assembly-CSharp.dll的里面C#脚本解释执行。

加密方式

对于Unity3D的保护方式,主要是通过Virbox Protector Standalone对Unity3D程序的整个生成目录进行加密,可以保护Unity的主要代码逻辑不被反编译,最大程度保护软件开发商的合法权益,同时DSProtector工具可以对Unity软件中的 .resS和resources等资源文件进行加密防止软件或游戏中的资源被非法提取。

源码加密

将Unity3D程序的整个目录拖入加壳工具中

加密选项处输出文件夹会自动写成【ssp.程序名】,点击保护选中项目,提示加壳成功,打开生成目录,默认是在原文件的同目录下生成新的ssp.XXX(Unity3D程序文件夹名称),加密成功。[注:加壳工具默认对Unity3D目录下的mono.dll和Assembly-CSharp*.dll]文件进行加壳保护]

其他的dll和资源加密保护

对 Unity3D 资源的保护的基本流程是,先对unity项目的整个目录加壳,再通过 DS protector 对资源文件进行加密保护。

①对unity项目的整个目录加壳时,打开加密选项的DS开关,密码可自由设置

点击“立即加壳”,加壳后会额外生成图示两个文件。

③点击加壳工具的 【打开DSProtector】 按钮 打开“DSProtector.exe”

选中上一步加壳Unity项目时生成的 .ssp 文件

点击添加资源,或者将所需保护的资源拖入到DS中,点击“保护它”,提示加密成功。

至此Unity3D程序加密已经完成。

All Posts
×

Almost done…

We just sent you an email. Please click the link in the email to confirm your subscription!

OKSubscriptions powered by Strikingly