一种资源文件加密处理方法、智能终端及存储介质技术

技术编号:20917785 阅读:21 留言:0更新日期:2019-04-20 09:57
本发明专利技术公开了一种资源文件加密处理方法、智能终端及存储介质,所述方法包括:编译生成APK程序的动态库文件,通过反射拦截安卓系统运行接口获取资源数据;将APK文件进行解压,将解压后的APK文件中的预设文件进行加密,压缩成第一图片文件和第二图片文件后进行存储;将动态库文件拷贝至解压后的APK文件中库文件目录下,并将APK程序的动态库文件对应的调用方法添加到编译器代码中;将处理完后的编译器代码进行回编译成可执行文件,并替换原始可执行文件,将文件夹进行压缩打包成新的APK文件,并重新签名。本发明专利技术通过对APK资源文件的进行加密和隐藏,有效防止APK资源被随意提取,从而提高资源文件的安全性。

A Resource File Encryption Processing Method, Intelligent Terminal and Storage Media

The invention discloses a method for encrypting resource files, an intelligent terminal and a storage medium. The method comprises compiling and generating dynamic library files of APK programs, acquiring resource data by reflecting and intercepting the operating interface of Android system, decompressing APK files, encrypting the preset files of decompressed APK files, and compressing them into the first picture file and the second picture file. Storage; Copy the dynamic library file to the library file directory of the decompressed APK file, and add the corresponding calling method of the dynamic library file of the APK program to the compiler code; recompile the processed compiler code into an executable file, replace the original executable file, compress and package the folder into a new APK file, and re-sign it. By encrypting and hiding APK resource files, the invention effectively prevents APK resources from being extracted at will, thereby improving the security of resource files.

【技术实现步骤摘要】
一种资源文件加密处理方法、智能终端及存储介质
本专利技术涉及计算机应用
,尤其涉及一种资源文件加密处理方法、智能终端及存储介质。
技术介绍
基于Android系统的APK(AndroidPackage,即Android安装包)文件是JavaJAR包格式的扩展,也是ZIP文件格式的扩展格式。APK文件以.apk为后缀,APK文件主要包含:代码、资源、签名文件等。具体而言,APK文件包含:AndroidManifest.xml,该文件用来声明应用程序的包名称、版本、组件和其他数据;classes.dex,该文件包含应用程序的可执行代码,该文件格式是DalvikVM的原生DES格式;resources.arsc,该文件是资源索引表,包含res下的各类资源,如字符串和类型等;assets,该目录下存放着资源文件,如数据库、字体文件、媒体文件、图片文件等;lib,该目录下存放着库文件;META-INF,该目录下存放着签名文件;res,该目录下存放着资源文件;和assets目录的差异是:res目录下的子目录是规定好的,除了raw子目录,其他的子目录都参与编译,这些子目录下的资源是通过编译出的R类在代码中访问,而assets目录下的资源子目录的建立则不受限制;assets目录下的资源访问是直接通过引用文件名。因此,不法分子可以通过windows的WinRAR或者linux的unizip就能直接将APK文件解压,轻而易举就可以提取上述任意类型目录、文件,由于APK文件中的资源文件可能包含图片资源、音视频资源、页面布局资源等核心技术,这些核心技术一旦泄露就会给个人或者企业带来很大的风险。因此,现有技术还有待于改进和发展。
技术实现思路
本专利技术的主要目的在于提供一种资源文件加密处理方法、智能终端及存储介质,旨在解决现有技术中APK文件容易被盗取,解压后导致重要信息被泄露的问题。为实现上述目的,本专利技术提供一种资源文件加密处理方法,所述资源文件加密处理方法包括如下步骤:编译生成APK程序的动态库文件,通过反射拦截安卓系统运行接口获取资源数据;将APK文件进行解压,将解压后的APK文件中的预设文件进行加密,压缩成第一图片文件和第二图片文件后进行存储;将动态库文件拷贝至解压后的APK文件中库文件目录下,并将APK程序的动态库文件对应的调用方法添加到编译器代码中;将处理完后的编译器代码进行回编译成可执行文件,并替换原始可执行文件,将文件夹进行压缩打包成新的APK文件,并重新签名。可选地,所述编译生成APK程序的动态库文件,通过反射拦截安卓系统运行接口获取资源数据还包括:获取系统查找res目录下资源的关键函数,当系统找不到隐藏的资源时,从隐藏资源集合的资源压缩包进行查找,用于绕过系统对资源的检测。可选地,所述第一图片文件为文件名为icon.png的图片文件,所述第二图片文件文件名为launcher.png的图片文件。可选地,所述将APK文件进行解压,将解压后的APK文件中的预设文件进行加密,压缩成第一图片文件和第二图片文件后进行存储具体包括:将APK文件进行解压,将解压后的APK文件中库文件目录下的资源文件进行加密处理,并压缩成文件名为icon.png的图片文件;将解压后的APK文件中assets、raw和res目录下的资源文件进行加密处理,并压缩成文件名为launcher.png的图片文件;将文件名为icon.png的图片文件和文件名为launcher.png的图片文件放置于解压后的org/apache/文件夹目录中。可选地,所述将动态库文件拷贝至解压后的APK文件中库文件目录下,并将APK程序的动态库文件对应的调用方法添加到编译器代码中具体包括:将动态库文件拷贝至解压后的APK文件中库文件目录下;将解压出来的class.dex文件进行反编译成smali文件,将APK程序的动态库文件对应的调用方法添加到smali代码中。可选地,所述将处理完后的编译器代码进行回编译成可执行文件,并替换原始可执行文件,将文件夹进行压缩打包成新的APK文件,并重新签名具体包括:将处理完后的smali代码进行回编译成dex文件,并替换原始的dex文件;将文件夹进行压缩打包成新的APK文件,并重新签名。可选地,所述关键函数包括:安卓的AssetManager::openNonAsset函数和ApkAssets::Open函数、系统库libziparchive.so的FindEntry函数和GetFileDescriptor函数。可选地,所述加密处理为通过加密工具对APK资源和dex文件进行加密处理实现安全防护。此外,为实现上述目的,本专利技术还提供一种智能终端,其中,所述智能终端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的资源文件加密处理程序,所述资源文件加密处理程序被所述处理器执行时实现如上所述的资源文件加密处理方法的步骤。此外,为实现上述目的,本专利技术还提供一种存储介质,其中,所述存储介质存储有资源文件加密处理程序,所述资源文件加密处理程序被处理器执行时实现如上所述的资源文件加密处理方法的步骤。本专利技术公开了一种资源文件加密处理方法、智能终端及存储介质,所述方法包括:编译生成APK程序的动态库文件,通过反射拦截安卓系统运行接口获取资源数据;将APK文件进行解压,将解压后的APK文件中的预设文件进行加密,压缩成第一图片文件和第二图片文件后进行存储;将动态库文件拷贝至解压后的APK文件中库文件目录下,并将APK程序的动态库文件对应的调用方法添加到编译器代码中;将处理完后的编译器代码进行回编译成可执行文件,并替换原始可执行文件,将文件夹进行压缩打包成新的APK文件,并重新签名。本专利技术通过对APK资源文件的进行加密和隐藏,有效防止APK资源被随意提取,从而提高资源文件的安全性。附图说明图1是本专利技术资源文件加密处理方法的较佳实施例的流程图;图2是本专利技术资源文件加密处理方法的较佳实施例中步骤S20的流程图;图3是本专利技术资源文件加密处理方法的较佳实施例中步骤S30的流程图;图4是本专利技术资源文件加密处理方法的较佳实施例中步骤S40的流程图;图5为本专利技术智能终端的较佳实施例的运行环境示意图。具体实施方式为使本专利技术的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本专利技术进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。本专利技术较佳实施例所述的资源文件加密处理方法,如图1所示,所述资源文件加密处理方法包括以下步骤:步骤S10、编译生成APK程序的动态库文件,通过反射拦截安卓系统运行接口获取资源数据。具体地,编译生成libhts.so(APK程序的动态库文件),通过反射hook(挂钩”或“钩子”,在对Android系统中的系统事件进行hook后,一旦发生已hook事件,对该事件进行hook的程序就会收到系统的通知,这时程序就能在第一时间对该事件做出响应)安卓系统运行接口实现代理资源访问,其中对应的“反射hook安卓系统运行接口”为安卓的“AssetManager::openNonAsset”、“ApkAssets::Open”、系统库libziparchive.so的“FindEntry”和“GetFil本文档来自技高网
...

