[发明专利]一种基于Java反射机制的安卓应用自动脱壳方法在审
申请号: | 201610061008.8 | 申请日: | 2016-01-28 |
公开(公告)号: | CN105740708A | 公开(公告)日: | 2016-07-06 |
发明(设计)人: | 陈伟腾;陈钟;李青山;关志;陈果;高健博;秦煜;李洪生;轩志朋;王晓青 | 申请(专利权)人: | 博雅网信(北京)科技有限公司;北京大学 |
主分类号: | G06F21/56 | 分类号: | G06F21/56 |
代理公司: | 沈阳东大知识产权代理有限公司 21109 | 代理人: | 梁焱 |
地址: | 100080 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 java 反射 机制 应用 自动 脱壳 方法 | ||
技术领域
本发明属于移动互联网网络安全技术领域,具体涉及一种基于Java反射机制的安卓应用自动脱壳方法。
背景技术
Android开发者常常面临的一个问题就是防破解、防二次打包;现如今,安全问题越来越重要,越来越多的Android开发者也开始寻求安全的保护方案;为了加强APP安全性,越来越多的开发者选择APP加固方案对APP进行加固保护来防止二次打包(盗版)、数据篡改等风险;目前恶意代码往往也会采用加固技术对抗木马查杀,为了精确定位恶意代码,需要使用相应的脱壳技术。
现有技术中,AppSpear和DexHunter系统都是基于Android系统源码开发,其中AppSpear采用模拟人工点击应用以触发执行所有代码,同时通过记录所有执行过的指令来还原代码,可能导致有些代码没有触发从而无法恢复;而DexHunter采用主动触发所有代码,在代码即将执行前一刻进行收集,在对抗某些加固技术是可行的,但是在对抗像百度加固这样只有真正执行代码之后才进行还原的是无法恢复完整的代码。
发明内容
针对现有技术的不足,本发明提出一种基于Java反射机制的安卓应用自动脱壳方法,以达到保证DEX文件的完整性和完整脱壳的目的。
一种基于Java反射机制的安卓应用自动脱壳方法,包括以下步骤:
步骤1、定位内存中的安卓应用可执行文件;
步骤2、确定上述可执行文件中所有需要被转存的类的类型描述符,并利用java的反射机制获取所有类所声明的域和方法,并进一步获取域和方法的信息;
步骤3、从可执行文件中获取所有已知的解密方法及其参数,并利用java的反射机制进行动态调用,实时对处于加密状态下的域和方法信息进行解密;
步骤4、根据解密后的域和方法重写可执行文件,完成安卓应用的自动脱壳。
步骤1所述的定位内存中的安卓应用可执行文件,具体为:从Dalvik虚拟机运行时保存的全局变量中获取。
步骤2所述的域和方法的信息,具体为:域的信息包括:名称、类型、标志符和值;方法的信息包括:名称、返回值类型、参数类型、访问标志和代码地址。
步骤3所述的从可执行文件中获取所有已知的解密方法及其参数,具体为:通过构造控制流图的方式并采用到达定值算法获取。
本发明优点:
本发明提出一种基于Java反射机制的安卓应用自动脱壳方法,该方法相比AppSpear被动触发采用主动触发的模式保证DEX文件的完整性,相比dexhunter保证完整脱壳,dexhunter可以得到被保护的dex,但某些方法依然处于加密状态,而本发明通过收集所有解密操作并动态执行,使得所有方法都处于解密状态;此外,以上两种基于Android系统源码开发的系统对于系统依赖强,需要针对不同版本系统分别开发,难以扩展维护,本发明基于Java反射机制,轻量且在各版本Android系统都适用。
附图说明
图1为本发明一种实施例的基于Java反射机制的安卓应用自动脱壳方法流程图;
图2为本发明一种实施例的基于Java反射机制的安卓应用自动脱壳过程示意图。
具体实施方式
下面结合附图对本发明一种实施例做进一步说明。
本发明实施例中,如图1和图2所示,基于Java反射机制的安卓应用自动脱壳方法,包括以下步骤:
步骤1、定位内存中的安卓应用可执行文件;
Android加固技术通常会采用多种方案进行DEX隐藏(e.g.擦除DEX头部标识),但Dalvik虚拟机运行时系统将会把所有已经加载到内存的DEX文件保存在一个全局变量gDvm里;本发明实施例通过dlopen、dlsym函数动态加载libdvm.so,并获取到全局变量gDvm的地址,通过这个结构最终获取到pDexFile,即已加载DEX内存地址;
步骤2、确定上述可执行文件中所有需要被转存的类的类型描述符,并利用java的反射机制获取所有类所声明的域和方法,并进一步获取域和方法的信息;具体步骤如下:
步骤2-1、确定可执行文件中所有需要被转存的类的类型描述符;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于博雅网信(北京)科技有限公司;北京大学,未经博雅网信(北京)科技有限公司;北京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610061008.8/2.html,转载请声明来源钻瓜专利网。