Skip to main content

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保护方式不可共同使用,根据自己需求选择其中一种方式即可。