一种防逆向apk文件的动态加载方法

文档序号:6634811阅读:335来源:国知局
一种防逆向apk文件的动态加载方法
【专利摘要】本发明公开一种防逆向APK文件的动态加载方法,其包括步骤:加载第一Classes.dex文件,调用Entry.so文件,利用Entry.so文件对Encrypt’.so文件进行解密处理,得到解密后的Encrypt.so文件;利用Entry.so文件对第二Classes.dex文件进行解密,得到加固处理前的APK文件中的原Classes.dex文件;对原Classes.dex文件进行动态加载,并找到存放APK文件功能的源代码的物理地址,将源代码动态加载至内存;从物理内存上删除解密后的原Classes.dex文件。本发明可以规避现有Android逆向工具的反编译,增加反编译的难度,从而可以极大程度地提高APK文件的安全性。
【专利说明】-种防逆向APK文件的动态加载方法

【技术领域】
[0001] 本发明涉及移动终端应用安全领域,特别涉及一种防逆向APK文件的动态加载方 法。

【背景技术】
[0002] APK(AndroidPacKage的缩写)即Android安装包。将APK文件(即APK应用程 序)直接传到Android模拟器或Android操作系统的终端设备(比如安卓智能手机)中执 行即可安装。APK文件其实是zip格式,但后缀名被修改为apk,在windows系统上可以通 过解压缩工具(比如winrar软件)直接解压查看。解压APK文件后,一般的可看到的目录 结构如下表1所示:
[0003]

【权利要求】
1. 一种防逆向APK文件的动态加载方法,其特征在于,包括步骤: 加载第一 Classes, dex文件,调用Entry, so文件,利用Entry, so文件对Encrypt'· so 文件进行解密处理,得到解密后的Encrypt, so文件; 利用Entry, so文件对第二Classes, dex文件进行解密,得到加固处理前的APK文件中 的原Classes, dex文件; 对原Classes, dex文件进行动态加载,并找到存放APK文件功能的源代码的物理地址, 将源代码动态加载至内存; 从物理内存上删除解密后的原Classes, dex文件; 其中,第一 Classes, dex文件中仅包含原Classes, dex文件的的文件头部结构,第二 Classes, dex文件及Encrypt' . so文件存放在文件目录res之下,Entry, so文件存放在文 件目录libs之下,由第一 Classes, dex文件、AndroidManifest' · xml文件、文件目录res、 文件目录libs及resources, ars文件封装后形成所述防逆向APK文件。
2. 根据权利要求1所述一种防逆向APK文件的动态加载方法,其特征在于,对第二 Classes, dex文件进行解密之前还包括对原Classes, dex文件进行完整性检查的步骤。
3. 根据权利要求2所述一种防逆向APK文件的动态加载方法,其特征在于,利用第一 Classes, dex文件的文件头结构所包含字段信息,对解密获得的原Classes, dex文件进行 完整性检查。
4. 根据权利要求1所述一种防逆向APK文件的动态加载方法,其特征在于,对 原Classes, dex文件进行动态加载的具体包括:新建一个带有源程序Classes, dex的 DexClassLoader对象,通过反射的方式替换到系统默认的加载类中的属性mClassLoader。
5. 根据权利要求1所述一种防逆向APK文件的动态加载方法,其特征在于,根据原 Classes, dex文件中文件头部结构中data_size字段及data_off字段信息,并找到存放 APK文件功能的源代码的物理地址。
6. 根据权利要求1所述一种防逆向APK文件的动态加载方法,其特征在于,将源代码动 态加载至内存的步骤具体包括: 利用自定义的 onCreate 方法,通过 AndroidManifest 中 application 中的 meta-data 属性,找到源代码的物理地址,从而替换成源程序的Application ; 将内存中现有的"第一 Application文件"从调用集合中移除,并新建一个 Application对象app,将原Classes, dex文件的属性绑定至app,再把app加入到内存的调 用集合中; 由于组件Provider在onCreate方法前就被系统注册,因此把app绑定到源程序中 Provider的context上,然后启动系统级onCreate方法。
【文档编号】G06F21/51GK104318155SQ201410663307
【公开日】2015年1月28日 申请日期:2014年11月18日 优先权日:2014年11月18日
【发明者】刘鹏 申请人:刘鹏
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1