Electron程序资源文件保护流程
#
介绍Electron程序的资源文件在resources目录下,一般是以asar单个文件或文件夹形式存在,包括HTML、JS和其他文件。
由于文件夹内的资源文件可以直接反编译查看,asar文件也可以使用工具对其进行解包成文件夹,获取里面的js等文件,为了资源文件不被反编译,则就需要对资源文件保护。
#
保护方式Virbox Protector
针对Electron程序的资源文件提供了两种保护方式,分别是H5和DS保护方式。
#
H5保护方式该方式是直接对js文件进行保护,通过控制流混淆、字符串转换、反调试等加密方式,防止程序被反编译和被动态调试,程序运行时每次只解密一个文件,防止程序内的数据在内存中被完整泄露,有效的保证了H5应用的安全性。
#
DS保护方式该方式是使用DSProtector
工具对所选中的资源文件夹或asar里的所有文件进行保护,同时对加载资源文件的主程序进行加壳处理,在加载受保护的资源文件时进行一次性解密。
#
区别两种保护方式从保护原理、安全度及性能上进行比较,其优缺点如下表所示:
保护方式 | 优点 | 缺点 | ||
H5保护方式 | 1.功能较多且实时解密,安全性相比较高 2.直接加密,操作相对较简单 3.程序更新时只需更新资源文件即可 | 1.只能对JS文件进行保护 2.有些JS语法不支持 3.若JS文件过多,可能对运行性能有损耗 | ||
DS保护方式 | 1.可以对所有资源文件进行保护,无法静态进行反编译 2.由于一次性解密,所以性能基本上无损耗 | 1.一次性解密,安全性相比较低 2.需要对调用资源文件的主程序进行加密,操作相比较复杂 3.程序更新时需要资源文件和对应的主程序同时替换 |
#
操作流程以下介绍两种保护方式的操作流程,根据自己的需求进行选择,二者选其一即可。
#
H5保护方式1.将asar文件添加到Virbox Protector
工具界面;
2.在H5保护
选项里,点击选择文件;(建议只勾选自己开发js文件,node_modules的js不要勾选)
3.选择后确定
,将选择的文件添加到保护文件列表里;
4.点击保护选中项目
对文件进行保护;
5.保护成功,protected文件夹的asar是加密后的文件,替换原来的app.asar即可。
#
DS保护方式对主程序保护
1.先运行Electron程序,找到其调用资源的主程序;
2.将主程序exe拖入到Virbox Protector
工具界面,并开启ds选项;
加密选项:如果是框架的exe,不建议勾选,如果exe内有自研代码,结合性能影响建议勾选"压缩+调试器检测+内存校验";密码:默认随机密码,可根据需求自行设置密码;
3.点击保护选中项目
对文件进行保护;
5.界面上提示"保护成功",protected文件夹的exe是保护后的文件,将原程序exe备份,将保护后的exe替换原程序exe即可。
对资源文件保护
1.打开DSProtector
工具,将asar文件或资源文件夹拖入到文件列表里;
2.点击开始加密
,将对所选中资源文件进行保护;
3.保护后的文件如截图所示:
app.asar:为加密后的文件app.asar.bak:为原文件程序发布时将原文件删除,只留加密后的文件即可。
#
运行主程序和资源文件均替换成保护后的文件,然后运行程序即可。
#
注意H5保护方式和DS保护方式不可共同使用,根据自己需求选择其中一种方式即可。