【技术保护点】
1.一种资源文件加密处理方法,其特征在于,所述资源文件加密处理方法包括:编译生成APK程序的动态库文件,通过反射拦截安卓系统运行接口获取资源数据;将APK文件进行解压,将解压后的APK文件中的预设文件进行加密,压缩成第一图片文件和第二图片文件后进行存储;将动态库文件拷贝至解压后的APK文件中库文件目录下,并将APK程序的动态库文件对应的调用方法添加到编译器代码中;将处理完后的编译器代码进行回编译成可执行文件,并替换原始可执行文件,将文件夹进行压缩打包成新的APK文件,并重新签名。

【技术特征摘要】
1.一种资源文件加密处理方法,其特征在于,所述资源文件加密处理方法包括:编译生成APK程序的动态库文件,通过反射拦截安卓系统运行接口获取资源数据;将APK文件进行解压,将解压后的APK文件中的预设文件进行加密,压缩成第一图片文件和第二图片文件后进行存储;将动态库文件拷贝至解压后的APK文件中库文件目录下,并将APK程序的动态库文件对应的调用方法添加到编译器代码中;将处理完后的编译器代码进行回编译成可执行文件,并替换原始可执行文件,将文件夹进行压缩打包成新的APK文件,并重新签名。2.根据权利要求1所述的资源文件加密处理方法,其特征在于,所述编译生成APK程序的动态库文件,通过反射拦截安卓系统运行接口获取资源数据还包括:获取系统查找res目录下资源的关键函数,当系统找不到隐藏的资源时,从隐藏资源集合的资源压缩包进行查找,用于绕过系统对资源的检测。3.根据权利要求1所述的资源文件加密处理方法,其特征在于,所述第一图片文件为文件名为icon.png的图片文件,所述第二图片文件文件名为launcher.png的图片文件。4.根据权利要求3所述的资源文件加密处理方法,其特征在于,所述将APK文件进行解压,将解压后的APK文件中的预设文件进行加密,压缩成第一图片文件和第二图片文件后进行存储具体包括:将APK文件进行解压,将解压后的APK文件中库文件目录下的资源文件进行加密处理,并压缩成文件名为icon.png的图片文件;将解压后的APK文件中assets、raw和res目录下的资源文件进行加密处理,并压缩成文件名为launcher.png的图片文件;将文件名为icon.png的图片文件和文件名为launcher.png的图片文件放置于解压后的org/apache/文件夹目录...

【专利技术属性】
技术研发人员:龙柏林廖兴龙
申请(专利权)人:北京智游网安科技有限公司
类型:发明
国别省市:北京,11

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

1