CN111382447A - 安装包的加密方法、存储介质及计算机设备 - Google Patents
安装包的加密方法、存储介质及计算机设备 Download PDFInfo
- Publication number
- CN111382447A CN111382447A CN201811653107.0A CN201811653107A CN111382447A CN 111382447 A CN111382447 A CN 111382447A CN 201811653107 A CN201811653107 A CN 201811653107A CN 111382447 A CN111382447 A CN 111382447A
- Authority
- CN
- China
- Prior art keywords
- file
- installation package
- keywords
- verified
- files
- 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.)
- Granted
Links
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
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/53—Decompilation; Disassembly
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Storage Device Security (AREA)
Abstract
本申请涉及数据安全技术领域,尤其涉及一种安装包的加密方法、存储介质及计算机设备。其中,所述安装包的加密方法,包括:对安装包进行解密获得待验证文件列表;根据配置文件中的关键词遍历所述待验证文件列表,将待验证文件列表中与所述关键词相匹配的文件设为待加密文件;其中,所述配置文件中包含验证所述待验证文件安全性的关键词;对所述待加密文件进行加密。本申请提供的方案,通过配置文件中的关键词检验安装包的待验证文件中是否存在未加密成功的文件,对待加密文件进行加密。一方面能够验证经过初次加密的安装包是否可靠,另一方面能够弥补初次加密过程中的不足,降低安全信息泄露的概率,保障加密文件的安全性。
Description
技术领域
本申请涉及数据安全技术领域,具体而言,本申请涉及一种安装包的加密方法、存储介质及计算机设备。
背景技术
对于安卓平台来说,其项目代码会最终打包成应用安装包的形式,交由用户安装到手机上,该安装包可以在用户端被解压缩,应用安装包中存在敏感、关键或涉及到安全性的数据,因此必须有可靠的手段保证安装包中的重要数据不能被获取和破解,一旦数据安全性不够导致数据泄露,可能会被非法技术人员利用,损害用户利益。
现有技术中,往往采用如下两种形式对安装包进行加密以提高安装包的安全性,一种是利用安卓平台自带的混淆方案,对字节码进行混淆,将代码中的类名、字段、方法名变成无意义的名称,隐藏安装包中的关键数据,但安卓平台上部分组件的创建方式是依赖注入的方式,不能被混淆。另一种是通过对关键文件做加密处理,然后在运行时动态解密来防止安装包中的关键数据泄露,但目前常用的一些反编译工具,如apktool等工具能够轻易还原java里的明文信息,因此现有对安装包进行安全性保护的手段还是容易导致信息泄露,无法满足实际需要。
发明内容
本申请提供了一种安装包的加密方法、存储介质及计算机设备,以降低安全信息泄露的概率,保障加密文件的安全性。
本申请实施例首先提供了一种安装包的加密方法,包括:
对安装包进行解密获得待验证文件列表;
根据配置文件中的关键词遍历所述待验证文件列表,将待验证文件列表中与所述关键词相匹配的文件设为待加密文件;其中,所述配置文件中包含验证所述待验证文件安全性的关键词;
对所述待加密文件进行加密。
优选地,所述安装包为经过初次加密的压缩安装包。
优选地,所述对安装包进行解密获得待验证文件列表的步骤,包括:
对所述安装包进行解压缩获得解压文件;
利用反编译工具对安装包进行反编译获得反编译文件;
整合所述解压文件及反编译文件获得待验证文件列表。
优选地,所述根据配置文件中的关键词遍历所述待验证文件列表的步骤之前,还包括:
确定未加密安装包中涉及安装包安全的文件名称及文件后缀,根据所述文件名称及文件后缀获得关键词。
优选地,所述根据配置文件中的关键词遍历所述待验证文件列表的步骤之前,还包括:
获得未加密安装包中被压缩文件的文件名称和/或文件后缀,根据所述文件名称及文件后缀确定待选关键词;
获得所述待选关键词中被选定的关键词,根据所述关键词生成配置文件。
优选地,所述获得所述待选关键词中被选定的关键词的步骤,包括:
根据待选关键词的涉密等级设定必选关键词及可选关键词;
将必选关键词及选定的可选关键词设定为关键词。
进一步地,本申请实施例还提供了一种安装包的加密方法,包括:
在python平台上,加载安装包和编写好的脚本文件,所述脚本文件运行时执行上述任一项技术方案所述的安装包加密方法的步骤,其中,所述脚本文件采用跨平台语言python编写;
将所述安装包及所述脚本文件置于同级目录下,使用python命令运行脚本文件。
优选地,所述使用python命令运行脚本文件的步骤之前,还包括:
加载并调用配置文件,所述配置文件中包含验证所述待验证文件安全性的关键词。
进一步地,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机指令,当其在计算机上运行时,使得计算机执行上述任一技术方案所述的安装包的加密方法的步骤。
更进一步地,本申请实施例还提供了一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述任一技术方案所述的安装包的加密方法的步骤。
与现有技术相比,本申请提供的方案至少具备如下优点:
本申请实施例提供的安装包的加密方法,通过配置文件中的关键词检验安装包的待验证文件中是否存在未加密成功的文件,若待验证文件列表中存在与配置文件中的关键词相匹配的代加密文件,对该待加密文件进行加密。通过该种方式弥补了初次加密的不足,相比于初次加密后的安装包,进行代加密文件后安装包的安全性大大提升,降低该安装包对应的应用程序泄密的概率。
本申请实施例提供的安装包的加密方法,该种加密方案能够验证经过初次加密的安装包是否可靠,能够批量处理不限数量的安装包的检查工作,免去人工手动验证的繁琐以及降低出错概率。
本申请附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请实施例提供的安装包的加密方法的环境示意图;
图2为本申请一个实施例提供的安装包的加密方法的流程示意图;
图3为本申请一个实施例提供的对安装包进行解密获得待验证文件列表的步骤的流程示意图;
图4为本申请一个实施例提供的生成包含验证待验证文件安全性的关键词的配置文件的步骤的流程示意图;
图5为本申请一个实施例提供的安装包的加密方法的执行过程示意图;
图6为本申请另一种实施例提供的安装包的加密方法的流程示意图;
图7为本申请一种实施例提供的计算机设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本申请实施例提供的安装包为应用安装包,apk是AndroidPackage的缩写,即Android安装包,apk是Android操作系统用来分发和安装移动应用和应用中间件的一种包文件格式。打包生成一个apk文件,构建系统首先会对代码进行编译,随后项目的所有必须部分都会被打包进同一个apk文件中。apk文件包括应用项目的所有代码文件,例如dex文件(安卓平台上可执行文件类型)、资源文件、assetes文件、证书、mainfest文件等。apk文件是一种归档文件,具体的,是一种基于jar的压缩文件,使用zip压缩格式进行压缩,使用“.apk”作为文件扩展名。
图1为本申请实施例提供的安装包的加密方法的环境示意图,终端110可以为计算机设备,服务器端120可以为至少一个计算机设备,终端110与服务器端120通过网络连接,本申请提供的方案中,终端110将安装包发送给服务器端120,服务器端对安装包进行解密获得待验证文件,通过配置文件中的关键词验证待验证文件的安全性,若待验证文件列表中存在与配置文件中的关键词相匹配的文件,则将该文件设置为待加密文件,对该待加密文件进行加密,将加密后的文件与进行初步压缩的其他文件进行重新压缩,将重新压缩的安装包发送给终端110,该安装包可以在终端110上打开安装运行。
本申请首先提供了一种安装包的加密方法,其流程示意图如图2所示,包括如下步骤:
S210,对安装包进行解密获得待验证文件列表;
S220,根据配置文件中的关键词遍历所述待验证文件列表,将待验证文件列表中与所述关键词相匹配的文件设为待加密文件;其中,所述配置文件中包含待验证所述待验证文件安全性的关键词;
S230,对所述待加密文件进行加密。
本申请实施例通过对安装包进行解密获得待验证文件列表,调用配置文件,获得配置文件中的关键词,提取配置文件中的关键词遍历待验证文件列表,若待验证文件列表中存在与配置文件中的关键词相匹配的文件,则将该文件设置为待加密文件,对该待加密文件进行加密。
安装包中涉及到应用安全性的文件:dex文件、资源文件等,压缩包在发送给用户端安装之前,已经通过惯用的加密文件将涉及到安全的文件进行初级加密,经过初步解密,将涉及安全性文件的文件名变成无意义的名称,若安装包是安全的,通过解密,如解压缩或反编译工具进行反编译,获得的待验证文件中并不会出现与安全性文件的名称或后缀相同的文件,若待验证文件中出现了与安全性文件的文件名或文件后缀相同的文件,则表明初次加密并不成功,这些与安全性文件的文件名或文件后缀相同的文件为可疑文件,从这些可疑文件中确定待加密文件,本申请提供的方案通过对待加密文件进行加密获得加密后的文件,将这些加密后的待加密文件重新压缩至安装包中,该安装包为更新安装包,与加密之前的安装包相比,更新安装包的安全性更好。
一种实施例中,本申请提供的安装包的加密方法的执行过程如下:
S210,对安装包进行解密获得待验证文件列表。
所述安装包为经过初次加密的压缩安装包。一种实施例中,所述对安装包进行解密获得待验证文件列表的步骤,其流程示意图如图3所示,包括如下子步骤:
S310,对所述安装包进行解压缩获得解压文件;
S320,利用反编译工具对安装包进行反编译获得反编译文件;
S330,整合所述解压文件及反编译文件获得待验证文件列表。
针对现有的对安装包的惯用加密方式,依次对安装包进行解压缩和反编译操作,步骤S310与S320均是对安装包的操作,二者之间无顺序限制,可以先对安装包进行解压缩,再进行反编译,或者先对安装包进行反编译操作再进行解压缩,将获得的解压文件及反编译文件整合成待验证文件,整合操作可以是将解压文件及反编译文件置于同一文件夹中,打开该文件夹显示待验证文件列表。
对所述安装包进行解压缩获得解压文件,解压文件为经过初次加密的文件,利用反编译工具对安装包进行反编译获得反编译文件,所述反编译文件中包含smali文件(Dalvik的寄存器语言文件)。利用反编译工具对安装包进行反编译的过程可以是利用反编译工具apktool工具对安装包进行处理,获得包含smali文件的反编译文件列表,smali是安卓系统里的Java虚拟机(Dalvik)所使用的一种.dex格式文件的汇编器。
本申请实施例利用惯用的解密手段,将压缩安装包进行解压缩或者反编译,对应获得解密后的文件列表,本申请实施例提供的方案无需确定初次加密的加密手段,从解密角度进行文件加密效果的验证,减少确定初次加密手段的步骤,避免系统在该部分的资源消耗。
S220,根据配置文件中的关键词遍历所述待验证文件列表,将待验证文件列表中与所述关键词相匹配的文件设为待加密文件;其中,所述配置文件中包含验证待验证文件安全性的关键词。
步骤S220中的根据配置文件中的关键词遍历所述待验证文件列表的步骤之前,还包括:确定未加密安装包中涉及安装包安全的文件名称及文件后缀,根据所述文件名称及文件后缀获得关键词。
安装包中各文件的文件名称及后缀反映该文件的类别及作用,因此能够通过文件名称及文件后缀确定该文件是否涉及安装包的安全性,统计获得涉及安装包安全的文件名称及文件后缀,如文件后缀为dex的文件,该文件后缀表明该文件是能够被虚拟机加载、执行,涉及到安装包的安全性问题。资源文件主要用来存放用户关键字,其文件名称为“resource/resources”,与安装包的安全息息相关,因此将dex、resource/resources/资源文件等涉及安装包安全的文件名称及文件后缀作为关键词,以便后续根据该关键词进行文件加密验证。本申请中涉及的配置文件是指包含上述关键词的文件,所述关键词用于判断文件列表中的文件是否加密成功。一种实施例中,步骤S220中的根据配置文件中的关键词遍历所述待验证文件列表的步骤之前,还包括:生成包含验证待验证文件安全性的关键词的配置文件,其流程示意图如图4所示,包括如下子步骤:
S410,获得未加密安装包中被压缩文件的文件名称和/或文件后缀,根据所述文件名称及文件后缀确定待选关键词;
S420,获得所述待选关键词列表中被选定的关键词,根据所述关键词生成配置文件。
将未加密安装包中的所有文件的文件名称及文件后缀设置为待选关键词,确定其中涉及该安装包对应的应用程序安全性的涉密文件,获取所述涉密文件的文件名称及文件后缀,提取涉密文件的文件名称及文件后缀作为待验证关键词,可以将未加密安装包中被压缩的所有文件的文件名称及文件后缀,提取文件名称及文件后缀中的关键词为待选关键词,从待选关键词列表中选定关键词,所述关键词可以自定义,即根据实际需要从待选关键词中选定关键词,根据所述关键词生成配置文件。
一种实施例中,获得所述待选关键词中被选定的关键词的步骤,包括:根据待选关键词的涉密等级设定必选关键词及可选关键词;将必选关键词及选定的可选关键词设定为关键词。
获得待选关键词与应用程序安全性的关联关系获得各待选关键词的涉密等级,根据各待选关键词的涉密等级确定必选关键词及可选关键词,如待选关键词的涉密等级分为5级,与应用程序安全的关联关系随着级别的增大而紧密,即涉密等级为5级的关键词对应的文件,该文件一旦被破坏,该应用程序可能会彻底崩溃或无法启动,可以设定涉密等级为3及以上的关键词为必选关键词,设定涉密等级为1及2的关键词及用户端自定义的关键词为可供用户端选择的可选关键词。
一种实施例中,将必选关键词及用户端输入的可选关键词设定为关键词。本申请实施例中,根据关键词的涉密等级区分必选关键词及可选关键词,关键词中必定包含必选关键词,能够保证对安装包进行基本的安全性检查,避免漏检该部分文件导致安装包核心机密泄露,可选关键词由用户自定义,以便用户根据实际情况选择要验证的文件,实现文件安全性验证过程的灵活性。
一种实施例中,根据配置文件中的关键词遍历所述待验证文件列表的步骤之前,还包括:确定待验证文件列表中涉及安装包安全的文件名称及文件后缀,根据所述文件名称及文件后缀获得关键词。
本申请实施例根据安装包的特点,涉及应用程序安全性的文件名称及文件后缀,提供的配置文件的关键词包括但不限于:文件名称,如资源文件;表征文件类型的后缀,如dex文件,需要混淆的java文件,aidl文件(安卓接口定义语言),需要隐藏或加密的so文件(share object,共享对象)。
根据配置文件中的关键词对待验证文件列表进行遍历操作,若待验证文件列表中存在与配置文件中的关键词相匹配的文件,设定该部分相匹配的文件为可疑文件,根据可疑文件确定待加密文件。
一种实施例中,根据可疑文件确定待加密文件的过程如下:启动可疑文件中与安全性文件的文件名或文件后缀相同的文件,通过文件内容过滤出可疑文件中的待加密文件,若该部分文件的文件名或文件后缀与该文件内容是相符的,则表明该部分可疑文件并未加密成功,将这部分可疑文件设定为待加密文件,若该部分可疑文件的文件名或文件后缀与该文件的内容并不相符,则表明该部分可疑文件加密成功,从可疑文件中去除该部分文件,如可疑文件A当前的文件名为resources文件,打开A文件之后检测到该文件Manifest文件,表明该文件已加密成功,无需再次对其加密,将其从可疑文件中剔除。
该申请实施例提供的方案在可疑文件中排除已加密成功的文件,有利于降低待加密文件的数量,降低加密操作占用的系统资源,避免对已加密文件误操作。
S230,对所述待加密文件进行加密。
对待加密文件进行加密,该待加密文件可以是初次加密未加密成功的文件,对待加密文件进行加密的方式可以采用动态加密或混淆等方式进行,由于该次加密专门针对初次加密未成功的文件进行,提高该部分加密成功的概率。
一种实施例中,步骤S230中对待加密文件进行加密的步骤之后,还包括:获得经过初次加密的安装包中的待加密文件,将加密文件替换待加密文件加入安装包,获得二次加密安装包,相比于初次加密后的安装包,该二次加密安装包的安全性大大提升,降低应用程序泄密的概率。
进一步地,安装包的加密方法,对所述待加密文件进行加密的步骤之后,还包括:删除上述加密过程中产生的临时文件。本实施例在将上述实施例所述的加密方案中产生的过程文件删除,所述过程文件如配置文件、解压缩文件等,将过程文件删除,解除过程文件对缓存资源的占用,有利于提高系统的运行效率。
将这些相匹配的文件输出,删除在验证过程中产生的临时文件,在脚本文件的配置下自动对设定的待验证内容进行验证。
当安装包的数据有多个时,按照上述安装包的加密方法依次验证安装包的加密方式是否可靠,若不可靠,则进行再次加密,本申请提供的安装包的加密方法一方面能够验证经过初次加密的安装包是否可靠,另一方面能够弥补初次加密过程中的不足,本申请提供的方案可以批量处理不限数量的安装包的检查工作,免去人工手动验证的繁琐以及降低出错概率。经过实践验证,验证一个安装包是否可靠的检测时间在2s~3s左右,大大提高了验证效率。
本申请一个实施例提供的安装包的加密方法的执行过程如图5所示,将安装包一方面进行解压缩操作,获得解压后的文件目录,另一方面利用反编译工具apktool对该安装包进行反编译操作,解压缩操作及反编译操作可同时进行,获得包含smali文件的文件目录,整合两个文件目录获得待验证文件,调用配置文件,利用配置文件中的关键词对待验证文件进行遍历操作,将待验证文件中与关键词相匹配的可疑文件输出打印,最后将验证过程中产生的过程文件删除。
进一步地,本申请实施例还提供了一种安装包的加密方法,其流程示意图如图6所示,包括:
S610,在python平台上,加载安装包和编写好的脚本文件,所述脚本文件运行时执行上述任一项技术方案所述的安装包加密方法的步骤,其中,所述脚本文件采用跨平台语言python编写。
所述python平台包括mac、linux、mac等平台,利用python语言可以在脚本中灵活配置要验证的内容,例如:资源文件、java文件、aidl文件、so文件等。由于Python是一门跨平台、开源、免费的解释型高级动态编程语言,除了解释执行,Python还支持伪编译将源代码转换为字节码来优化程序提高运行速度和对源代码进行保密,并且支持使用py2exe、pyinstaller、cx_Freeze或其他类似工具将Python程序及其所有依赖库打包为扩展程序名exe的可执行程序,从而可以脱离Python解释器环境和相关依赖库而在Windows平台上独立运行,如windows平台上的命令行窗口等,Python支持命令式编程、函数式编程、完全支持面向对象程序设计,语法简洁清晰,并且拥有大量的几乎支持所有领域应用开发的成熟扩展库;python还可以把多种不同语言编写的程序融合到一起实现无缝拼接,更好地发挥不同语言和工具的优势,满足不同应用领域的需求。
本申请实施例采用python语言编写脚本文件,使得该脚本文件适于在多平台上运行,具有多个平台的普遍通用性,避免了在更换平台时,如由linux平台更换为mac平台时,重新编写脚本文件。
S620,将所述安装包及所述脚本文件置于同级目录下,使用python命令运行所述脚本文件。
一种实施例中,使用python命令运行所述脚本文件的步骤之前,还包括:加载并调用配置文件,配置文件中包含验证所述待验证文件安全性的关键词。配置文件一经配置完成立即生效,所述配置文件及关键词的获取方式优选如上述实施例所述,在此不再赘述。
一种实施例中,优选在cmd命令行窗口中运行脚本文件。具体地,将所述安装包及采用跨平台语言python编写的脚本文件置于同级目录下,对脚本文件进行编译,打开cmd命令行,在cmd命令行窗口中输入“python”即“python”+“空格”,即可运行上述脚本文件。
如上所述,python语言支持多平台运行,且能够通过命令行运行脚本程序,运行操作简便易操作。
更进一步地,本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任意一项技术方案所述的安装包的加密方法。其中,所述存储介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random AcceSS Memory,随即存储器)、EPROM(EraSable Programmable Read-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically EraSable Programmable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,存储介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。可以是只读存储器,磁盘或光盘等。
更进一步地,本申请实施例还提供一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任意一项技术方案所述的安装包的加密方法的步骤。
图7是根据一示例性实施例示出的一种用于计算机设备700的框图。例如,计算机设备700可以被提供为服务器。参照图7,计算机设备700包括处理组件722,其进一步包括一个或多个处理器,以及由存储器732所代表的存储器资源,用于存储可由处理组件722的执行的指令,例如应用程序。存储器732中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件722被配置为执行指令,以执行上述安装包的加密方法的步骤。
计算机设备700还可以包括一个电源组件727被配置为执行计算机设备700的电源管理,一个有线或无线网络接口750被配置为将计算机设备700连接到网络,和一个输入输出(I/O)接口758。计算机设备700可以操作基于存储在存储器732的操作系统,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
应该理解的是,在本申请各实施例中的各功能单元可集成在一个处理模块中,也可以各个单元单独物理存在,也可以两个或两个以上单元集成于一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
以上所述仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种安装包的加密方法,其特征在于,包括:
对安装包进行解密获得待验证文件列表;
根据配置文件中的关键词遍历所述待验证文件列表,将待验证文件列表中与所述关键词相匹配的文件设为待加密文件;其中,所述配置文件中包含验证所述待验证文件安全性的关键词;
对所述待加密文件进行加密。
2.根据权利要求1所述的安装包的加密方法,其特征在于,所述安装包为经过初次加密的压缩安装包。
3.根据权利要求1所述的安装包的加密方法,其特征在于,其特征在于,所述对安装包进行解密获得待验证文件列表的步骤,包括:
对所述安装包进行解压缩获得解压文件;
利用反编译工具对安装包进行反编译获得反编译文件;
整合所述解压文件及反编译文件获得待验证文件列表。
4.根据权利要求1所述的安装包的加密方法,其特征在于,所述根据配置文件中的关键词遍历所述待验证文件列表的步骤之前,还包括:
确定未加密安装包中涉及安装包安全的文件名称及文件后缀,根据所述文件名称及文件后缀获得关键词。
5.根据权利要求1所述的安装包的加密方法,其特征在于,所述根据配置文件中的关键词遍历所述待验证文件列表的步骤之前,还包括:
获得未加密安装包中被压缩文件的文件名称和/或文件后缀,根据所述文件名称及文件后缀确定待选关键词;
获得所述待选关键词中被选定的关键词,根据所述关键词生成配置文件。
6.根据权利要求5所述的安装包的加密方法,其特征在于,所述获得所述待选关键词中被选定的关键词的步骤,包括:
根据待选关键词的涉密等级设定必选关键词及可选关键词;
将必选关键词及选定的可选关键词设定为关键词。
7.一种安装包的加密方法,其特征在于,包括:
在python平台上,加载安装包和编写好的脚本文件,所述脚本文件运行时执行权利要求1至6中任一项所述的安装包加密方法的步骤,其中,所述脚本文件采用跨平台语言python编写;
将所述安装包及所述脚本文件置于同级目录下,使用python命令运行脚本文件。
8.根据权利要求7所述的安装包的加密方法,其特征在于,所述使用python命令运行脚本文件的步骤之前,还包括:
加载并调用配置文件,所述配置文件中包含验证所述待验证文件安全性的关键词。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机指令,当其在计算机上运行时,使得计算机执行上述权利要求1至8中任一项所述的安装包的加密方法的步骤。
10.一种计算机设备,其特征在于,所述计算机设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1至8中任意一项所述的安装包的加密方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811653107.0A CN111382447B (zh) | 2018-12-28 | 2018-12-28 | 安装包的加密方法、存储介质及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811653107.0A CN111382447B (zh) | 2018-12-28 | 2018-12-28 | 安装包的加密方法、存储介质及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111382447A true CN111382447A (zh) | 2020-07-07 |
CN111382447B CN111382447B (zh) | 2023-08-29 |
Family
ID=71221194
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811653107.0A Active CN111382447B (zh) | 2018-12-28 | 2018-12-28 | 安装包的加密方法、存储介质及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111382447B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112613071A (zh) * | 2020-12-25 | 2021-04-06 | 武汉市多比特信息科技有限公司 | 一种文件的加密方法、装置及存储介质 |
CN112948774A (zh) * | 2021-03-18 | 2021-06-11 | 四川虹美智能科技有限公司 | 安装包自动加密方法和装置 |
CN113642020A (zh) * | 2021-08-16 | 2021-11-12 | 平安国际智慧城市科技股份有限公司 | 配置文件的动态加密方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101000648A (zh) * | 2006-01-12 | 2007-07-18 | 鸿富锦精密工业(深圳)有限公司 | 文件自动加密系统及方法 |
CN105760764A (zh) * | 2014-12-18 | 2016-07-13 | 中兴通讯股份有限公司 | 一种嵌入式存储设备文件的加解密方法、装置及终端 |
CN106295255A (zh) * | 2015-05-27 | 2017-01-04 | 腾讯科技(深圳)有限公司 | 应用程序的加固方法和装置 |
CN107122632A (zh) * | 2017-04-26 | 2017-09-01 | 北京洋浦伟业科技发展有限公司 | 软件安装包的加密方法及装置 |
CN107273766A (zh) * | 2017-05-15 | 2017-10-20 | 努比亚技术有限公司 | 一种数据加密及解密的方法和设备 |
-
2018
- 2018-12-28 CN CN201811653107.0A patent/CN111382447B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101000648A (zh) * | 2006-01-12 | 2007-07-18 | 鸿富锦精密工业(深圳)有限公司 | 文件自动加密系统及方法 |
CN105760764A (zh) * | 2014-12-18 | 2016-07-13 | 中兴通讯股份有限公司 | 一种嵌入式存储设备文件的加解密方法、装置及终端 |
CN106295255A (zh) * | 2015-05-27 | 2017-01-04 | 腾讯科技(深圳)有限公司 | 应用程序的加固方法和装置 |
CN107122632A (zh) * | 2017-04-26 | 2017-09-01 | 北京洋浦伟业科技发展有限公司 | 软件安装包的加密方法及装置 |
CN107273766A (zh) * | 2017-05-15 | 2017-10-20 | 努比亚技术有限公司 | 一种数据加密及解密的方法和设备 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112613071A (zh) * | 2020-12-25 | 2021-04-06 | 武汉市多比特信息科技有限公司 | 一种文件的加密方法、装置及存储介质 |
CN112948774A (zh) * | 2021-03-18 | 2021-06-11 | 四川虹美智能科技有限公司 | 安装包自动加密方法和装置 |
CN113642020A (zh) * | 2021-08-16 | 2021-11-12 | 平安国际智慧城市科技股份有限公司 | 配置文件的动态加密方法、装置、电子设备及存储介质 |
CN113642020B (zh) * | 2021-08-16 | 2024-03-12 | 平安国际智慧城市科技股份有限公司 | 配置文件的动态加密方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111382447B (zh) | 2023-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106778103B (zh) | 一种安卓应用程序防逆向破解的加固方法、系统及解密方法 | |
CN108229112B (zh) | 一种保护应用程序、应用程序的运行方法以及装置 | |
EP3038004A1 (en) | Method for providing security for common intermediate language-based program | |
CN111382447B (zh) | 安装包的加密方法、存储介质及计算机设备 | |
US20160275019A1 (en) | Method and apparatus for protecting dynamic libraries | |
KR102433011B1 (ko) | Apk 파일 보호 방법, 이를 수행하는 apk 파일 보호 시스템, 및 이를 저장하는 기록매체 | |
EP2105893A1 (en) | Method for protecting a CAP file for an IC Card | |
CN113761482A (zh) | 一种程序代码保护方法和装置 | |
CN110333868B (zh) | 用于生成子应用的安装包的方法和系统 | |
WO2015192637A1 (zh) | 软件安装包的加固保护方法和装置 | |
CN109598107B (zh) | 一种基于应用安装包文件的代码转换方法及装置 | |
CN109255235B (zh) | 基于用户态沙箱的移动应用第三方库隔离方法 | |
KR102459774B1 (ko) | Dll 파일 암호화 방법, 이를 수행하는 dll 파일 암호화 시스템, 및 이를 저장하는 기록매체 | |
CN111782511B (zh) | 固件文件的分析方法、设备及存储介质 | |
CN111737718A (zh) | 一种jar包的加解密方法、装置、终端设备和存储介质 | |
CN112035803B (zh) | 一种基于Windows平台软件的保护方法及装置 | |
CN118012478A (zh) | 增量编译方法、增量编译装置、存储介质及电子设备 | |
CN112270002B (zh) | 全盘加密方法、系统运行方法和电子设备 | |
KR101477050B1 (ko) | 메모리 덤프 기법을 이용한 어플리케이션의 실행코드 추출 방법 | |
CN104462969A (zh) | 查杀恶意应用程序的方法、装置和系统 | |
CN111159712B (zh) | 检测方法、设备及存储介质 | |
CN117313046A (zh) | 一种代码加固方法、代码加载方法、设备及介质 | |
JP2008040853A (ja) | アプリケーション実行方法およびアプリケーション実行装置 | |
CN113220314B (zh) | App资源加载及apk生成方法、装置、设备及介质 | |
CN115033870A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |