资源文件的加载方法、装置和加固资源文件的方法、装置制造方法及图纸

技术编号:15436991 阅读:147 留言:0更新日期:2017-05-25 19:12
本发明专利技术公开了资源文件的加载方法、装置和加固资源文件的方法、装置。其中资源文件的加载方法包括:在安卓安装包对应的应用加载资源文件时,判断待加载的资源文件是否为加密资源文件;若是,则获取读/写资源文件的相关函数被调用的事件;将指定的解密逻辑插入该读/写资源文件的相关函数中,由所述解密逻辑对所述加密资源文件进行解密,得到解密后的资源文件;将解密后的资源文件加载到所述应用的进程中。该技术方案实现了资源文件的动态解密,一方面使得破解者无法通过对安卓安装包进行解包得到可直接利用的资源文件,另一方面在应用需要加载资源文件时再执行解密,效率高,对系统资源的浪费小。

Method and device for loading resource file, method and device for reinforcing resource file

The invention discloses a loading method of a resource file, a device and a method and a device for reinforcing a resource file. Which includes loading method resource file: application to load the resource file corresponding to the Android installation package, to determine whether the file is to be loaded resource resource file encryption; if so, obtaining the read / write function of the resource file is called the event; the specified decryption logic insert relevant function of the read / write resource file in the decryption of the encrypted logic resource file decryption, decrypt the resource file; then the decrypted resource file is loaded into the application process. The scheme realizes the dynamic decryption of the resource file, on one hand makes it can not through the Android installation package unpack obtained can be directly used in the resource file, on the other hand to perform decryption, to load the resource file application system of high efficiency, small waste of resources.

【技术实现步骤摘要】
资源文件的加载方法、装置和加固资源文件的方法、装置
本专利技术涉及计算机
,特别涉及资源文件的加载方法、装置和加固资源文件的方法、装置。
技术介绍
资源文件的种类很多,例如图片文件等不需要进行编译加工的文件,这些文件在应用运行过程中可以被加载来实现相应的功能。以游戏应用为例,其中某个按钮的贴图为带有“Back”字样的图片,由于该游戏应用未发布中文版本,在该游戏应用未对资源文件进行加固的情况下,未经授权的技术人员可以通过对安装包进行解包,利用图片处理技术修改图片中的“Back”为“返回”,用修改后的文件替换原文件来实现对原游戏应用的汉化处理。为避免这样的情况发生,许多应用开发者都会对应用的资源文件进行加固处理,因此在应用的安装包中存在的资源文件是加密资源文件,而应用实际需要的是未加密的资源文件,如何在保证资源文件安全的同时,还使得应用可以正确运行是亟待解决的问题。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的资源文件的加载方法、装置和加固资源文件的方法、装置。依据本专利技术的一个方面,提供了一种资源文件的加载方法,包括:在安卓安装包对应的应用加载资源文件时,判断待加载的资源文件是否为加密资源文件;若是,则获取读/写资源文件的相关函数被调用的事件;将指定的解密逻辑插入该读/写资源文件的相关函数中,由所述解密逻辑对所述加密资源文件进行解密,得到解密后的资源文件;将解密后的资源文件加载到所述应用的进程中。可选地,所述在安卓安装包对应的应用加载资源文件时,判断待加载的资源文件是否为加密资源文件包括:获取加载资源文件的相关函数被调用的事件;提取所述加载资源文件的相关函数中的路径cookie值,根据所述路径cookie值判断判断待加载的资源文件是否为加密资源文件。可选地,其中,该方法还包括:在所述安卓安装包对应的应用启动时,读取加密资源文件的配置文件到内存中;所述根据所述路径cookie值判断判断待加载的资源文件是否为加密资源文件包括:将所述加载资源文件的相关函数中的路径cookie值与所述资源文件的配置文件中的路径cookie值进行匹配,若存在匹配项,则判断所述待加载的资源文件为加密资源文件。可选地,所述将解密后的资源文件加载到所述应用的进程中包括:反射调用安卓系统的加载资源文件的应用程序接口API,将解密后的资源文件加载到所述应用的进程中。可选地,所述反射调用安卓系统的加载资源文件的应用程序接口API包括:反射调用AssetManager类中的addAssetPath方法,获取所述解密后的资源文件的路径cookie值。可选地,所述将解密后的资源文件加载到所述应用的进程中包括:将所述加载资源文件的相关函数中的路径cookie值修改为所述解密后的资源文件的路径cookie值。可选地,所述加密资源文件是通过对安卓安装包的res目录下指定的资源文件进行整体加密得到的加密资源文件压缩包。可选地,该方法还包括:在所述安卓安装包对应的应用启动时,将安卓安装包中的加密资源文件压缩包拷贝至指定位置。依据本专利技术的另一方面,提供了一种加固资源文件的方法,包括:从安卓安装包中提取指定的资源文件;对所述指定的资源文件进行加密,得到加密资源文件;从所述安卓安装包中删除所述指定的资源文件,并将加密资源文件存放至所述安卓安装包的指定目录下;生成与所述加密资源文件对应的加载程序,插入到所述安卓安装包中;所述加载程序用于执行如上述任一项所述的方法。可选地,所述从安卓安装包中提取指定的资源文件,对所述指定的资源文件进行加密,得到加密资源文件包括:从所述安卓安装包的res目录中提取指定类型的资源文件,并对提取的所有资源文件进行整体加密,得到加密资源文件压缩包。可选地,所述生成与所述加密资源文件对应的加载程序,插入到所述安卓安装包中包括:在所述安卓安装包中的安卓配置文件AndroidManifest.xml中声明:当所述安装包被安装后,每次启动对应的应用时,首先运行所述加载程序。可选地,所述生成与所述加密资源文件对应的加载程序,插入到所述安卓安装包中插入到所述安装包中包括:对所述安卓安装包增加外壳;生成与所述加密资源文件对应的加载程序,插入到所述外壳中。依据本专利技术的又一方面,提供了一种资源文件的加载装置,包括:判断单元,适于在安卓安装包对应的应用加载资源文件时,判断待加载的资源文件是否为加密资源文件;解密单元,适于在待加载的资源文件为加密资源文件时,获取读/写资源文件的相关函数被调用的事件,将指定的解密逻辑插入该读/写资源文件的相关函数中,由所述解密逻辑对所述加密资源文件进行解密,得到解密后的资源文件;加载单元,适于将解密后的资源文件加载到所述应用的进程中。可选地,所述判断单元,适于获取加载资源文件的相关函数被调用的事件;提取所述加载资源文件的相关函数中的路径cookie值,根据所述路径cookie值判断判断待加载的资源文件是否为加密资源文件。可选地,该装置还包括:配置文件读取单元,适于在所述安卓安装包对应的应用启动时,读取加密资源文件的配置文件到内存中;所述判断单元,适于将所述加载资源文件的相关函数中的路径cookie值与所述资源文件的配置文件中的路径cookie值进行匹配,若存在匹配项,则判断所述待加载的资源文件为加密资源文件。可选地,所述加载单元,适于反射调用安卓系统的加载资源文件的应用程序接口API,将解密后的资源文件加载到所述应用的进程中。可选地,所述加载单元,适于反射调用AssetManager类中的addAssetPath装置,获取所述解密后的资源文件的路径cookie值。可选地,所述加载单元,适于将所述加载资源文件的相关函数中的路径cookie值修改为所述解密后的资源文件的路径cookie值。可选地,所述加密资源文件是通过对安卓安装包的res目录下指定的资源文件进行整体加密得到的加密资源文件压缩包。可选地,该装置还包括:拷贝单元,适于在所述安卓安装包对应的应用启动时,将安卓安装包中的加密资源文件压缩包拷贝至指定位置。依据本专利技术的再一方面,提供了一种加固资源文件的装置,包括:提取单元,适于从安卓安装包中提取指定的资源文件;加密单元,适于对所述指定的资源文件进行加密,得到加密资源文件;安装包修改单元,适于从所述安卓安装包中删除所述指定的资源文件,并将加密资源文件存放至所述安卓安装包的指定目录下;将如上述任一项所述的资源文件的加载装置插入到安卓安装包中。可选地,所述提取单元,适于从所述安卓安装包的res目录中提取指定类型的资源文件,并对提取的所有资源文件进行整体加密,得到加密资源文件压缩包。可选地,所述安装包修改单元,适于在所述安卓安装包中的安卓配置文件AndroidManifest.xml中声明:当所述安装包被安装后,每次启动对应的应用时,首先运行所述资源文件的加载装置。可选地,所述安装包修改单元,适于对所述安卓安装包增加外壳;将如上述任一项所述的资源文件的加载装置插入到所述外壳中。由上述可知,本专利技术的技术方案,在安卓应用加载资源文件时,如果判断待加载的资源文件是加密资源文件,那么通过监控读/写资源文件的相关函数,获取到读/写资源文件的相关函数被调用的事件,将预设的解密逻辑插入到函数中本文档来自技高网...
资源文件的加载方法、装置和加固资源文件的方法、装置

