深思数盾使用脚本加密(加壳)踩的坑
深思数盾使用脚本加密(加壳)踩的坑商业化软件要盈利离不开加密,目前项目上选择的加密软件是深思数盾。一般来说加密都是由实施人员来做的,但是本项目又个特殊的地方,需要和二次开发者写作开发,这样就需要将debug编译的dll也加密到。项目的编译采用jenkins自动化编译,在此前,加密的工作由开发人员手动加密替换dll。为了提高工作效率,决定研究下深思数盾的加密脚本。深思数盾由两个加壳程序,一个是vri
深思数盾使用脚本加密(加壳)踩的坑
商业化软件要盈利离不开加密,目前项目上选择的加密软件是深思数盾。
一般来说加密都是由实施人员来做的,但是本项目又个特殊的地方,需要和二次开发者写作开发,这样就需要将debug编译的dll也加密到。项目的编译采用jenkins自动化编译,在此前,加密的工作由开发人员手动加密替换dll。
为了提高工作效率,决定研究下深思数盾的加密脚本。
深思数盾由两个加壳程序,一个是vriboxprotector.exe,另一个是dsprotector.exe。这两个exe是GUI界面的加密程序。
另外两个带_con的exe,是cmd命令行执行的。
注意:
传统加密C++的dll、exe是用vriboxprotector.exe即可,dsprotector.exe是用于加密U3d等资源文件的,不能用于加密dll(提示报错如下)
另外,C++的dll的加密方式要选择<代码混淆>,选择默认的<代码加密>方式是有问题的
因此我们只需要选择vriboxprotector_con.exe做加密脚本
1、将需要制作的dll文件复制到加密目录下,使用GUI的加密程序先导出.ssp加密配置
例如要加密这个office.dll,则打开之后选择“保存选中配置”,或者“保存所有配置”就会导出.ssp文件,至于这些加密选项则根据具体情况选。
值得一提的是,如果是需要在debug下调试这个dll,则一定要勾选上图中标红的选项“使用可调试runtime库(许可功能库),发布版本时请务必不要勾选!”
2、将生成的ssp与dll放到同一级目录下,就可以用vriboxprotector_con.exe加密了
3、编写加密脚本
xcopy E:\XXX\office.dll E:\AutoEncrypt\ /s /c /y /r
cd /d E:\Program Files (x86)\senseshield\sdk\Tool\VirboxProtect\bin64
virboxprotector_con.exe E:\AutoEncrypt\office.dll -c cloud -u username -p password -o E:\Output\office_encrypted.dll
exit
注:脚本中的username 和 password需要替换成自己的开发者账号密码。
如果加密dll同级目录下找不到.ssp文件,就会用默认选项进行加密
4、接入jenkins
jenkins中加入编译选项“Execute Windows batch command”,并执行脚本即可。再次不赘述
总结
主要的踩坑点在与一开始用了dsprotector_con.exe来做脚本,加密出来的dll死活用不了。
后面想了下换了vriboxprotector_con.exe来做。但是dsprotector_con是有指定ssp文件的参数,vriboxprotector_con.exe没有。最后验证需要.ssp在待加密dll的同级目录下才能读取加密配置
最后,附上官方的文档。
更多推荐
所有评论(0)