CN112052464B - 对资源文件进行虚拟化保护的方法、智能终端、存储介质 - Google Patents
对资源文件进行虚拟化保护的方法、智能终端、存储介质 Download PDFInfo
- Publication number
- CN112052464B CN112052464B CN202010847444.4A CN202010847444A CN112052464B CN 112052464 B CN112052464 B CN 112052464B CN 202010847444 A CN202010847444 A CN 202010847444A CN 112052464 B CN112052464 B CN 112052464B
- Authority
- CN
- China
- Prior art keywords
- protected
- resource file
- file
- application
- memory
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000012545 processing Methods 0.000 claims abstract description 28
- 230000006870 function Effects 0.000 claims abstract description 27
- 230000008569 process Effects 0.000 claims abstract description 24
- 238000010276 construction Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 239000000243 solution Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 101100217298 Mus musculus Aspm gene Proteins 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- 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
- 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)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了对资源文件进行虚拟化保护的方法、智能终端、存储介质,所述方法包括:获取待保护的资源文件,并对所述待保护的资源文件进行保护处理,得到密钥文件夹;获取所述待保护的资源文件在应用中的内存,并对所述内存进行虚拟化处理,得到虚拟化保护应用;当所述虚拟化保护应用运行过程中需要使用所述待保护的资源文件时,则获取并回调所述待保护的资源文件实现所述应用的相应功能,以对所述待保护的资源文件的保护。本发明实施例中可以对应用中的核心资源文件进行保护,通过抽离待保护资源文件,在应用中相应的空间进行虚拟化处理得到虚拟文件,然后需要使用待保护的资源文件时回调所述待保护的资源文件,以实现对资源文件的保护。
Description
技术领域
本发明涉及数据安全技术领域,尤其涉及的是对资源文件进行虚拟化保护的方法、智能终端、存储介质。
背景技术
随着网络信息化的发展,人们对数据安全的重视程度也越来越高,为了保护计算机软件数据不因偶然和恶意的原因遭到破坏、更改和泄露,预先采取一些措施来确保网络数据的可用性、完整性和保密性。
一款移动端应用发布后,其APK文件可以通过zip或者rar压缩工具解压打开,应用自身结构被公开,包括dex、res、assets、lib等目录以及其目录下的资源文件,这就意味其应用使用的各种资源都可以被窃取、拷贝复制、分析、伪装,导致移动端应用的资源文件存在安全风险。
因此,现有技术还有待改进和发展。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供对资源文件进行虚拟化保护的方法、智能终端、存储介质,旨在解决现有技术中应用的资源文件被窃取、拷贝复制、分析、伪装,导致移动端应用的资源文件存在安全风险问题。
本发明解决问题所采用的技术方案如下:
第一方面,本发明实施例提供对资源文件进行虚拟化保护的方法,其中,所述方法包括:
获取待保护的资源文件,并对所述待保护的资源文件进行保护处理,得到密钥文件夹;
获取所述待保护的资源文件在应用中的内存,并对所述内存进行虚拟化处理,得到虚拟化保护应用;
当所述虚拟化保护应用运行过程中需要使用所述待保护的资源文件时,则获取并回调所述待保护的资源文件实现所述应用的相应功能,以对所述待保护的资源文件的保护。
在一种实现方式中,所述获取待保护的资源文件的方法包括:
获取所述待保护的资源文件的加载前文件名;
根据所述加载前文件名获取所述待保护的资源文件。
在一种实现方式中,所述对所述待保护的资源文件进行保护处理,得到密钥文件夹包括:
将所述待保护的资源文件保存至ZIP文件夹;
对所述ZIP文件夹进行加密得到密钥文件夹。
在一种实现方式中,所述将所述待保护的资源文件保存至ZIP文件夹包括:
获取构建文件夹指令并生成一个与应用结构相同的ZIP文件夹;
将所述待保护的资源文件存储在ZIP文件夹。
在一种实现方式中,所述获取所述待保护的资源文件在应用中的内存,并对所述内存进行虚拟化处理,得到虚拟化保护应用包括:
获取所述待保护的资源文件在应用中的内存;
获取所述待保护的资源文件的ID和虚拟文件;
将所述虚拟文件和所述ID存储在所述内存中,得到虚拟化保护应用。
在一种实现方式中,所述获取所述待保护的资源文件在应用中的内存,并对所述内存进行虚拟化处理,得到虚拟化保护应用还包括:将所述ID和所述虚拟文件的对应关系储存在所述虚拟化保护应用的第一文件。
在一种实现方式中,所述当所述虚拟化保护应用运行过程中需要使用所述待保护的资源文件时,则获取所述待保护的资源文件包括:
加载可执行共享库文件,对密钥文件夹进行解密,得到解密文件夹;
获取待访问的资源文件的加载后文件名,根据所述加载后文件名,得到其在所述第一文件中的对应ID;
根据所述对应ID,在所述解密文件夹中查找相对应的所述待保护的资源文件。
在一种实现方式中,所述回调所述待保护的资源文件,以实现对所述待保护的资源文件的保护包括:
加载所述可执行共享库文件,调用所述待保护的资源文件;
将所述待保护的资源文件覆盖所述虚拟文件,以实现对所述待保护的资源文件的保护。
第二方面,本发明实施例还提供对资源文件进行虚拟化保护的装置,其中,所述装置包括:
待保护的资源文件处理单元,用于获取待保护的资源文件,并对所述待保护的资源文件进行保护处理,得到密钥文件夹;
虚拟文件生成单元,获取所述待保护的资源文件在应用中的内存,并对所述内存进行虚拟化处理,得到虚拟化保护应用;
回调单元,用于当所述虚拟化保护应用运行过程中需要使用所述待保护的资源文件时,则获取并回调所述待保护的资源文件,以实现对所述待保护的资源文件的保护。
第三方面,本发明实施例还提供一种智能终端,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于执行如上述任意一项所述的对资源文件进行虚拟化保护的方法。
第四方面,本发明实施例还提供非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如上述中任意一项所述的对资源文件进行虚拟化保护方法。
本发明的有益效果:本发明实施例首先获取待保护的资源文件,并对所述待保护的资源文件进行保护处理,得到密钥文件夹;然后获取所述待保护的资源文件在应用中的内存,并对所述内存进行虚拟化处理,得到虚拟化保护应用;最后当所述虚拟化保护应用运行过程中需要使用所述待保护的资源文件时,则获取并回调所述待保护的资源文件实现所述应用的相应功能,以对所述待保护的资源文件的保护;可见,本发明实施例中可以对应用中的核心资源文件进行保护,通过对应用中的待保护的资源文件抽离到一个ZIP文件夹中,在应用中相应的空间进行虚拟化处理得到虚拟文件,然后在应用运行过程中需要使用待保护的资源文件时回调所述待保护的资源文件,以实现对资源文件的保护。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1本发明实施例提供的对资源文件进行虚拟化保护的方法流程示意图
图2本发明实施例提供的对资源文件进行虚拟化保护的装置的原理框图。
图3本发明实施例提供的智能终端的内部结构原理框图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
需要说明,若本发明实施例中有涉及方向性指示(诸如上、下、左、右、前、后……),则该方向性指示仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
由于现有技术中,一款移动端应用发布后,其APK文件可以通过zip或者rar压缩工具解压打开,应用自身结构被公开,包括dex、res、assets、lib等目录以及其目录下的资源文件,这就意味其应用使用的各种资源都可以被窃取、拷贝复制、分析、伪装,导致移动端应用的资源文件存在安全风险。
为了解决现有技术的问题,本实施例提供了对资源文件进行虚拟化保护的方法,通过对的待保护的资源文件抽离到一个ZIP文件夹中,在应用中相应的空间进行虚拟化处理得到虚拟文件,然后在应用运行过程中需要使用待保护的资源文件时回调所述待保护的资源文件,以实现对资源文件的保护。实际中,所述资源文件是指应用中的资源文件,如移动终端应用APK等,APK是Android操作***使用的一种应用程序包文件格式,用于分发和安装移动应用及中间件。一个Android应用程序的代码想要在Android设备上运行,必须先进行编译,然后被打包成为一个被Android***所能识别的文件才可以被运行,而这种能被Android***识别并运行的文件格式便是“APK”。一个APK文件内包含被编译的代码文件(.dex文件),文件资源(resources),原生资源文件(assets),证书(certificates),和清单文件(manifest file)。具体实施时,首先获取待保护的资源文件,并对所述待保护的资源文件进行保护处理,得到密钥文件夹;然后获取所述待保护的资源文件在应用中的内存,并对所述内存进行虚拟化处理,得到虚拟化保护应用;最后当所述虚拟化保护应用运行过程中需要使用所述待保护的资源文件时,则获取并回调所述待保护的资源文件实现所述应用的相应功能,以对所述待保护的资源文件的保护。
现举例说明,原始APK结构中包含了如下目录:assets/,lib/,res/,classes.dex,AndroidManifest,xml,resources.arsc。先抽取assets,lib和res目录里的待保护资源文件到patch.zip文件夹中,然后对patch.zip文件夹进行保护处理,生成patch.zip文件夹。这样,原始APK中被抽取了待保护的资源文件的内存就空了,此时将虚拟文件以及待保护的资源文件对应的ID替换到上述内存中,如果抽取的待保护的资源文件有多个,此时按照ID对应顺序将多个虚拟文件替换到上述内存中,例如第一个虚拟文件的ID为1,其替换第一个待保护的资源文件相应的内存中,第二个虚拟文件的ID为2,其替换第二个待保护的资源文件相应的内存中......以此类推得到虚拟化保护应用。在原始APK结构中lib目录的子目录中拷贝patch.so。当所述虚拟化保护应用在运行过程中,需要用到所述待保护的资源文件时,则在classes.dex反编译入口处***一小段代码,用于加载patch.so,patch.so文件就可以实现对加密后的patch.zip文件夹进行反保护处理,同时,patch.so文件可以HOOK到Android***访问资源的导出函数、导入函数,接管Android***运行时资源访问接口。所述HOOK又叫做钩子函数,在***没有调用该函数之前,钩子程序就先捕获该消息,钩子函数先得到控制权,这时钩子函数既可以加工处理(改变)该函数的执行行为,还可以强制结束消息的传递。接管后,当虚拟化Apk应用运行时程序要访问某个待保护的资源文件,就获取相应的所述待保护的资源文件,否则,当虚拟化Apk应用运行时程序无需访问待保护的资源文件,虚拟化Apk应用运行时的内存是空壳文件,即使是被外部HOOK,其HOOK到的文件是不可识别的,不会造成资源文件的泄露和窃取,并且,其应用中的核心函数因为被抽取到了另外的文件夹中做了保护处理,就实现了对APK应用中的所述待保护的资源文件的保护。
示例性方法
本实施例提供对资源文件进行虚拟化保护的方法,该方法可以应用于数据安全保护的智能终端。具体如图1所示,所述方法包括:
步骤S100、获取待保护的资源文件,并对所述待保护的资源文件进行保护处理,得到密钥文件夹;
首先,技术人员根据应用中资源文件的重要性确定待保护的资源文件,以及所述待保护的资源文件的个数,然后获取所有这些待保护的资源文件,按照一定的关系,依次存储,为确保存储后的文件夹的安全性,将所述文件夹进行保护处理,所述保护处理的方法可以是加密,也可以是加壳文件,具体不做限制,此外,所述加密方法可以是采用加密算法,也可以是采用简单的与或运算,具体不做限制。通过上述处理后便可得到密钥文件夹。
实际中,当技术人员确定了所述待保护的资源文件后,需要在原始APK应用中去找到这些待保护的资源文件,在一种实现方式中,本实施例所述获取待保护的资源文件包括如下步骤:
步骤S101、获取所述待保护的资源文件的加载前文件名;
步骤S102、根据所述加载前文件名获取所述待保护的资源文件。
当技术人员确定了所述待保护的资源文件后,会在终端输入包含所述待保护的资源文件的文件名的指令,这样终端就会获取到所有待保护的资源文件的加载前文件名,根据所述加载前文件名,在原始APK结构里的Assets目录里的文件、lib里的文件、res里的文件里查找所述加载前文件名,终端根据所述加载前文件名,就可以在Assets目录里相应的文件里获取所述待保护的资源文件。
考虑到所述获取的待保护的资源文件也会存在其他不可预知途径的泄露和窃取,因此需要对其进行防护处理,本实施例对所述待保护的资源文件进行保护处理,得到密钥文件夹包括如下步骤:
步骤S111、将所述待保护的资源文件保存至ZIP文件夹;
步骤S112、对所述ZIP文件夹进行加密得到密钥文件夹。
为了确保所述待保护的资源文件的绝对安全,在获取到待保护的资源文件后,将所述待保护的资源文件保存至ZIP文件夹中,这个ZIP文件夹是独立于所述APK应用的一个文件夹,当APK应用运行时,这个ZIP文件夹并不被加载,因此,所述ZIP文件夹相对于在应用中加载的文件夹而言具有一定的安全性。此外,考虑到实际中可能还存在其他不可预估因素的窃取和泄露,对所述ZIP文件夹进行加密得到密钥文件夹,所述加密方法可以采用加密算法,也可以通过简单的与或的方式得到。加密算法又可以采用DES加密算法,AES加密算法,RSA加密算法,Base64加密算法,MD5加密算法,SHA1加密算法,具体不做限制。DES加密算法的优点是速度较快。AES加密算法的优点是速度快,安全级别高。RSA加密算法是一个支持变长密钥的公共密钥算法。Base64加密算法。
考虑到防护处理之后,当所述APK应用在实际运行时需要使用所述待保护的资源文件时,需要根据一定的对应关系找到所述待保护的资源文件,因此,本实施例所述将所述待保护的资源文件保存至ZIP文件夹包括如下步骤:
步骤S1111、获取构建文件夹指令并生成一个与应用结构相同的ZIP文件夹;
步骤S1112、将所述待保护的资源文件存储在ZIP文件夹。
实际中,当技术人员会向终端输入构建文件夹的指令,终端接受并获取所述构建文件夹的指令后,构建patch.zip文件夹,考虑到patch.zip文件夹中存储的待保护的资源文件是源自原始APK应用的,当程序运行之后,APK应用会重新调用这些待保护的资源文件,为了方便查找这些待保护的资源文件,因此需要将所述的待保护的资源文件按照一定的关系存储在所述的patch.zip文件夹中,并且该关系一定是要与所述的原始APK结构中子目录下的资源文件相匹配的,因此,为了构建一个上述关系的文件夹,所述patch.zip文件夹的架构和和APK结构是类似的。然后,将所述待保护的资源文件存储在所述的patch.zip文件夹中。这样,就为后续程序加载过程中重新调回所述待保护的资源文件提供了方便。
当APK应用中的待保护资源被抽走之后,就需要对APK应用中所述待保护资源之前占用的内存空间进行处理,执行如图1所示的步骤步骤S200、获取所述待保护的资源文件在应用中的内存,并对所述内存进行虚拟化处理,得到虚拟化保护应用。
实际中,由于原始APK结构的子目录assets/,lib/,res/下的待保护的资源文件被抽走了,原始APK结构的子目录assets/,lib/,res/下的内存空间就空出来了,为了实现虚拟化的保护,故对所述原始APK结构的子目录assets/,lib/,res/下的内存空间进行虚拟化处理,经过虚拟化处理之后的APK应用就成为虚拟化保护应用。
为了实现所述的虚拟化的处理,得到上述的虚拟化应用,需要进行如下操作,本实施例所述获取所述待保护的资源文件在应用中的内存,并对所述内存进行虚拟化处理,得到虚拟化保护应用包括如下步骤:
步骤S201、获取所述待保护的资源文件在应用中的内存;
步骤S202、获取所述待保护的资源文件的ID和虚拟文件;
步骤S203、将所述虚拟文件和所述ID存储在所述内存中,得到虚拟化保护应用。
实际中,所述的APK应用是需要在程序运行过程中进行加载的,并且,考虑到当所述的APK应用在加载过程中需要用到所述的资源文件时,需要对应的调回所述的资源文件,因此,所述APK结构中子目录assets/,lib/,res/下被抽走资源文件的文件夹的内存空间不能为空,因此,需要对所述的内存空间进行填充。因此,首先需要获取所述的APK结构中子目录assets/,lib/,res/下被抽走资源文件的内存空间。考虑到程序最后调用所述待保护的资源文件时,需要按照一定的对应关系回调所述的待保护的资源文件,在前述抽取所述待保护的资源文件的步骤中有如下的操作:所述待保护资源文件设置一个ID的话,那么,第一个被抽取的资源文件的ID可以设置成1,第二个被抽取的资源文件的ID可以设置成2,依次类推,那么在过去了所述待保护资源文件在所述的应用中的内存空间之后,在此需要获取所述待保护的资源文件的ID。此外,所述的内存空间需要填充文件夹,因此,终端先要获取所述虚拟文件。所述的虚拟文件中还可以注入防护代码,例如注入Framework,或者增加库函数判断,如果不是自己的库,则不让加载,这样,即使在APK应用回调所述待保护的资源文件,所述的待保护的资源文件也可以避免被FISHHOOK,可以更好的保证APK应用中的待保护资源文件的安全。终端在获取了所述的内存空间和所述的虚拟文件后,将其一并存储在所述的内存空间中,这样APK应用就变成虚拟化保护的APK应用。
所述ID与所述待保护的资源文件的对应关系已经确认,为了使得当APK应用回调所述的待保护的资源文件,需要确立所述的ID和所述虚拟文件的对应关系,因此,所述获取所述待保护的资源文件在应用中的内存,并对所述内存进行虚拟化处理,得到虚拟化保护应用还包括如下步骤:步骤S211、将所述ID和所述虚拟文件的对应关系储存在所述虚拟化保护应用的第一文件。
实际中,所述的ID和所述的资源文件按照ID号为1对应第一个被抽取的资源文件,ID号为2对应第二个被抽取的资源文件,依次类推的方式。当APK应用在运行时需要使用所述的待保护的资源文件时,需要准确回调所述的待保护的资源文件,那么同样的需要按照ID对应关系进行回调至APK应用对应的地方,因此,需要将APK应用相应内存放置的虚拟文件按照同样的方式进行存放。为了方便回调所述待保护的资源文件,需要将所述ID和所述虚拟文件的对应关系储存在所述虚拟化保护应用的第一文件。也即,原APK应用中被第一个抽取的资源文件的内存空间存放的虚拟文件,其ID对应为1,原APK应用中被第二个抽取的资源文件的内存空间存放的虚拟文件,其ID对应为2,依次类推。
考虑到虚拟化保护APK应用在程序中运行的目的是为了保护所述待保护的资源文件,其在实际运行中如果要使用所述待保护的资源文件,还是要回调所述待保护的资源文件,因此,需要执行如图1所示的如下步骤:
步骤S300、当所述虚拟化保护应用运行过程中需要使用所述待保护的资源文件时,则获取并回调所述待保护的资源文件实现所述应用的相应功能,以对所述待保护的资源文件的保护。
实际中,所述APK应用中所述待保护的资源文件都得到了应有的保护,其应用上相应的内存空间存放的都是些空壳文件,即使这些空壳文件被FISHHOOK攻击,也不会对所述待保护的资源文件造成泄露或者窃取。但是,APK应用运行过程中要实现特定的功能时需要调用所述的待保护的资源文件,这个时候需要在上述的密钥文件夹中获取到所述待保护的资源文件,然后通过回调的方式,使所述待保护的资源文件恢复到之前在APK应用中的原始内存位置,这样既实现了APK应用的相应功能,同时起到了对所述待保护的资源文件的保护。
由于对所述待保护的资源文件做了相应的保护处理,实际在调回时需要先获取所述待保护的资源文件,因此,本实施例所述当所述虚拟化保护应用运行过程中需要使用所述待保护的资源文件时,则获取所述待保护的资源文件包括如下步骤:
步骤S301、加载可执行共享库文件,对密钥文件夹进行解密,得到解密文件夹;
步骤S302、获取待访问的资源文件的加载后文件名,根据所述加载后文件名,得到其在所述第一文件中的对应ID;
步骤S303、根据所述对应ID,在所述解密文件夹中查找相对应的所述待保护的资源文件。
由于为了实现对所述待保护的资源文件的保护,对其做了保护处理,因此在调用所述待保护的资源文件时,需要先获取所述待保护的资源文件。此外,由于所述的待保护的资源文件是被存储在所述的密钥文件夹中的,因此需要先对其进行解密。具体地,首先,要加载可执行文件库文件,对所述的密钥文件夹进行解密,得到解密文件夹。所述的解密算法和上述加密算法相对应,是逆向算法,在此不做进一步的限制。然后,当APK应用在运行时需要调用资源文件时,会生成所述的待访问的资源文件的文件名,终端获取待访问的资源文件的加载后文件名,再根据所述加载后文件名,在所述的第一文件中进行查找,便可以查找到相应的ID;那么此时查找到所述加载后文件名的相应ID便是5,那么对应的是第5个被抽取的资源文件,从而找到相对应的所述待保护的资源文件。
当终端得到所述的待保护的资源文件后,需要进行回调才能实现相应的功能,因此,本实施例所述回调所述待保护的资源文件实现所述应用相应的功能,以对所述待保护的资源文件的保护包括如下步骤:
步骤S311、加载所述可执行共享库文件,调用所述待保护的资源文件实现所述应用相应的功能;
步骤S312、将所述待保护的资源文件覆盖所述虚拟文件,以实现对所述待保护的资源文件的保护。
实际中,当获取到所述待保护的资源文件时,在本实施例中,例如,所述的待保护的资源文件为第5个被抽取的资源文件,那么在对所述第5个被抽取的资源文件进行回调,才能实现APK相应的功能。因此,需要再次加载所述的可执行共享库文件,调用所述的待保护的资源文件如所述第5个被抽取的资源文件,然后在APK原始的结构中,将所述的第5个被抽取的资源文件覆盖在对应内存空间的虚拟文件中,就可以实现所述第5个被抽取的资源文件相应的功能,例如语音功能,或者视频功能等,在此不做进一步的限制。这样,当APK应用不使用所述的待保护的资源时,所述待保护的资源文件被保护在另一个安全的文件夹中,并且做了加密处理,保证了所述的资源文件的安全性;当APK应用使用所述待保护的资源文件时,才调取所述待保护的资源文件,此时由于是内部的HOOK,是在第一时间HOOK所述待保护的资源文件,因此,不容易被其他的FISHHOOK获取,也起到了保护所述待保护的资源文件安全的作用。
示例性设备
如图2中所示,本发明实施例提供对资源文件进行虚拟化保护的装置,该装置包括:待保护的资源文件处理单元201,虚拟文件生成单元202,回调单元203。具体地,待保护的资源文件处理单元201,用于获取待保护的资源文件,并对所述待保护的资源文件进行保护处理,得到密钥文件夹;虚拟文件生成单元202,获取所述待保护的资源文件在应用中的内存,并对所述内存进行虚拟化处理,得到虚拟化保护应用;回调单元203,用于当所述虚拟化保护应用运行过程中需要使用所述待保护的资源文件时,则获取并回调所述待保护的资源文件实现所述应用的相应功能,以对所述待保护的资源文件的保护。
基于上述实施例,本发明还提供了智能终端,其原理框图可以如图3所示。该智能终端包括通过***总线连接的处理器、存储器、网络接口、显示屏、温度传感器。其中,该智能终端的处理器用于提供计算和控制能力。该智能终端的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***和计算机程序。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该智能终端的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现对资源文件进行虚拟化保护的方法。该智能终端的显示屏可以是液晶显示屏或者电子墨水显示屏,该智能终端的温度传感器是预先在智能终端内部设置,用于检测内部设备的运行温度。
本领域技术人员可以理解,图2中的原理图,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的智能终端的限定,具体的智能终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了智能终端,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:获取待保护的资源文件,并对所述待保护的资源文件进行保护处理,得到密钥文件夹;获取所述待保护的资源文件在应用中的内存,并对所述内存进行虚拟化处理,得到虚拟化保护应用;当所述虚拟化保护应用运行过程中需要使用所述待保护的资源文件时,则获取并回调所述待保护的资源文件实现所述应用的相应功能,以对所述待保护的资源文件的保护。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
综上所述,本发明公开了对资源文件进行虚拟化保护的方法、智能终端、存储介质,所述方法包括:获取待保护的资源文件,并对所述待保护的资源文件进行保护处理,得到密钥文件夹;获取所述待保护的资源文件在应用中的内存,并对所述内存进行虚拟化处理,得到虚拟化保护应用;当所述虚拟化保护应用运行过程中需要使用所述待保护的资源文件时,则获取并回调所述待保护的资源文件实现所述应用的相应功能,以对所述待保护的资源文件的保护。本发明实施例中可以对应用中的核心资源文件进行保护,通过对应用中的待保护的资源文件抽离到一个ZIP文件夹中,在应用中相应的空间进行虚拟化处理得到虚拟文件,然后在应用运行过程中需要使用待保护的资源文件时回调所述待保护的资源文件,以实现对资源文件的保护。
应当理解的是,本发明公开了一种应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (6)
1.一种对资源文件进行虚拟化保护的方法,其特征在于,所述方法包括:
获取待保护的资源文件,并对所述待保护的资源文件进行保护处理,得到密钥文件夹;
获取所述待保护的资源文件在应用中的内存,并对所述内存进行虚拟化处理,得到虚拟化保护应用;
当所述虚拟化保护应用运行过程中需要使用所述待保护的资源文件时,则获取并回调所述待保护的资源文件,使所述待保护的资源文件恢复到在所述应用中的原始内存位置,实现所述应用的相应功能,以实现对所述待保护的资源文件的保护;
所述对所述待保护的资源文件进行保护处理,得到密钥文件夹包括:将所述待保护的资源文件保存至ZIP文件夹;对所述ZIP文件夹进行加密得到密钥文件夹;
所述将所述待保护的资源文件保存至ZIP文件夹包括:获取构建文件夹指令并生成一个与应用结构相同的ZIP文件夹;将所述待保护的资源文件存储在ZIP文件夹;
所述获取所述待保护的资源文件在应用中的内存,并对所述内存进行虚拟化处理,得到虚拟化保护应用包括:获取所述待保护的资源文件在应用中的内存;获取所述待保护的资源文件的ID和虚拟文件;将所述虚拟文件和所述ID存储在所述内存中,得到虚拟化保护应用;
所述获取所述待保护的资源文件在应用中的内存,并对所述内存进行虚拟化处理,得到虚拟化保护应用还包括:将所述ID和所述虚拟文件的对应关系储存在所述虚拟化保护应用的第一文件。
2.根据权利要求1所述的对资源文件进行虚拟化保护的方法,其特征在于,所述获取待保护的资源文件包括:
获取所述待保护的资源文件的加载前文件名;
根据所述加载前文件名获取所述待保护的资源文件。
3.根据权利要求1所述的对资源文件进行虚拟化保护的方法,其特征在于,所述当所述虚拟化保护应用运行过程中需要使用所述待保护的资源文件时,则获取所述待保护的资源文件包括:
加载可执行共享库文件,对密钥文件夹进行解密,得到解密文件夹;
获取待访问的资源文件的加载后文件名,根据所述加载后文件名,得到其在所述第一文件中的对应ID;
根据所述对应ID,在所述解密文件夹中查找相对应的所述待保护的资源文件。
4.根据权利要求3所述的对资源文件进行虚拟化保护的方法,其特征在于,所述回调所述待保护的资源文件实现所述应用相应的功能,以对所述待保护的资源文件的保护包括:
加载所述可执行共享库文件,调用所述待保护的资源文件;
将所述待保护的资源文件覆盖所述虚拟文件实现所述应用相应的功能,以实现对所述待保护的资源文件的保护。
5.一种智能终端,其特征在于,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于执行如权利要求1-4中任意一项所述的方法。
6.一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1-4中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010847444.4A CN112052464B (zh) | 2020-08-21 | 2020-08-21 | 对资源文件进行虚拟化保护的方法、智能终端、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010847444.4A CN112052464B (zh) | 2020-08-21 | 2020-08-21 | 对资源文件进行虚拟化保护的方法、智能终端、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112052464A CN112052464A (zh) | 2020-12-08 |
CN112052464B true CN112052464B (zh) | 2024-03-22 |
Family
ID=73600751
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010847444.4A Active CN112052464B (zh) | 2020-08-21 | 2020-08-21 | 对资源文件进行虚拟化保护的方法、智能终端、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112052464B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106293852A (zh) * | 2016-08-19 | 2017-01-04 | 北京奇虎科技有限公司 | 一种加固安装包的资源文件的方法和装置 |
CN108089880A (zh) * | 2017-12-28 | 2018-05-29 | 北京奇虎科技有限公司 | 对应用程序安装文件进行预处理的方法、装置和服务器 |
CN109657488A (zh) * | 2019-02-26 | 2019-04-19 | 北京智游网安科技有限公司 | 一种资源文件加密处理方法、智能终端及存储介质 |
CN109871704A (zh) * | 2019-03-19 | 2019-06-11 | 北京智游网安科技有限公司 | 基于Hook的Android资源文件防护方法、设备和存储介质 |
CN110781462A (zh) * | 2019-10-10 | 2020-02-11 | 郑州阿帕斯科技有限公司 | 一种资源的混淆方法和装置 |
-
2020
- 2020-08-21 CN CN202010847444.4A patent/CN112052464B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106293852A (zh) * | 2016-08-19 | 2017-01-04 | 北京奇虎科技有限公司 | 一种加固安装包的资源文件的方法和装置 |
CN108089880A (zh) * | 2017-12-28 | 2018-05-29 | 北京奇虎科技有限公司 | 对应用程序安装文件进行预处理的方法、装置和服务器 |
CN109657488A (zh) * | 2019-02-26 | 2019-04-19 | 北京智游网安科技有限公司 | 一种资源文件加密处理方法、智能终端及存储介质 |
CN109871704A (zh) * | 2019-03-19 | 2019-06-11 | 北京智游网安科技有限公司 | 基于Hook的Android资源文件防护方法、设备和存储介质 |
CN110781462A (zh) * | 2019-10-10 | 2020-02-11 | 郑州阿帕斯科技有限公司 | 一种资源的混淆方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112052464A (zh) | 2020-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108810894B (zh) | 终端授权方法、装置、计算机设备和存储介质 | |
CN107659632B (zh) | 一种文件加解密方法、装置及计算机可读存储介质 | |
JP6888011B2 (ja) | 信頼できる実行環境を有するモバイル装置 | |
US8892876B1 (en) | Secured application package files for mobile computing devices | |
AU2012337403B2 (en) | Cryptographic system and methodology for securing software cryptography | |
US9536063B2 (en) | Methods and apparatus for protecting software from unauthorized copying | |
CN111143869B (zh) | 应用程序包处理方法、装置、电子设备及存储介质 | |
US20160275019A1 (en) | Method and apparatus for protecting dynamic libraries | |
WO2016078130A1 (zh) | 一种防逆向apk文件的动态加载方法 | |
EP2420949A1 (en) | Information processing system, information processing method, information processing program, computer readable medium and computer data signal | |
CN111475524B (zh) | 基于***的数据处理方法、装置和计算机设备 | |
CN111193740B (zh) | 加密方法、装置、解密方法、计算机设备和存储介质 | |
CN107430650B (zh) | 保护计算机程序以抵御逆向工程 | |
US20210306304A1 (en) | Method and apparatus for distributing confidential execution software | |
CN111159658B (zh) | 字节码处理方法、***、装置、计算机设备和存储介质 | |
US9935766B2 (en) | Processor and processor system | |
WO2014150339A2 (en) | Method and system for enabling communications between unrelated applications | |
CN111191195A (zh) | 一种用于保护apk的方法和装置 | |
CN108959943B (zh) | 用于管理加密密钥的方法、装置、设备、存储介质以及相应车辆 | |
US9292708B2 (en) | Protection of interpreted source code in virtual appliances | |
CN108133147B (zh) | 可执行代码的保护方法、设备及可读存储介质 | |
CN108985096B (zh) | 一种Android SQLite数据库安全增强、安全操作方法以及装置 | |
CN112052464B (zh) | 对资源文件进行虚拟化保护的方法、智能终端、存储介质 | |
CN108521419B (zh) | 监察***文件的访问处理方法、装置和计算机设备 | |
US11061998B2 (en) | Apparatus and method for providing security and apparatus and method for executing security to protect code of shared object |
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 |