【技术保护点】
一种资源文件的加载方法,其中,该方法包括:在安卓安装包对应的应用加载资源文件时,判断待加载的资源文件是否为加密资源文件;若是,则获取读/写资源文件的相关函数被调用的事件;将指定的解密逻辑插入该读/写资源文件的相关函数中,由所述解密逻辑对所述加密资源文件进行解密,得到解密后的资源文件;将解密后的资源文件加载到所述应用的进程中。

【技术特征摘要】
1.一种资源文件的加载方法,其中,该方法包括:在安卓安装包对应的应用加载资源文件时,判断待加载的资源文件是否为加密资源文件;若是,则获取读/写资源文件的相关函数被调用的事件;将指定的解密逻辑插入该读/写资源文件的相关函数中,由所述解密逻辑对所述加密资源文件进行解密,得到解密后的资源文件;将解密后的资源文件加载到所述应用的进程中。2.如权利要求1所述的方法,其中,所述在安卓安装包对应的应用加载资源文件时,判断待加载的资源文件是否为加密资源文件包括:获取加载资源文件的相关函数被调用的事件;提取所述加载资源文件的相关函数中的路径cookie值,根据所述路径cookie值判断判断待加载的资源文件是否为加密资源文件。3.如权利要求2所述的方法,其中,该方法还包括:在所述安卓安装包对应的应用启动时,读取加密资源文件的配置文件到内存中;所述根据所述路径cookie值判断判断待加载的资源文件是否为加密资源文件包括:将所述加载资源文件的相关函数中的路径cookie值与所述资源文件的配置文件中的路径cookie值进行匹配,若存在匹配项,则判断所述待加载的资源文件为加密资源文件。4.一种加固资源文件的方法,其中,该方法包括:从安卓安装包中提取指定的资源文件;对所述指定的资源文件进行加密,得到加密资源文件;从所述安卓安装包中删除所述指定的资源文件,并将加密资源文件存放至所述安卓安装包的指定目录下;生成与所述加密资源文件对应的加载程序,插入到所述安卓安装包中;所述加载程序用于执行如权利要求1-3中任一项所述的方法。5.如权利要求4所述的方法,其中,所述从安卓安装包中提取指定的资源文件,对所述指定的资源文件进行加密,得到加密资源文件包括:从所述安卓安装包的res目录中提取指定类型的资源文件,并对提...

【专利技术属性】
技术研发人员:余奕飞
申请(专利权)人:北京奇虎科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1