Uinty3D 资源保护
背景
Uinty3D 主要的游戏资源都在 resources.assets,游戏里面所有放在 resources 文件夹下的东西都会放在 这里,提取资源也主要是在这里提取。以 Unity3D 游戏资源提取的工具 Unity Studio 为例,基本上可以 拆解九成以上的游戏资源,可以直接在 Unity Studio 软件上预览查看图片、 shader、文本、还能直接播 放音频、甚至还能看场景 Hierarchy 视图的树状结构。并且可以点击点击菜单工具栏里的 Export->Selected Assets,快速将资源文件导出。而这无疑对软件开发商的权益来说,造成了很大的伤害。
关于 Unity3D 资源保护的方式:
北京深思数盾对 Unity3D 资源的保护方式主要是通过 Virbox Protector 加壳工具结合 DS Protector 加 密工具进行保护。
DS Protector 加密方式: DS Protector 是北京深思数盾自主研发的程序数据保护工具,它弥补了加壳工具 Virbox Protector 的功 能,Virbox Protector 是对程序编译后的二进制代码进行的保护,配合 DS Protector 数据保护工具就形 成了代码,数据,授权,三位一体的防护。
而对于 Unity 引擎开发的程序的保护方式主要是对 Assembly-CSharp.dll 进行加密,可以保护 Unity 的主要代码逻辑不被反编译,从而最大程度保护软件 开发商的合法权益,同时 DSProtector 工具可以对 Unity 引擎开发的软件中的.resS 和 resources 等资源 文件进行加密防止软件或游戏中的资源被非法提取。
加密流程
对 Unity3D 资源的保护的基本流程是,先通过 Virbox Protector 对可执行exe进行加壳,再通过 DS protector 对资源文件进行加密保护。
从 Virbox 开发者工具盒打开加壳工具,将待加密软件拖入到加壳工具中
注:使用加壳工具的前提是点击“下载” SDK,并安装,详细见 Virbox 开发者工具盒说明。
1、对 exe 进行加壳
2、设置加壳工具
登录云锁:
即登录 Virbox LM 平台开发者账号
许可形式:
勾选相应许可形式
此处勾选的许可形式需要与发布给用户的许可类型一致
许可ID:
许可 ID 需要自定义,是 1-42 亿数字范围。
许可 ID 是加密过程中需要使用的一个重要概念,是加密后软件和授权唯一的标识,也可以代表软件开发商的一个产品或者一个模块,许可 ID 在下一步的发布许可中会直接用到。
API密码:
进入Virbox LM 开发者平台,页面顶部点击“查看”,将API密码输入至此
锁序列号:
如果输入锁序列号,则加壳后的程序只有此锁可用。(此功能只针对硬件锁)
被保护函数列表:
对加壳前的软件进行预分析,建议对比较重要的函数选择碎片代码的保护方式,开发者需要在软件性能与安全之间平衡,如果对调用次数过多的函数选择碎片化保护,可能会影响软件的运行速率,调用次数过多的函数建议使用不保护的方式
加密选项:
建议对 exe 文件勾选压缩选项:勾选压缩后软件更安全,此压缩为带密码的压缩。
可设置加密后文件输出的位置
后台检测时间间隔:表示每隔多少秒对运行程序进行检测是否存在对应许可,如果没有那么就会提示错误,或者退出。如果后台检测时间设为 0 s,那么后台就不会进行检测许可的操作。
插件:打开 DS 插件开关,主要用于对 Unity 3D 资源加密,密码自定义即可。
消息选项:
设置许可失效时提示的形式、设置提示标题、软件剩余时间、剩余次数以及其他提示消息
软件加壳:
设置好相应的选项后,点击“立即加壳”,对软件进行加壳保护
3、 加壳后文件
加密前的软件
加密后的软件
①加壳前的软件原文件 xxx.exe,将此文件剪切备份至其他文件夹
②加壳后的配置文件 xxx.exe.ssp,此配置文件主要记录API密码和一些配置信息,主要用于下一步对 Unity3D 资源文件加密,如将软件发版请删除此文件。
③加壳后的软件 xxx.ssp.exe,将加壳后的软件名称修改为原文件名称。
4、 资源文件加密
从 Virbox 开发者工具盒打开 ds 加密工具,将上一步对 exe 加壳时生成的 .ssp 配置文件导入,将待加密资源文件拖入到ds加密工具中
①选中上一步对 Child.exe 加壳时生成的 Child.exe.ssp 文件
②添加资源文件
③点击“保护它”
至此源已经加密成功,您可以将 Unity3D 的其他资源,也通过以上流程进行加密,下一步根据不同用户的不同需求发布不同的许可内容到用户的账号中,详见发布许可流程