CN116108460A - 一种适用于Electron的源码文件安全加密方法、装置及设备 - Google Patents
一种适用于Electron的源码文件安全加密方法、装置及设备 Download PDFInfo
- Publication number
- CN116108460A CN116108460A CN202211514690.3A CN202211514690A CN116108460A CN 116108460 A CN116108460 A CN 116108460A CN 202211514690 A CN202211514690 A CN 202211514690A CN 116108460 A CN116108460 A CN 116108460A
- Authority
- CN
- China
- Prior art keywords
- file
- source code
- code file
- asar
- javascript source
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000004806 packaging method and process Methods 0.000 claims abstract description 20
- 238000012856 packing Methods 0.000 claims description 6
- 230000006837 decompression Effects 0.000 claims description 4
- 238000002347 injection Methods 0.000 claims description 4
- 239000007924 injection Substances 0.000 claims description 4
- 238000013519 translation Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 description 34
- 238000010586 diagram Methods 0.000 description 5
- 238000006073 displacement reaction Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005336 cracking Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 235000012054 meals Nutrition 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000012857 repacking Methods 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
Abstract
本发明实施例公开了一种适用于Electron的源码文件安全加密方法,该方法包括:通过Electron‑builder对第一JavaScript源码文件进行打包,得到原始Asar文件;在Json文件中添加混淆加密钩子函数,基于所述钩子函数对所述原始Asar文件中的第一JavaScript源码文件进行混淆加密得到第二JavaScript源码文件;对所述原始Asar文件进行解压,获取所述第二JavaScript源码文件;对所述第二JavaScript源码文件进行加密混淆并重新打包,得到Asar文件。本方案,解决了现有技术中,对客户端软件的加密方式较为单一,导致软件的安全性不够,非常容易被破解,甚至基于客户端软件的漏洞黑客还可以攻击到服务器,存在比较大的安全隐患的问题,提高了客户端软件的安全性。
Description
技术领域
本申请实施例涉及数据安全技术领域,尤其涉及一种适用于Electron的源码文件安全加密方法装置及设备。
背景技术
Electron是当前流行的桌面客户端开发技术。通过使用Node.js(作为后端)和Chromium的渲染引擎(作为前端)完成跨平台的桌面GUI应用程序的开发。基于Electron平台开发的软件,大部分都是作为客户端软件,运行在不同平台上,例如Windows、Mac以及Liunx系统。
现有技术中,对客户端软件的加密方式较为单一,导致软件的安全性不够,非常容易被破解,甚至基于客户端软件的漏洞黑客还可以攻击到服务器,存在比较大的安全隐患。因此,提供一种多加密方式对客户端软件进行加密以提高其安全性成为本技术领域亟待解决的问题。
发明内容
本发明实施例提供了一种适用于Electron的源码文件安全加密方法,解决了现有技术中,对客户端软件的加密方式较为单一,导致软件的安全性不够,非常容易被破解,甚至基于客户端软件的漏洞黑客还可以攻击到服务器,存在比较大的安全隐患的问题,提高了客户端软件的安全性。
第一方面,本发明实施例提供了一种适用于Electron的源码文件安全加密方法,包括:
通过Electron-builder对第一JavaScript源码文件进行打包,得到原始Asar文件;
在Json文件中添加混淆加密钩子函数,基于所述钩子函数对所述原始Asar文件中的第一JavaScript源码文件进行混淆加密得到第二JavaScript源码文件;
对所述原始Asar文件进行解压,获取所述第二JavaScript源码文件;
对所述第二JavaScript源码文件进行加密混淆并重新打包,得到Asar文件。
进一步的,所述在Json文件中添加混淆加密钩子函数,基于所述钩子函数对所述原始Asar文件中的第一JavaScript源码文件进行混淆加密得到第二JavaScript源码文件,包括:
在Json文件中添加afterSign钩子函数,基于所述afterSign钩子函数对所述原始Asar文件中的第一JavaScript源码文件进行混淆加密得到第二JavaScript源码文件。
进一步的,所述对所述原始Asar文件进行解压,获取所述第二JavaScript源码文件,包括:
对所述原始Asar文件进行解压;
得到所述原始Asar文件中的JavaScript源码文件。
进一步的,所述对所述第二JavaScript源码文件进行加密混淆并重新打包,得到Asar文件,包括:
对所述第二JavaScript源码文件进行加密、混淆以及死代码注入操作并重新打包,得到Asar文件。
进一步的,所述对所述第二JavaScript源码文件进行加密、混淆以及死代码注入操作并重新打包,得到Asar文件,包括:
创建字典表,对所述源码文件中的变量名和方法名进行加密并将死代码插入至所述第二JavaScript源码文件中;
将Base64编码算法中使用的基本字符表进行随机化处理,基于随机化处理后的基本字符表的排列信息确定为对所述第二JavaScript源码文件进行加密的密钥的变化信息;
对所述密钥加密得到的密文进行平移操作,得到混淆密文;
对所述混淆密文和字典表进行打包,得到Asar文件。
进一步的,所述在将Base64编码算法中使用的基本字符表进行随机化处理,基于随机化处理后的基本字符表的排列信息确定为对所述第二JavaScript源码文件进行加密的密钥的变化信息之后,还包括:
在所述第二JavaScript源码文件的单/双字节序列间插入密钥标识码。
进一步的,对所述第二JavaScript源码文件进行加密混淆并重新打包,得到Asar文件之后,还包括:
删除所述原始Asar文件以及未进行Asar打包的文件。
第二方面,本发明实施例还提供了一种适用于Electron的源码文件安全加密方法,包括:
8、一种适用于Electron源码文件安全加密装置,其特征在于,包括:
第一打包模块,用于通过Electron-builder对第一JavaScript源码文件进行打包,得到原始Asar文件;
钩子函数添加模块,用于在所述原始Asar文件中添加混淆加密钩子函数;
解压模块,用于对所述原始Asar文件进行解压,获取所述第二JavaScript源码文件;
第二打包模块,用于对所述第二JavaScript源码文件进行加密混淆并重新打包,得到Asar文件。
第三方面,本发明实施例还提供了一种适用于Electron的源码文件安全加密设备,该设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例所述的适用于Electron的源码文件安全加密方法。
第四方面,本发明实施例还提供了一种存储计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行本发明实施例所述的适用于Electron的源码文件安全加密方法。
本发明实施例中,本发明实施例公开了一种适用于Electron的源码文件安全加密方法,该方法包括:通过Electron-builder对第一JavaScript源码文件进行打包,得到原始Asar文件;在Json文件中添加混淆加密钩子函数,基于所述钩子函数对所述原始Asar文件中的第一JavaScript源码文件进行混淆加密得到第二JavaScript源码文件;对所述原始Asar文件进行解压,获取所述第二JavaScript源码文件;对所述第二JavaScript源码文件进行加密混淆并重新打包,得到Asar文件。本方案,解决了现有技术中,对客户端软件的加密方式较为单一,导致软件的安全性不够,非常容易被破解,甚至基于客户端软件的漏洞黑客还可以攻击到服务器,存在比较大的安全隐患的问题,提高了客户端软件的安全性。
附图说明
图1为本发明实施例提供的一种适用于Electron的源码文件安全加密方法的流程图;
图2为本发明实施例提供的另一种适用于Electron的源码文件安全加密方法的流程图;
图3为本发明实施例提供的一种适用于Electron的源码文件安全加密装置的模块结构框图;
图4为本发明实施例提供的一种适用于Electron的源码文件安全加密设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明实施例作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明实施例,而非对本发明实施例的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明实施例相关的部分而非全部结构。
图1为本发明实施例提供的一种适用于Electron的源码文件安全加密方法的流程图,如图1所示,所述方法具体包括以下步骤:
S101、通过Electron-builder对第一JavaScript源码文件进行打包,得到原始Asar文件。
本技术方案的使用场景为对所述适用于Electron的JavaScript源码文件进行多次混淆加密以提高其安全性。基于上述使用场景,本技术方案的执行主体为Electron平台,或者能够运行Electron平台的智能设备,例如台式电脑、笔记本电脑、手机及平板电脑等,在此不作具体限定。
在一个实施例中,所述Electron-builder可以理解为一个打包工具。JavaScript(简称“JS”)是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。所述第一JavaScript源码文件可以理解为包含JavaScript编译的全部代码的文件。所述Asar文件可以理解为一个归档文件,具体可以用于使用Electron为应用程序打包源代码。
首先,安装electron-builder:
npm install electron-builder--save-dev
在package.json文件中配置打包命令:
执行打包命令,在根目录生成dist文件,打开所述dist文件查看打包后的目录,点击resource文件,得到所述resource文件下的asar文件。
S102、在Json文件中添加混淆加密钩子函数,基于所述钩子函数对所述原始Asar文件中的第一JavaScript源码文件进行混淆加密得到第二JavaScript源码文件。
在一个实施例中,Json全称为JavaScriptObjectNotation,是一种有条理、易于访问的存储信息的方法。它为我们提供了一个可读的数据集合,我们可以通过合理的方式来访问这些数据。Json采用完全独立于语言的文本格式。Json文件可以理解为用于存储简单的数据结构和对象的文件。所述在Json文件中添加混淆加密钩子函数,基于所述钩子函数对所述原始Asar文件中的第一JavaScript源码文件进行混淆加密得到第二JavaScript源码文件可以理解为在所述Json文件中添加用于混淆和加密的钩子函数。
在一个可能的实施例中,所述在Json文件中添加混淆加密钩子函数,基于所述钩子函数对所述原始Asar文件中的第一JavaScript源码文件进行混淆加密得到第二JavaScript源码文件,包括:
在Json文件中添加afterSign钩子函数,基于所述afterSign钩子函数对所述原始Asar文件中的第一JavaScript源码文件进行混淆加密得到第二JavaScript源码文件。
其中,所述在Json文件中添加afterSign钩子函数,基于所述afterSign钩子函数对所述原始Asar文件中的第一JavaScript源码文件进行混淆加密得到第二JavaScript源码文件可以理解为在package.json中进行设置afterSign属性。其中,所述afterSign属性具体设置于“***”位置处。
具体的,在afterSign文件中,对原始Asar文件中的js文件进行混淆加密:
S103、对所述原始Asar文件进行解压,获取所述第二JavaScript源码文件。在一个实施例中,对根据原始Asar文件获取所述原始Asar文件中的第二JavaScript源码文件可以是对所述原始Asar文件进行解压得到所述第二JavaScript源码文件。
在一个可能的实施例中,所述对所述原始Asar文件进行解压,获取所述第二JavaScript源码文件,包括:
对所述原始Asar文件进行解压;
得到所述原始Asar文件中的第二JavaScript源码文件。
其中,所述递归可以理解为函数的自身调用。
对所述原始Asar文件进行解压具体可以是:
安装解压工具:
npm install--engine-strict asar
命令行进入到asar所在的文件夹,对其进行解压:
asar e app.asar app
具体的,所述得到所述原始Asar文件中的第二JavaScript源码文件可以是通过递归算法遍历所述原始Asar文件中的所有子文件夹和子文件,得到所述第二JavaScript源码文件。
S104、对所述第二JavaScript源码文件进行加密混淆并重新打包,得到Asar文件。
在一个实施例中,对所述第二JavaScript源码文件进行加密混淆后,重新对所述第二JavaScript源码文件进行打包得到Asar文件。
由上述可知,通过Electron-builder对第一JavaScript源码文件进行打包,得到原始Asar文件;在Json文件中添加混淆加密钩子函数,基于所述钩子函数对所述原始Asar文件中的第一JavaScript源码文件进行混淆加密得到第二JavaScript源码文件;对所述原始Asar文件进行解压,获取所述第二JavaScript源码文件;对所述第二JavaScript源码文件进行加密混淆并重新打包,得到Asar文件。本方案,解决了现有技术中,对客户端软件的加密方式较为单一,导致软件的安全性不够,非常容易被破解,甚至基于客户端软件的漏洞黑客还可以攻击到服务器,存在比较大的安全隐患的问题,提高了客户端软件的安全性。
图2为本发明实施例提供的另一种适用于Electron的源码文件安全加密方法的流程图,如图2所示,该方法具体包括如下步骤:
S201、通过Electron-builder对第一JavaScript源码文件进行打包,得到原始Asar文件;
S202、在Json文件中添加混淆加密钩子函数,基于所述钩子函数对所述原始Asar文件中的第一JavaScript源码文件进行混淆加密得到第二JavaScript源码文件;
S203、对所述原始Asar文件进行解压,获取所述第二JavaScript源码文件;
S204、对所述第二JavaScript源码文件进行加密、混淆以及死代码注入操作并重新打包,得到Asar文件。
在一个实施例中,所述死代码可以理解为在程序操作过程中永远不可能被执行到的代码。具体的,通过执行对所述第二JavaScript源码文件进行加密、混淆以及在所述第二JavaScript源码文件中注入死代码等操作,提高客户端软件的安全性。
在一个可能的实施例中,所述对所述第二JavaScript源码文件进行加密、混淆以及死代码注入操作并重新打包,得到Asar文件,包括:
创建字典表,对所述源码文件中的变量名和方法名进行加密并将死代码插入至所述第二JavaScript源码文件中;
将Base64编码算法中使用的基本字符表进行随机化处理,基于随机化处理后的基本字符表的排列信息确定为对所述第二JavaScript源码文件进行加密的密钥的变化信息;
对所述密钥加密得到的密文进行平移操作,得到混淆密文;
对所述混淆密文和字典表进行打包,得到Asar文件。
其中,所述字典表可以理解为一个同于规定所述变量名和方法名以及加密结果的对应关系的映射文件、规则表等。所述变量名可以理解为所述第二JavaScript源码文件中不同的执行对象的名称,所述方法名可以理解为第二JavaScript源码文件中对应任务的执行方法的名称。通过构建所述字典表,以供所述JavaScript源代码执行时进行调用并查询,从而确定对应的变量名和方法名,进一步提高了安全性。
同时,可以在所述第二JavaScript源码文件中不会被执行的代码或上下文没有影响的代码中插入死代码。由于所述死代码不会被执行,因此,通过此操作不会影响所述第二JavaScript源码文件中代码执行的同时,可以降低代码的可阅读性和可破解性。
所述Base64编码算法是一种基于64个字符的编码算法,其传送编码是一种以任意8位字节序列组合的描述形式,这种形式不易被人直接识别。经过Base64编码后的数据会比原始数据略长,为原来的4/3倍。经Base64编码后的字符串的字符数是以4为单位的整数倍。采用Base64编码的数据具有不可读性,需要解码后才能阅读。
具体的,将所述Base64中的基本字符表进行随机化处理,所述密钥与所述基本字符表的排列信息具备对应性。可以理解的是,技术人员预先构建记录有所述基本字符表的排列信息与所述密钥信息的对应关系的关联表。基于当前随机生成的基本字符表的排列信息查询所述关联表以确定所述密钥。同时,考虑编码方法的应用环境多为Javascript,故将Base64规范字符表中的“+/=”改成了“$_~”,便于网络传输和变量命名等。优化了Base64编码算法,进一步提高了安全性。
进一步的,通过所确定的密钥对所述源码文件进行加密,对所述加密得到的密文进行位移操作。示例性的,将所述密文进行分割得到多个密文段,按序对所述密文段进行标号得到密文段1、2、3、4,通过位移操作将所述密文段的顺序调整为2、3、1、4。
最后,将所述混淆密文和字典表重新进行打包,得到Asar文件。
在一个可能的实施例中,所述在将Base64编码算法中使用的基本字符表进行随机化处理,基于随机化处理后的基本字符表的排列信息确定为对所述第二JavaScript源码文件进行加密的密钥的变化信息之后,还包括:
在所述第二JavaScript源码文件的单/双字节序列间插入密钥标识码。
在所述第二JavaScript源码文件的单/双字节序列间插入密钥标识码,用于标识所述密钥,在对所述密文进行解密时,通过所述标识码确定对应的解密密钥。另一方面,插入密钥标识码会使所述密文长度会有所加长,提高加密强度。
在一个可能的实施例中,对所述第二JavaScript源码文件的“纯单字节”字符串或“纯双字节”字符串的密文的长度增长0.35倍左右以提高加密强度。
在一个可能的实施例中,对所述第二JavaScript源码文件进行加密混淆并重新打包,得到Asar文件之后,还包括:
删除所述原始Asar文件以及未进行Asar打包的文件。
在完成Asar文件的重新打包之后,将所述原始Asar文件以及未进行Asar打包的文件进行删除,进一步节省存储资源。
由上述可知,所述对所述第二JavaScript源码文件进行加密、混淆以及死代码注入操作并重新打包,得到Asar文件,包括:创建字典表,对所述源码文件中的变量名和方法名进行加密并将死代码插入至所述第二JavaScript源码文件中;将Base64编码算法中使用的基本字符表进行随机化处理,基于随机化处理后的基本字符表的排列信息确定为对所述第二JavaScript源码文件进行加密的密钥的变化信息;对所述密钥加密得到的密文进行平移操作,得到混淆密文;对所述混淆密文和字典表进行打包,得到Asar文件。通过创建字典表、优化base64算法、加入死代码以及密文位移等操作,实现对所述第二JavaScript源码文件的多重加密、混淆,也极大的提升了软件的安全性,降低了Electron软件被破解的概率。
图3为本发明实施例提供的一种适用于Electron的源码文件安全加密装置的模块结构框图,如图3所示,所述模块结构框图具体包括:
第一打包模块301,用于通过Electron-builder对第一JavaScript源码文件进行打包,得到原始Asar文件;
钩子函数添加模块302,用于在所述原始Asar文件中添加混淆加密钩子函数;
解压模块303,用于对所述原始Asar文件进行解压,获取所述第二JavaScript源码文件;
第二打包模块304,用于对所述第二JavaScript源码文件进行加密混淆并重新打包,得到Asar文件。
由上述可知,通过Electron-builder对第一JavaScript源码文件进行打包,得到原始Asar文件;在Json文件中添加混淆加密钩子函数,基于所述钩子函数对所述原始Asar文件中的第一JavaScript源码文件进行混淆加密得到第二JavaScript源码文件;对所述原始Asar文件进行解压,获取所述第二JavaScript源码文件;对所述第二JavaScript源码文件进行加密混淆并重新打包,得到Asar文件。本方案,解决了现有技术中,对客户端软件的加密方式较为单一,导致软件的安全性不够,非常容易被破解,甚至基于客户端软件的漏洞黑客还可以攻击到服务器,存在比较大的安全隐患的问题,提高了客户端软件的安全性。
图4为本发明实施例提供的一种适用于Electron的源码文件安全加密设备的结构示意图,如图4所示,该设备包括处理器401、存储器402、输入装置403和输出装置404;设备中处理器401的数量可以是一个或多个,图4中以一个处理器401为例;设备中的处理器401、存储器402、输入装置403和输出装置404可以通过总线或其他方式连接,图4中以通过总线连接为例。存储器402作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的适用于Electron的源码文件安全加密方法对应的程序指令/模块。处理器401通过运行存储在存储器402中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的适用于Electron的源码文件安全加密方法。输入装置403可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置404可包括显示屏等显示设备。
本发明实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种适用于Electron的源码文件安全加密方法,该方法包括:通过Electron-builder对第一JavaScript源码文件进行打包,得到原始Asar文件;在Json文件中添加混淆加密钩子函数,基于所述钩子函数对所述原始Asar文件中的第一JavaScript源码文件进行混淆加密得到第二JavaScript源码文件;对所述原始Asar文件进行解压,获取所述第二JavaScript源码文件;对所述第二JavaScript源码文件进行加密混淆并重新打包,得到Asar文件。
值得注意的是,上述餐食转运装置装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明实施例的保护范围。
注意,上述仅为本发明实施例的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明实施例不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明实施例的保护范围。因此,虽然通过以上实施例对本发明实施例进行了较为详细的说明,但是本发明实施例不仅仅限于以上实施例,在不脱离本发明实施例构思的情况下,还可以包括更多其他等效实施例,而本发明实施例的范围由所附的权利要求范围决定。
Claims (10)
1.一种适用于Electron的源码文件安全加密方法,其特征在于,包括:
通过Electron-builder对第一JavaScript源码文件进行打包,得到原始Asar文件;
在Json文件中添加混淆加密钩子函数,基于所述钩子函数对所述原始Asar文件中的第一JavaScript源码文件进行混淆加密得到第二JavaScript源码文件;
对所述原始Asar文件进行解压,获取所述第二JavaScript源码文件;
对所述第二JavaScript源码文件进行加密混淆并重新打包,得到Asar文件。
2.根据权利要求1所述的适用于Electron的源码文件安全加密方法,其特征在于,所述在Json文件中添加混淆加密钩子函数,基于所述钩子函数对所述原始Asar文件中的第一JavaScript源码文件进行混淆加密得到第二JavaScript源码文件,包括:
在Json文件中添加afterSign钩子函数,基于所述afterSign钩子函数对所述原始Asar文件中的第一JavaScript源码文件进行混淆加密得到第二JavaScript源码文件。
3.根据权利要求1所述的适用于Electron的源码文件安全加密方法,其特征在于,所述对所述原始Asar文件进行解压,获取所述第二JavaScript源码文件,包括:
对所述原始Asar文件进行解压;
递归得到所述原始Asar文件中的第二JavaScript源码文件。
4.根据权利要求1所述的适用于Electron的源码文件安全加密方法,其特征在于,所述对所述第二JavaScript源码文件进行加密混淆并重新打包,得到Asar文件,包括:
对所述第二JavaScript源码文件进行加密、混淆以及死代码注入操作并重新打包,得到Asar文件。
5.根据权利要求4所述的适用于Electron的源码文件安全加密方法,其特征在于,所述对所述第二JavaScript源码文件进行加密、混淆以及死代码注入操作并重新打包,得到Asar文件,包括:
创建字典表,对所述源码文件中的变量名和方法名进行加密并将死代码插入至所述第二JavaScript源码文件中;
将Base64编码算法中使用的基本字符表进行随机化处理,基于随机化处理后的基本字符表的排列信息确定为对所述第二JavaScript源码文件进行加密的密钥的变化信息;
对所述密钥加密得到的密文进行平移操作,得到混淆密文;
对所述混淆密文和字典表进行打包,得到Asar文件。
6.根据权利要求5所述的适用于Electron的源码文件安全加密方法,其特征在于,所述在将Base64编码算法中使用的基本字符表进行随机化处理,基于随机化处理后的基本字符表的排列信息确定为对所述第二JavaScript源码文件进行加密的密钥的变化信息之后,还包括:
在所述第二JavaScript源码文件的单/双字节序列间插入密钥标识码。
7.根据权利要求1所述的适用于Electron的源码文件安全加密方法,其特征在于,对所述第二JavaScript源码文件进行加密混淆并重新打包,得到Asar文件之后,还包括:
删除所述原始Asar文件以及未进行Asar打包的文件。
8.一种适用于Electron源码文件安全加密装置,其特征在于,包括:
第一打包模块,用于通过Electron-builder对第一JavaScript源码文件进行打包,得到原始Asar文件;
钩子函数添加模块,用于在所述原始Asar文件中添加混淆加密钩子函数;
解压模块,用于对所述原始Asar文件进行解压,获取所述第二JavaScript源码文件;
第二打包模块,用于对所述第二JavaScript源码文件进行加密混淆并重新打包,得到Asar文件。
9.一种适用于Electron的源码文件安全加密设备,所述设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一项所述的适用于Electron的源码文件安全加密方法。
10.一种存储计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-7中任一项所述的适用于Electron的源码文件安全加密方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211514690.3A CN116108460A (zh) | 2022-11-29 | 2022-11-29 | 一种适用于Electron的源码文件安全加密方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211514690.3A CN116108460A (zh) | 2022-11-29 | 2022-11-29 | 一种适用于Electron的源码文件安全加密方法、装置及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116108460A true CN116108460A (zh) | 2023-05-12 |
Family
ID=86264662
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211514690.3A Pending CN116108460A (zh) | 2022-11-29 | 2022-11-29 | 一种适用于Electron的源码文件安全加密方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116108460A (zh) |
-
2022
- 2022-11-29 CN CN202211514690.3A patent/CN116108460A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI598765B (zh) | Data protection methods and devices | |
JP2021513141A (ja) | 2次元バーコードの生成及び識別 | |
CN107786331B (zh) | 数据处理方法、装置、系统及计算机可读存储介质 | |
CN111475824B (zh) | 数据访问方法、装置、设备和存储介质 | |
EP2897074A1 (en) | Application code obfuscation device based on self-conversion and method therefor | |
CN106599723B (zh) | 一种文件加密方法及装置、文件解密方法及装置 | |
CN105760765A (zh) | 数据加密方法、装置及数据解密方法、装置 | |
CN110826031B (zh) | 加密方法、装置、计算机设备及存储介质 | |
CN110196718B (zh) | 脚本混淆方法 | |
CN111475543A (zh) | 一种模糊搜索方法、装置、计算机设备及存储介质 | |
CN115051798B (zh) | 一种随机数生成方法、装置、电子设备及存储介质 | |
CN110781462B (zh) | 一种资源的混淆方法和装置 | |
CN108459852A (zh) | 脚本处理方法及装置、存储介质、电子设备 | |
CN112469036A (zh) | 一种消息加解密方法、装置、移动终端和存储介质 | |
CN113836498A (zh) | 网页源代码混淆方法、装置、电子装置和存储介质 | |
CN110830261B (zh) | 加密方法、装置、计算机设备及存储介质 | |
CN116015767A (zh) | 一种数据处理方法、装置、设备及介质 | |
CN106817216B (zh) | 一种基于Zlib库和AES算法的ZIP包解压方法 | |
CN114547653B (zh) | 开发环境的加密方法、解密方法及装置、设备和介质 | |
CN109995534B (zh) | 一种对应用程序进行安全认证的方法和装置 | |
CN116108460A (zh) | 一种适用于Electron的源码文件安全加密方法、装置及设备 | |
CN114968206A (zh) | 一种编程语言代码动态混淆方法及系统 | |
CN114154123B (zh) | 应用于Python项目的加密保护方法 | |
CN111125645B (zh) | 执行程序处理方法、系统、装置、计算机设备和介质 | |
CN113420313A (zh) | 程序安全运行、加密方法及其装置、设备、介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |