CN112417484A - 资源文件保护方法、装置、计算机设备和存储介质 - Google Patents
资源文件保护方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN112417484A CN112417484A CN202011355186.4A CN202011355186A CN112417484A CN 112417484 A CN112417484 A CN 112417484A CN 202011355186 A CN202011355186 A CN 202011355186A CN 112417484 A CN112417484 A CN 112417484A
- Authority
- CN
- China
- Prior art keywords
- resource file
- encrypted
- file
- application program
- installation package
- 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 70
- 238000011068 loading method Methods 0.000 claims abstract description 82
- 230000009471 action Effects 0.000 claims abstract description 70
- 230000008569 process Effects 0.000 claims abstract description 20
- 238000009434 installation Methods 0.000 claims description 77
- 238000004590 computer program Methods 0.000 claims description 26
- 238000012544 monitoring process Methods 0.000 claims description 13
- 230000007246 mechanism Effects 0.000 claims description 7
- 238000013507 mapping Methods 0.000 claims description 5
- 238000005516 engineering process Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000012857 repacking Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000005336 cracking Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000003068 static effect Effects 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/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
本申请涉及一种资源文件保护方法、装置、计算机设备和存储介质,在所述应用程序的运行过程中,通过对目标资源文件的加载动作进行监听,所述目标资源文件为对应用程序的资源文件进行加密而得到的;若监听到所述加载动作,拦截所述加载动作,并将所述目标资源文件加载至所述应用程序的运行内存中;在所述应用程序的运行内存中,对所述目标资源文件进行解密,得到解密资源文件;从所述运行内存中读取所述解密资源文件。避免在本地存储空间产生解密后的资源文件,确保本地存储空间中的资源文件始终处于加密状态,提升了资源文件的安全强度,从而可以避免数据泄露和盗版应用的产生。
Description
技术领域
本申请涉及互联网安全技术领域,特别是涉及一种资源文件保护方法、装置、计算机设备和存储介质。
背景技术
应用程序的安装包中包括多种类型的资源文件,而遭受攻击时常见的攻击方式就是替换、篡改应用原有的资源文件,诸如替换为广告图片,或者修改应用配置,甚至读取隐藏在资源文件中的个人隐私信息等。
传统技术中,主要通过以下两种技术手段对资源文件进行加密保护:一是资源文件混淆保护,比如对资源文件的路径进行混淆、缩短文件夹和文件名以及替换或者删除某个资源文件的名称;一是资源文件加密保护,对部分安装目录的内容进行加密、隐藏及压缩,使用时再将资源文件解压并对资源文件解密。
然而,在传统技术中,经过加密保护的资源文件依旧由于安全强度不够而面临安全风险,从而造成数据泄露、盗版应用等问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提升资源文件安全强度从而避免数据泄露、盗版应用的资源文件保护方法、装置、计算机设备和存储介质。
一种资源文件保护方法,所述方法包括:
在所述应用程序的运行过程中,对目标资源文件的加载动作进行监听,所述目标资源文件为对应用程序的资源文件进行加密而得到的;
若监听到所述加载动作,拦截所述加载动作,并将所述目标资源文件加载至所述应用程序的运行内存中;
在所述应用程序的运行内存中,对所述目标资源文件进行解密,得到解密资源文件;
从所述运行内存中读取所述解密资源文件。
在其中一个实施例中,所述目标资源文件的生成方式,包括:
对所述应用程序的安装包进行解析,从所述安装包中抽取待加密资源文件;
对所述待加密资源文件进行压缩和加密,得到所述目标资源文件。
在其中一个实施例中,所述待加密资源文件的数量大于一个;所述对所述待加密资源文件进行压缩和加密,得到所述目标资源文件,包括:
根据各所述待加密资源文件的文件类型,判断各所述待加密资源文件是否可压缩;
若所述待加密资源文件是可压缩的,则对所述待加密资源文件进行压缩,得到压缩文件;
若所述待加密资源文件是不可压缩的,则对所述待加密资源文件进行保留;
合并所述压缩文件和保留的待加密资源文件,将合并得到的文件进行加密,得到所述目标资源文件。
在其中一个实施例中,所述方法还包括:
从所述安装包中删除抽取到的所述待加密资源文件。
在其中一个实施例中,所述方法还包括:
将所述目标资源文件存放在所述应用程序的安装包中的指定路径下。
在其中一个实施例中,所述对所述应用程序的安装包进行解析,从所述安装包中抽取待加密资源文件,包括:
对所述应用程序的安装包进行解析,得到所述待加密资源文件在所述安装包中的目录地址;
根据所述目录地址,从所述安装包中抽取所述待加密资源文件。
在其中一个实施例中,所述若监听到所述加载动作,拦截所述加载动作,包括:
若监听到所述加载动作,基于钩子机制Hook拦截所述加载动作,所述加载动作包括打开open、读取read以及内存映射mmap中的至少一个。
一种资源文件保护装置,所述装置包括:
监听模块,用于在所述应用程序的运行过程中,对目标资源文件的加载动作进行监听,所述目标资源文件为对应用程序的资源文件进行加密而得到的;
拦截模块,用于若监听到所述加载动作,拦截所述加载动作,并将所述目标资源文件加载至所述应用程序的运行内存中;
解密模块,用于在所述应用程序的运行内存中,对所述目标资源文件进行解密,得到解密资源文件;
读取模块,用于从所述运行内存中读取所述解密资源文件。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述实施例中的方法步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例中的方法步骤。
上述资源文件保护方法、装置、计算机设备和存储介质,在所述应用程序的运行过程中,通过对目标资源文件的加载动作进行监听,所述目标资源文件为对应用程序的资源文件进行加密而得到的;若监听到所述加载动作,拦截所述加载动作,并将所述目标资源文件加载至所述应用程序的运行内存中;在所述应用程序的运行内存中,对所述目标资源文件进行解密,得到解密资源文件;从所述运行内存中读取所述解密资源文件。避免在本地存储空间产生解密后的资源文件,确保本地存储空间中的资源文件始终处于加密状态,提升了资源文件的安全强度,从而可以避免数据泄露和盗版应用的产生。
附图说明
图1为一个实施例中资源文件保护方法的流程环境图;
图2为一个实施例中目标资源文件的生成方法的流程示意图;
图3为一个实施例中步骤S210的流程示意图;
图4为另一个实施例中步骤S220的流程示意图;
图5为另一个实施例中资源文件保护方法的流程示意图;
图6为一个实施例中资源文件保护装置的结构框图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
应用程序的安装包中包括多种类型的资源文件,而遭受攻击时常见的攻击方式就是替换、篡改应用原有的资源文件,诸如替换为广告图片,或者修改应用配置,甚至读取隐藏在资源文件中的个人隐私信息等。以对安卓(Android)资源文件加密相关的技术手段为例进行说明。
一种是资源文件混淆保护方式,通过混淆资源文件的名称,在一定程度上提升破解者理解这些文件的难度,从而一定程度上提升资源文件的安全性,在正常的安卓应用程序(Android APP)的开发过程中,为了保证应用程序的统一规范,一般会提倡命名规范化,因此通过文件名称非常容易理解其含义,这样有利于开发者理解和维护应用。但是同时也给破解者提供了方便,破解者通过文件名称很容易便可找到所需的资源文件的位置,并理解这些资源文件的意图。例如将原始资源文件res/layout/activity_main.xml命名为res/a/a.xml,通过layout和activity_main.xml破解者可以容易得知该文件可能是个布局相关文件,且可能是主界面(activity)的布局文件,而文件名称被混淆变成res/a/a.xml后,破解者则很难通过名字知道a.xml文件的作用。但是,经过分析,发明人发现:1)资源文件混淆保护方式仅仅提高破解时的阅读难度,增加了破解者的时间成本,该方式的安全强度有限。2)实现的技术难度较大,比如在对assets资源文件进行保护时,对assets目录下的资源进行混淆,则需要修改Java程序代码或者DEX文件,难度和复杂度较大,对于开发人员来说比较容易出错。
一种是资源文件加密保护,对应用程序中的资源文件(如部分assets资源文件和部分res资源文件)进行加密、隐藏,在应用程序APP运行时对资源文件进行解密恢复,从而使应用程序可以正常访问资源文件。由于部分资源文件被加密,因此通过对应用程序进行反编译并不能看到真正的资源文件,从而保证资源文件的安全性。但是,经过分析,发明人发现:1)加密后的文件最终通过安卓系统运行解密之后,在本地存储空间产生未保护资源文件,那么破解者可以通过本地存储空间内的未保护资源文件得到应用程序的资源文件,从而暴露应用的数据信息和资源信息等。2)对assets资源文件的部分加密,仍然存在一定的安全风险。
基于此,本申请提供一种资源文件保护方法,在所述应用程序的运行过程中,通过对目标资源文件的加载动作进行监听,所述目标资源文件为对应用程序的资源文件进行加密而得到的;若监听到所述加载动作,拦截所述加载动作,并将所述目标资源文件加载至所述应用程序的运行内存中;在所述应用程序的运行内存中,对所述目标资源文件进行解密,得到解密资源文件;从所述运行内存(RAM)中读取所述解密资源文件。创新地实现了通过运行内存完成资源文件的加载,并从运行内存中将资源文件返回给应用程序,确保本地存储空间(存储内存ROM)中的资源文件始终处于加密状态,避免在本地存储空间产生解密后的资源文件,可见,本申请公开的资源文件保护方法提升了资源文件的安全强度,从而可以避免数据泄露和盗版应用的产生。
在一个实施例中,如图1所示,提供了一种资源文件保护方法,该方法包括以下步骤:
S110、在应用程序的运行过程中,对目标资源文件的加载动作进行监听。
其中,资源文件是可以从中读取所需资源的文件,资源的类型可以是图片、音频、视频、文字资源,或者其他可以在计算机中展示的内容等等。由专门的程序接口去读取,并在应用程序中根据需要向用户展示。目标资源文件为对应用程序的资源文件进行加密而得到的。比如,资源文件可以是Android资源文件中的assets资源文件和res资源文件,则目标资源文件是对assets资源文件和res资源文件进行加密得到的文件。可以理解的是,本申请所公开的方法同样适用于其他的系统比如IOS移动操作系统、MacOS操作系统、MicrosoftWindows操作系统。具体地,由于传统技术中,本地存储内存ROM中存储有加密的资源文件,在调用资源文件时,对该资源文件进行解密,本地存储内存ROM中形成对应的本地资源文件,系统直接调用本地资源目录进行读取或者加载。此时,本地存储内存ROM中的本地资源文件处于解密状态,这就意味攻击者可以从本地存储内存ROM中读取到该本地资源文件,存在极大的安全风险隐患。因此,为了避免目标资源文件被解密后在存储内存ROM中产生不加密的资源文件,在应用程序的运行过程中,本申请创新地对目标资源文件的加载动作进行监听,捕捉对目标资源文件的加载动作。
S120、若监听到加载动作,拦截加载动作,并将目标资源文件加载至应用程序的运行内存中。
其中,运行内存也称作主存,是指程序运行时需要的内存,为随机存取存储器(Random Access Memory,RAM)。将运行内存RAM与本地存储内存ROM相比,两者的最大区别是运行内存RAM在断电以后保存在上面的数据会自动消失,而本地存储内存ROM则不会。具体地,为了避免目标资源文件被解密后在存储内存ROM中产生不加密的资源文件,在监听到目标资源文件的加载动作后,拦截加载动作,将目标资源文件加载至应用程序的运行内存中,创造性地提出将目标资源文件加载至运行内存RAM中,避免解密后的资源文件落地至本地存储内存ROM中,实现了对目标资源文件的不落地解密(即不在ROM中进行解密操作),从而避免了从本地存储内存ROM中读取到该本地资源文件的安全隐患。
S130、在应用程序的运行内存中,对目标资源文件进行解密,得到解密资源文件。
S140、从运行内存中读取解密资源文件。
具体地,在应用程序的运行过程中,需要调用目标资源文件时,将目标资源文件加载至运行内存RAM中,在运行内存RAM中对目标资源文件进行解密,在运行内存RAM中形成一份解密资源文件,系统从运行内存RAM中读取该解密资源文件,应用程序APP可以正常使用资源文件中的内容。
上述资源文件保护方法中,在应用程序的运行过程中,通过对目标资源文件的加载动作进行监听,目标资源文件为对应用程序的资源文件进行加密而得到的;若监听到加载动作,拦截加载动作,并将目标资源文件加载至应用程序的运行内存中;在应用程序的运行内存中,对目标资源文件进行解密,得到解密资源文件;从运行内存中读取解密资源文件。避免在本地存储空间产生解密后的资源文件,确保本地存储空间(存储内存ROM)中的资源文件始终处于加密状态,提升了资源文件的安全强度,从而可以避免数据泄露和盗版应用的产生。
在一个实施例中,如图2所示,目标资源文件的生成方式,包括以下步骤:
S210、对应用程序的安装包进行解析,从安装包中抽取待加密资源文件。
S220、对待加密资源文件进行压缩和加密,得到目标资源文件。
其中,安装包(Install Pack)即软件安装包,是可自行解压缩文件的集合,其中包括软件安装的所有文件。比如,以安卓系统为例进行说明,安装包为Android应用程序包,即为APK(Android Application Package)安装包。具体地,对应用程序的安装包的资安装目录进行解析,确定需要加密的资源文件为抽取待加密资源文件,从安装包中抽取待加密资源文件。首先,对待加密资源文件进行压缩,然后对其进行加密,得到目标资源文件,实现对待加密资源文件的安全防护。
本实施例中,通过对应用程序的安装包进行解析,从安装包中抽取待加密资源文件。对待加密资源文件进行压缩和加密,得到目标资源文件。能够阻止攻击者从安装包获取到原始资源文件,从而阻止其进行重打包等恶意行为。
在一个实施例中,如图3所示,在步骤S210中,对应用程序的安装包进行解析,从安装包中抽取待加密资源文件,包括以下步骤:
S310、对应用程序的安装包进行解析,得到待加密资源文件在安装包中的目录地址;
S320、根据目录地址,从安装包中抽取待加密资源文件。
具体地,对应用程序的安装包的资安装目录进行解析,确定需要加密的资源文件为抽取待加密资源文件,并获取待加密资源文件在安装包中的目录地址,从而根据待加密资源文件在安装包中的目录地址,从安装包中抽取待加密资源文件。比如,当待加密资源文件为assets资源文件夹和res资源文件夹中的内容时,在对assets资源文件夹和res资源文件夹加密之前,对APP安装包进行分析,得到assets资源文件夹和res资源文件夹的目录地址,将assets资源文件夹和res资源文件夹中的内容进行抽取,得到待加密资源文件。
在一个实施例中,待加密资源文件的数量大于一个。如图4所示,对待加密资源文件进行压缩和加密,得到目标资源文件,包括以下步骤:
S410、根据各待加密资源文件的文件类型,判断各待加密资源文件是否可压缩。
S420、若待加密资源文件是可压缩的,则对待加密资源文件进行压缩,得到压缩文件。
S430、若待加密资源文件是不可压缩的,则对待加密资源文件进行保留。
S440、合并压缩文件和保留的待加密资源文件,将合并得到的文件进行加密,得到目标资源文件。
具体地,在从安装包中抽取待加密资源文件后,对各待加密资源文件的文件类型进行分析,根据待加密资源文件的后缀名分析各资源文件的类型,判断各待加密资源文件是否可压缩。如果通过待加密资源文件的后缀名确定该待加密资源文件是多媒体文件,则判定该待加密资源文件是不可压缩的。如果通过待加密资源文件的后缀名确定该待加密资源文件不是多媒体文件,则判定该待加密资源文件是可压缩的。示例性地,若待加密资源文件的后缀名为".gif",".wav",".mp2",".mp3",".ogg",".aac",".mpg",".mpeg",".mid",".midi",".smf",".jet",".rtttl",".imy",".xmf",".mp4",".m4a",".m4v",".3gp",".3gpp",".3g2",".3gpp2",".amr",".awb",".wma",".wmv"时,则表明该待加密资源文件不可压缩。若任一待加密资源文件是不可压缩的,则对待加密资源文件进行保留,不对其执行压缩操作;若任一待加密资源文件是可压缩的,则对待加密资源文件进行压缩,得到压缩文件。将保留的待加密资源文件与得到的压缩文件进行合并,得到安装包对应的整合文件,对该整合文件进行整体加密,得到目标资源文件。进一步地,该资源文件保护方法还包括:将目标资源文件存放在应用程序的安装包中的指定路径下。从安装包中删除抽取到的待加密资源文件。
示例性地,首先对APP安装包进行分析,获取其中res资源文件夹和assets资源文件夹的目录地址,并对这两个资源文件夹下的内容进行抽取。抽取完成之后,根据各资源文件的后缀来判断文件是否可压缩,若可压缩则对该资源文件进行压缩,若不可压缩则保留原资源文件。接着,将压缩后的资源文件和没有被压缩的原资源文件合并成一个新的zip文件。最后,对该zip文件进行整体加密,存放在APP安装包的assets目录下,并且会删除安装包原来的assets资源文件夹和res资源文件夹。这样,攻击者在拿到APP安装包的时候就无法从res目录和assets目录下获取到原始资源文件,也无法进行重打包等恶意行为。
本实施例中,通过对资源文件的类型进行识别,并根据资源文件的类型判断是否压缩,并将压缩的资源文件与保留的资源文件进行整合,创新性的采用资源文件整体加密的技术,加密强度有所增加,文件的安全强度有所突破。
在一个实施例中,若监听到加载动作,拦截加载动作,包括:若监听到加载动作,基于钩子机制Hook拦截加载动作。
其中,加载动作包括打开open、读取read以及内存映射mmap(memory-mapped)中的至少一个。mmap将一个文件或者其他对象映射进内存,当文件映射到进程后,就可以直接操作这段虚拟地址进行文件的读写等操作。Hook又叫“钩子”,它可以在事件传送的过程中截获并监控事件的传输,将自身的代码与系统方法进行融入。这样当这些系统方法被调用时,则执行自身的代码以实现对应的资源保护方法,避免在本地存储空间ROM中形成解密后的资源文件。具体地,在Android资源文件的加载过程中,需要调用libc.so库里面的open、read、mmap等方法。对这些加载方法进行Hook操作,则会监听对资源文件的open、read、mmap等加载动作,当系统调用open、read、mmap对资源文件进行加载或者读取操作时,捕捉到这些加载动作,从而拦截这些加载动作,开始执行将资源文件加载至应用程序的运行内存,以对其执行不落地解密。
本实施例中,基于钩子机制对系统的Open、Read、Mmap等函数进行Hook操作,实现资源文件在运行内存中的不落地解密,确保Android系统能够正常读取资源文件,同时避免在本地存储空间ROM中形成解密后的资源文件,弥补传统解密方式存在的安全漏洞。
在一个实施例中,本申请提供一种资源文件保护方法,如图5所示,该方法包括以下步骤:
S502、对应用程序的安装包进行解析,得到待加密资源文件在安装包中的目录地址。
S504、根据目录地址,从安装包中抽取待加密资源文件。
其中,待加密资源文件的数量大于一个。
S506、根据各待加密资源文件的文件类型,判断各待加密资源文件是否可压缩。
S508、若待加密资源文件是可压缩的,则对待加密资源文件进行压缩,得到压缩文件。
S510、若待加密资源文件是不可压缩的,则对待加密资源文件进行保留。
S512、合并压缩文件和保留的待加密资源文件,将合并得到的文件进行加密,得到目标资源文件。
S514、从安装包中删除抽取到的待加密资源文件。
S516、将目标资源文件存放在应用程序的安装包中的指定路径下。
S518、在应用程序的运行过程中,对目标资源文件的加载动作进行监听,目标资源文件为对应用程序的资源文件进行加密而得到的。
S520、若监听到加载动作,拦截加载动作,并将目标资源文件加载至应用程序的运行内存中。
S522、在应用程序的运行内存中,对目标资源文件进行解密,得到解密资源文件。
S524、从运行内存中读取解密资源文件。
应该理解的是,虽然上述流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图6所示,提供了一种资源文件保护装置,该装置包括监听模块610、拦截模块620、解密模块630以及读取模块640;其中:
监听模块610,用于在所述应用程序的运行过程中,对目标资源文件的加载动作进行监听,所述目标资源文件为对应用程序的资源文件进行加密而得到的;
拦截模块620,用于若监听到所述加载动作,拦截所述加载动作,并将所述目标资源文件加载至所述应用程序的运行内存中;
解密模块630,用于在所述应用程序的运行内存中,对所述目标资源文件进行解密,得到解密资源文件;
读取模块640,用于从所述运行内存中读取所述解密资源文件。
在一个实施例中,该装置还包括生成模块,生成模块包括解析模块和加密模块;其中:
解析模块,用于对所述应用程序的安装包进行解析,从所述安装包中抽取待加密资源文件;
加密模块,用于对所述待加密资源文件进行压缩和加密,得到所述目标资源文件。
在一个实施例中,所述待加密资源文件的数量大于一个;加密模块,还用于根据各所述待加密资源文件的文件类型,判断各所述待加密资源文件是否可压缩;若所述待加密资源文件是可压缩的,则对所述待加密资源文件进行压缩,得到压缩文件;若所述待加密资源文件是不可压缩的,则对所述待加密资源文件进行保留;合并所述压缩文件和保留的待加密资源文件,将合并得到的文件进行加密,得到所述目标资源文件。
在一个实施例中,该装置还包括删除模块,用于从所述安装包中删除抽取到的所述待加密资源文件。
在一个实施例中,该装置还包括存放模块,用于将所述目标资源文件存放在所述应用程序的安装包中的指定路径下。
在一个实施例中,解析模块,用于对所述应用程序的安装包进行解析,得到所述待加密资源文件在所述安装包中的目录地址;根据所述目录地址,从所述安装包中抽取所述待加密资源文件。
在一个实施例中,拦截模块,还用于若监听到所述加载动作,基于钩子机制Hook拦截所述加载动作,所述加载动作包括打开open、读取read以及内存映射mmap中的至少一个。
关于资源文件保护装置的具体限定可以参见上文中对于资源文件保护方法的限定,在此不再赘述。上述资源文件保护装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种资源文件保护方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
在所述应用程序的运行过程中,对目标资源文件的加载动作进行监听,所述目标资源文件为对应用程序的资源文件进行加密而得到的;若监听到所述加载动作,拦截所述加载动作,并将所述目标资源文件加载至所述应用程序的运行内存中;在所述应用程序的运行内存中,对所述目标资源文件进行解密,得到解密资源文件;从所述运行内存中读取所述解密资源文件。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
对所述应用程序的安装包进行解析,从所述安装包中抽取待加密资源文件;对所述待加密资源文件进行压缩和加密,得到所述目标资源文件。
在一个实施例中,所述待加密资源文件的数量大于一个;处理器执行计算机程序时还实现以下步骤:
根据各所述待加密资源文件的文件类型,判断各所述待加密资源文件是否可压缩;若所述待加密资源文件是可压缩的,则对所述待加密资源文件进行压缩,得到压缩文件;若所述待加密资源文件是不可压缩的,则对所述待加密资源文件进行保留;合并所述压缩文件和保留的待加密资源文件,将合并得到的文件进行加密,得到所述目标资源文件。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:从所述安装包中删除抽取到的所述待加密资源文件。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:将所述目标资源文件存放在所述应用程序的安装包中的指定路径下。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:对所述应用程序的安装包进行解析,得到所述待加密资源文件在所述安装包中的目录地址;根据所述目录地址,从所述安装包中抽取所述待加密资源文件。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:若监听到所述加载动作,基于钩子机制Hook拦截所述加载动作,所述加载动作包括打开open、读取read以及内存映射mmap中的至少一个。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时还实现以下步骤:
在所述应用程序的运行过程中,对目标资源文件的加载动作进行监听,所述目标资源文件为对应用程序的资源文件进行加密而得到的;若监听到所述加载动作,拦截所述加载动作,并将所述目标资源文件加载至所述应用程序的运行内存中;在所述应用程序的运行内存中,对所述目标资源文件进行解密,得到解密资源文件;从所述运行内存中读取所述解密资源文件。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
对所述应用程序的安装包进行解析,从所述安装包中抽取待加密资源文件;对所述待加密资源文件进行压缩和加密,得到所述目标资源文件。
在一个实施例中,所述待加密资源文件的数量大于一个;计算机程序被处理器执行时还实现以下步骤:
根据各所述待加密资源文件的文件类型,判断各所述待加密资源文件是否可压缩;若所述待加密资源文件是可压缩的,则对所述待加密资源文件进行压缩,得到压缩文件;若所述待加密资源文件是不可压缩的,则对所述待加密资源文件进行保留;合并所述压缩文件和保留的待加密资源文件,将合并得到的文件进行加密,得到所述目标资源文件。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:从所述安装包中删除抽取到的所述待加密资源文件。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:将所述目标资源文件存放在所述应用程序的安装包中的指定路径下。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对所述应用程序的安装包进行解析,得到所述待加密资源文件在所述安装包中的目录地址;根据所述目录地址,从所述安装包中抽取所述待加密资源文件。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若监听到所述加载动作,基于钩子机制Hook拦截所述加载动作,所述加载动作包括打开open、读取read以及内存映射mmap中的至少一个。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种资源文件保护方法,其特征在于,所述方法包括:
在所述应用程序的运行过程中,对目标资源文件的加载动作进行监听;所述目标资源文件为对应用程序的资源文件进行加密而得到的;
若监听到所述加载动作,拦截所述加载动作,并将所述目标资源文件加载至所述应用程序的运行内存中;
在所述应用程序的运行内存中,对所述目标资源文件进行解密,得到解密资源文件;
从所述运行内存中读取所述解密资源文件。
2.根据权利要求1所述的方法,其特征在于,所述目标资源文件的生成方式,包括:
对所述应用程序的安装包进行解析,从所述安装包中抽取待加密资源文件;
对所述待加密资源文件进行压缩和加密,得到所述目标资源文件。
3.根据权利要求2所述的方法,其特征在于,所述待加密资源文件的数量大于一个;所述对所述待加密资源文件进行压缩和加密,得到所述目标资源文件,包括:
根据各所述待加密资源文件的文件类型,判断各所述待加密资源文件是否可压缩;
若所述待加密资源文件是可压缩的,则对所述待加密资源文件进行压缩,得到压缩文件;
若所述待加密资源文件是不可压缩的,则对所述待加密资源文件进行保留;
合并所述压缩文件和保留的待加密资源文件,将合并得到的文件进行加密,得到所述目标资源文件。
4.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:
从所述安装包中删除抽取到的所述待加密资源文件。
5.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:
将所述目标资源文件存放在所述应用程序的安装包中的指定路径下。
6.根据权利要求2所述的方法,其特征在于,所述对所述应用程序的安装包进行解析,从所述安装包中抽取待加密资源文件,包括:
对所述应用程序的安装包进行解析,得到所述待加密资源文件在所述安装包中的目录地址;
根据所述目录地址,从所述安装包中抽取所述待加密资源文件。
7.根据权利要求1所述的方法,其特征在于,所述若监听到所述加载动作,拦截所述加载动作,包括:
若监听到所述加载动作,基于钩子机制Hook拦截所述加载动作,所述加载动作包括打开open、读取read以及内存映射mmap中的至少一个。
8.一种资源文件保护装置,其特征在于,所述装置包括:
监听模块,用于在所述应用程序的运行过程中,对目标资源文件的加载动作进行监听,所述目标资源文件为对应用程序的资源文件进行加密而得到的;
拦截模块,用于若监听到所述加载动作,拦截所述加载动作,并将所述目标资源文件加载至所述应用程序的运行内存中;
解密模块,用于在所述应用程序的运行内存中,对所述目标资源文件进行解密,得到解密资源文件;
读取模块,用于从所述运行内存中读取所述解密资源文件。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011355186.4A CN112417484A (zh) | 2020-11-26 | 2020-11-26 | 资源文件保护方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011355186.4A CN112417484A (zh) | 2020-11-26 | 2020-11-26 | 资源文件保护方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112417484A true CN112417484A (zh) | 2021-02-26 |
Family
ID=74842686
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011355186.4A Pending CN112417484A (zh) | 2020-11-26 | 2020-11-26 | 资源文件保护方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112417484A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112966301A (zh) * | 2021-03-05 | 2021-06-15 | 深圳市联软科技股份有限公司 | 免人工改造的业务应用文件管理系统、读写及打开方法 |
CN113220314A (zh) * | 2021-05-31 | 2021-08-06 | 北京奇艺世纪科技有限公司 | App资源加载及apk生成方法、装置、设备及介质 |
CN113609080A (zh) * | 2021-07-22 | 2021-11-05 | 深圳市元征未来汽车技术有限公司 | 文件处理方法、装置、终端设备及介质 |
CN114297589A (zh) * | 2021-12-28 | 2022-04-08 | 北京深思数盾科技股份有限公司 | 应用程序的资源保护方法、资源读取方法及装置 |
CN115242498A (zh) * | 2022-07-21 | 2022-10-25 | 平安国际融资租赁有限公司 | 应用程序的附件下载方法、装置、电子设备及介质 |
CN115455456A (zh) * | 2022-11-07 | 2022-12-09 | 南京芯驰半导体科技有限公司 | 一种3d资源文件安全使用的方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4234770B1 (ja) * | 2007-10-10 | 2009-03-04 | 株式会社東芝 | 再生装置および再生制御方法 |
CN106598584A (zh) * | 2016-12-08 | 2017-04-26 | 广州华多网络科技有限公司 | 一种处理资源文件的方法、装置和系统 |
CN106708571A (zh) * | 2016-12-13 | 2017-05-24 | 北京奇虎科技有限公司 | 资源文件的加载方法、装置和加固资源文件的方法、装置 |
CN107169324A (zh) * | 2017-05-12 | 2017-09-15 | 北京理工大学 | 一种基于动态加解密的Android应用加固方法 |
CN109858203A (zh) * | 2018-12-21 | 2019-06-07 | 厦门市美亚柏科信息股份有限公司 | 一种Android平台应用的安全防护方法、装置及存储介质 |
CN109871704A (zh) * | 2019-03-19 | 2019-06-11 | 北京智游网安科技有限公司 | 基于Hook的Android资源文件防护方法、设备和存储介质 |
WO2020103059A1 (zh) * | 2018-11-21 | 2020-05-28 | 深圳市欢太科技有限公司 | 数据处理方法、装置、电子设备以及存储介质 |
CN111309391A (zh) * | 2020-01-20 | 2020-06-19 | 北京无限光场科技有限公司 | 应用程序启动方法、装置、设备及介质 |
-
2020
- 2020-11-26 CN CN202011355186.4A patent/CN112417484A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4234770B1 (ja) * | 2007-10-10 | 2009-03-04 | 株式会社東芝 | 再生装置および再生制御方法 |
CN106598584A (zh) * | 2016-12-08 | 2017-04-26 | 广州华多网络科技有限公司 | 一种处理资源文件的方法、装置和系统 |
CN106708571A (zh) * | 2016-12-13 | 2017-05-24 | 北京奇虎科技有限公司 | 资源文件的加载方法、装置和加固资源文件的方法、装置 |
CN107169324A (zh) * | 2017-05-12 | 2017-09-15 | 北京理工大学 | 一种基于动态加解密的Android应用加固方法 |
WO2020103059A1 (zh) * | 2018-11-21 | 2020-05-28 | 深圳市欢太科技有限公司 | 数据处理方法、装置、电子设备以及存储介质 |
CN109858203A (zh) * | 2018-12-21 | 2019-06-07 | 厦门市美亚柏科信息股份有限公司 | 一种Android平台应用的安全防护方法、装置及存储介质 |
CN109871704A (zh) * | 2019-03-19 | 2019-06-11 | 北京智游网安科技有限公司 | 基于Hook的Android资源文件防护方法、设备和存储介质 |
CN111309391A (zh) * | 2020-01-20 | 2020-06-19 | 北京无限光场科技有限公司 | 应用程序启动方法、装置、设备及介质 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112966301A (zh) * | 2021-03-05 | 2021-06-15 | 深圳市联软科技股份有限公司 | 免人工改造的业务应用文件管理系统、读写及打开方法 |
CN113220314A (zh) * | 2021-05-31 | 2021-08-06 | 北京奇艺世纪科技有限公司 | App资源加载及apk生成方法、装置、设备及介质 |
CN113220314B (zh) * | 2021-05-31 | 2023-07-21 | 北京奇艺世纪科技有限公司 | App资源加载及apk生成方法、装置、设备及介质 |
CN113609080A (zh) * | 2021-07-22 | 2021-11-05 | 深圳市元征未来汽车技术有限公司 | 文件处理方法、装置、终端设备及介质 |
CN114297589A (zh) * | 2021-12-28 | 2022-04-08 | 北京深思数盾科技股份有限公司 | 应用程序的资源保护方法、资源读取方法及装置 |
CN115242498A (zh) * | 2022-07-21 | 2022-10-25 | 平安国际融资租赁有限公司 | 应用程序的附件下载方法、装置、电子设备及介质 |
CN115455456A (zh) * | 2022-11-07 | 2022-12-09 | 南京芯驰半导体科技有限公司 | 一种3d资源文件安全使用的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112417484A (zh) | 资源文件保护方法、装置、计算机设备和存储介质 | |
CN111143869B (zh) | 应用程序包处理方法、装置、电子设备及存储介质 | |
Jo et al. | Digital forensic practices and methodologies for AI speaker ecosystems | |
KR101130459B1 (ko) | 특수 목적 힙 | |
US10440111B2 (en) | Application execution program, application execution method, and information processing terminal device that executes application | |
CN106295255B (zh) | 应用程序的加固方法和装置 | |
CN111897786B (zh) | 日志读取方法、装置、计算机设备和存储介质 | |
WO2006106469A1 (en) | Software protection | |
CN109871704A (zh) | 基于Hook的Android资源文件防护方法、设备和存储介质 | |
CN104680039A (zh) | 一种应用程序安装包的数据保护方法及装置 | |
CN114650154B (zh) | 网页权限行为控制方法、装置、计算机设备和存储介质 | |
CN116662941B (zh) | 信息加密方法、装置、计算机设备和存储介质 | |
CN108133147B (zh) | 可执行代码的保护方法、设备及可读存储介质 | |
CN111159658B (zh) | 字节码处理方法、系统、装置、计算机设备和存储介质 | |
KR101757407B1 (ko) | 바이너리 병합 장치, 방법 및 컴퓨터 프로그램 | |
Lin | TikTok vs Douyin A Security and Privacy Analysis | |
CN109657490B (zh) | 一种办公文件透明加解密方法及系统 | |
KR20170069337A (ko) | 애플리케이션 보호를 위한 암호화 처리 방법, 이에 의해 생성된 프로그램 및 이를 위한 장치 | |
CN111159712B (zh) | 检测方法、设备及存储介质 | |
KR101749209B1 (ko) | 애플리케이션의 정보 은닉 방법 및 장치, 및 애플리케이션 실행 방법 및 장치 | |
JP2008040853A (ja) | アプリケーション実行方法およびアプリケーション実行装置 | |
CN106648770B (zh) | 一种应用程序安装包的生成方法、加载方法及装置 | |
Bates et al. | Secure and trustworthy provenance collection for digital forensics | |
Bellizzi et al. | Real-time triggering of Android memory dumps for stealthy attack investigation | |
CN112654986A (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 |