深思数盾自动保护工具Virbox Protector Standalone,是深思数盾科技股份有限公司经过多年技术深耕开发的一款高强度自动保护(加密)工具。 该工具集混淆、虚拟化、外壳加密、数据加密于一身,无需编程就能达到极高的保护强度,是业界领先的软件保护工具。
Windows 7及以上版本
Linux明确支持的系统有 CentOS、Ubuntu及Debian-9.4.0系统
macOS 10.4系统以上版本
C、C++、Delphi XE7及以上、PB、BCB、 C#、VB6.0、 Python、Lua、Perl、R、Ruby、PHP
AutoCAD ARX、Revit、Unity 3D、Unreal Engine 4、.NET
MATLAB、LabVIEW
32位和64位可执行文件,动态加载的库和驱动程序
Virbox Protector Standalone安装完成之后,会看到Virbox Protector Standalone与Virbox用户工具软件,Virbox用户工具是Virbox许可服务的可视化界面工具,可以通过Virbox用户工具,来登录许可,获得使用Virbox Protector Standalone的权限。
打开Virbox用户工具,我的账号下,登录授权账号(具体如何获取使用权限,参考试用及购买)。
登录之后可以在我的软件下,查看到外壳独立版的许可信息。
插入硬件锁,可在硬件锁下,查看到软件的许可信息。
加壳工具主界面如图:
直接拖入文件或者选择打开文件的形式,选择需要加密exe可执行程序或者dll动态链接库。
【特别提醒:如果被加壳程序的相同目录下存在 xxx.map 文件,那么会自动加载 map 文件,将函数名称显示在界面当中,目前支持VS、VC、BCD、Delphi编译器生成的map文件】
拖入后主界面如图:
Virbox Protector Standalone支持代码混淆、代码虚拟化、代码加密等多种防护方式;
混淆:将代码指令翻译为机器和人都无法识别的一串伪代码字节流,在具体执行时在对这些伪代码进行翻译解释,逐步还原为原始代码并执行。
虚拟化:将指令编译为虚拟代码,放在指定虚拟机中运行,目前对指令有一定的格式要求,有的函数可能不能被保护。
加密:将代码块作为数据,用许可加密函数存储,程序执行到该函数时验证许可并解密,内存中不会暴露完整的代码块,目前有的函数不可添加到保护中。
使用Virbox Protector Standalone时,选择被保护的函数列表,添加需要保护的函数,可以使用性能分析功能,对程序进行分析,并选择重要的函数来保护。
性能分析:点击性能分析按钮,运行需要保护的程序,执行正常的业务操作,程序中各个函数模块调用的次数实时显示在列表中。如果当前分析的程序位为 DLL 程序,则需要选择启动主程序,主程序启动的工作目录为主程序所在目录。目前仅支持 Windows 的 exe 程序或 DLL 库。
可保护的函数列表:展示了需要保护程序的所有的函数模块,托管代码程序和非托管代码程序有细微的差别。
【特别提醒:并不是所有的函数模块都能展示出来。1、指令大小小于 15 个字节的函数模块不会展示;2、有的非常规函数模块不会展示(名称中存”.<>@:?“等)】
保护方式选择完毕,点击确认完成修改。
我们为高级用户,提供了加密选项的功能。PE 和.Net 程序,由于技术不同,所以在加密选项上,略有差异,您可以根据自己的需求,调整加密的具体方式。
输出文件:可以修改程序保护后生成文件的路径和名称。
【特别提醒: 1 、如果只有文件名称,那么路径为源程序的路径; 2 、如果输出文件名和源文件同名,生成的程序会将源程序覆盖,非常不建议。】
导入表保护:这个选项能够对 PE 文件中的导入表进行了加密处理,隐藏了 API 列表。基于安全强度的考虑,我们建议用户使用这个选项。
【特别提醒:导入表保护目前只适用于PE文件。】
压缩:对加壳后的后的程序进行压缩处理,减小体积,同时可以防止静态反编译。
【特别提醒: 1 、由于压缩模块需要一个固定大小的空间,如果被加壳的程序非常小压缩的效果并不明显还有可能出现体积更大的情况,对于体积较大的程序效果明显。 2 、不支持 DotNet动态库的压缩。 3 、不支持 arx 类型程序的压缩。】
名称混淆:名称混淆,对源程序中的函数名称进行混淆,静态反编译工具显示的函数名为乱码。
【特别提醒:名称混淆目前只能支持 DotNet 程序,并且不支持 IIS 类型程序的混淆。】
资源保护:加密资源段,对被保护程序的资源区段进行加密,运行的时候需要用户使用相应许可进行解密方可使用程序。
【特别说明:资源保护目前只能支持本地程序。】
ds插件:DS Protector是数据保护工具,可以对程序的数据资源文件进行加密保护。
所有选项配置完成,点击加壳保护的按钮,完成加壳。提示加壳成功,打开文件所在的目录,即可看到加密之后的xxx.ssp.exe文件或者xxx.ssp.dll文件,修改文件名称,替换未加密的文件进行发布即可。
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.XXX(Unity3D程序文件夹名称),加密成功。
对 Unity3D 资源的保护的基本流程是,先通过Virbox Protector Standalone 对可执行exe进行加壳,再通过 DS protector 对资源文件进行加密保护。 ①对加密后生成的ssp.XXX下的exe进行加壳。
②在加密选项页面将插件的ds按钮打开。
点击“立即加壳”,加壳后会额外生成图示两个文件。
③打开“DSProtector.exe”,通过xxx.ssp.exe对 资源文件进行保护。
选中上一步对 Game.exe 加壳时生成的 Game.exe.ssp 文件及添加资源文件。
点击“保护它”,提示加密成功。
至此Unity3D程序加密已经完成。
Python语言写的程序无需编译成二进制文件代码,可以直接从源代码运行程序。在计算机内部, Python解释器把源代码转换成字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行,这使得 Python程序更加易于移植。
参考【3.1 对 Windows 可执行应用程序(exe)和动态链接库(dll)加壳保护】
①首先对安装环境 Python 路径下的 python.exe 进行加密。
将 python.exe 拖入到加壳工具Virbox Protector Standalone中。
②在加密选项页面将插件的ds按钮打开。
③点击“立即加壳”,加壳后会额外生成图示两个文件。
python.exe.ssp 是配置文件,在后面对 .py/.pyc 加密时会用到;python.ssp.exe 是加壳后的 python.exe 文件,将 python.exe 剪切到其他文件夹备份,python.ssp.exe 名字改为python.exe 即可。
④打开“DSProtector.exe”对 .py/.pyc进行保护。
添加上一步加密 python.exe 生成的 python.exe.ssp 文件。
添加要加密的 .py/.pyc文件。
点击“保护它”,加密成功。
至此,Python 的 .pyc 文件已经加密成功。
Java 开发语言以其安全性高、代码优化、跨平台等特性,迅速取代了很多传统高级语言,占据了企业级网络应用开发等诸多领域的霸主地位。特别是近年来大数据、互联网+、云计算技术的不断发展,Java 开发语言更具有不可替代的地位。
不过,Java 最突出的跨平台优势使其要以中间代码的形式运行在虚拟机环境中,因此 Java 代码反编译要比其他开发语言更容易实现,并且反编译的代码经过优化后几乎可与源代码相媲美。为了避免出这种情况,保护软件知识产权,有一种叫做 Java 混淆器的工具被开发出来。
但 Java 混淆器的作用是对编译好的代码进行混淆,使得反编译后的代码混乱难懂,真正起的作用只是增加了逆向工程的难度,最终结果也是治标不治本,对于一些掌握工具的人来说几乎还是透明的。另外由于 Java 程序中会有多重映射关系,因此大多数混淆工具的兼容性会很差。
服务启动成功后,进入任务管理器-服务-找到目前运行项目所依赖的 jdk , 进入目录找到对应程序 进行加密。 如下图
①首先对安装环境 jdk 路径下的 java.exe 进行加密,将 java.exe 拖入到加壳工具Virbox Protector Standalone中。
②在加密选项页面将插件的ds按钮打开。
③点击“立即加壳”,加壳后会额外生成图示两个文件。
java.exe.ssp 是配置文件,在后面对 .class/.jar加密时会用到;java.ssp.exe 是加壳后的 java.exe 文件,将 java.exe 剪切到其他文件夹备份,java.ssp.exe 名字改为java.exe 即可。
④打开“DSProtector.exe”对 .class/.jar进行保护。
添加上一步加密 java.exe 生成的 java.exe.ssp 文件。
添加要加密的.class/.jar文件。
点击“保护它”,加密成功。
问题现象:使用加壳工具对开发者软件进行加壳,然而加密后的程序360认为是病毒软件。
解决方法:提交360认证 ,具体操作如下:
① 软件中可执行文件(不包含驱动程序.sys)及打包后的可执行文件使用沃通(Wosign)签名(使用沃通代 码签名工具并且购 买代码签名证书进行签名,沃通签名相关问题请咨询沃通官方网站客服人员,沃通签名在360认 证过程有很大帮助)。
② 注册并登录360开放平台:http://open.soft.360.cn/。
③ 在“我的软件”页面中选择提交我的软件,如图:
④ 选择“仅安全检测”,并填写软件名称,软件版本(主要为了后续记录查看),提交方式可以选择本地上传
安装包,然后提交 软件。
⑤ 同时可以在“软件列表”中查看已经提交过的待检测软件和“通过检测”的软件。目前软件提交后通过检测的 时间大约为1天 。
编译型语言在加壳工具中保护函数是显示的是函数地址,如果想显示函数名称,可以通过生成MAP文件方式进行显示,列举几种语言生成方式:
① BCB程序生成MAP,工程设置如下图 :
② VC程序生成MAP,工程设置如下图 :
③ VS程序生成MAP,工程设置如下图 :
④ delphi程序生成MAP,工程设置如下图:
⑤ vb6.0程序生成MAP ,工程设置如下图:
需要在系统环境变量中增加一个名为“LINK”,值为"/MAP"项目,重新启动电脑,这样编译生成exe程序,map 文件就不会自动删除,而得以保留。
网站地址:shell.virbox.com
点击导航【试用及下载】,点击【申请试用许可】
进入申请试用页面,输入信息,点击申请即可获取30天100次使用机会。
点击【Demo版下载】,即可下载加壳工具安装包
安装后,桌面会有两个软件图标,一个是 Virbox Protector Standalone加壳工具,另一个是Virbox 用户工具。
1)首先打开Virbox 用户工具,登录上一步申请试用许可的帐号及密码。登录后查看有加壳工具的许可;
2)打开 Virbox Protector Demo 加壳工具正常使用。
进入【加壳商品页】,如:一年期,windows,软许可版,不带反黑引擎,点击【立即购买】
若无深思商城会员,点击立即注册。
发货地址:请填写发货地址,若选择发票及加密狗版将邮寄到此地址。
配送方式:选择快递发货即可,运费会在订单结算时优惠。
支付方式:可选择微信支付、支付宝支付、快钱支付及线下支付四种方式。
发票信息:如需发票,可选择发票类型及发票信息。
确认订单信息及金额后,点击提交订单
点击去支付,完成支付。完成支付后,联系深思客服获取正式版下载链接及正式使用许可
收到正式许可后,安装正式版加壳工具,登录 Virbox 用户工具即可正式使用 Virbox Protector Standalone
1.为何要注册会员?
注册会员后可购买产品,并可跟踪查阅订单信息。
2.如何申请试用许可?
点击【申请试用】,在申请试用页面填写帐号及密码即可获取30天100次的试用许可。
3.如何购买?
在商品页面选择商品后,填写支付信息后即可.
4.如何支付?
可选择支付宝或者微信支付。
5.正式许可如何获取?
支付完成后,我们将会确认您的支付订单,给您备注的许可帐号授权一个一年期使用许可,登录 Virbox 用户工具即可正式使用加壳工具。
6.一年期订阅(软许可)与加密锁版有何区别?
软许可,同一时间仅限一台设备上使用,可累计更换5台设备使用,加密锁版配备加密锁一只,使用加壳工具时需插上加密锁,不限更换设备使用
7.永久版可否免费升级?
同一个大版本内可免费升级,升级大版本需付费。