[发明专利]一种安卓加固插件的逆向处理方法有效
申请号: | 201611156778.7 | 申请日: | 2016-12-15 |
公开(公告)号: | CN106778271B | 公开(公告)日: | 2019-05-14 |
发明(设计)人: | 李瑞轩;张宏民;辜希武;章衡;韩洪木;汤俊伟 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F21/56 | 分类号: | G06F21/56;G06F8/74 |
代理公司: | 华中科技大学专利中心 42201 | 代理人: | 赵伟 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种安卓加固插件的逆向处理方法,包括如下步骤:对应用的可执行文件dex进行图谱化处理,生成dex文件的可视化图谱;获取虚拟机对Java类的类加载的关键函数,确定逆向插件的时间节点;对安卓系统的Dalvik虚拟机进行修改,将应用中所有的类一次性的进行类加载和初始化,将所有的类将解密并加载到内存中,收集内存中所有的类信息,将所有逆向后的类进行重新组合生成新的dex文件,由于在类初始化过程中会修改Java类在内存中的指令,在收集内存中的信息时进行修正,因此本发明提供的这种逆向处理方法可以获取大部分的加固插件源代码,并且自动化程度较高,以较小的性能开销为代价实现了针对安卓加固插件的逆向处理。 | ||
搜索关键词: | 一种 加固 插件 逆向 处理 方法 | ||
【主权项】:
1.一种安卓加固插件的逆向处理方法,其特征在于,通过修改安卓系统虚拟机类加载机制和初始化方法,在加固插件加载其第一个Java类之前将所述加固插件中所有的Java类主动的遍历并加载进内存中,初始化所有的Java类,将内存中所有的关于所述加固插件的信息收集起来组装成新的odex文件,得到逆向后的插件原始代码信息;采用所述方法对未知插件进行逆向处理的方法,具体包括如下步骤:(1)通过应用加固服务平台对所述未知插件进行加固;并对加固插件进行图谱化处理,确定应用加固服务平台对插件的加固优化参数;(2)修改安卓系统源码,在模拟器上监控获取加固插件的动态加载路径;(3)根据安卓系统中虚拟机类加载的关键路径,修改虚拟机初始化过程,在类初始化阶段对加固插件进行逆向,生成逆向后的odex文件,并改变虚拟机控制变量的值;(4)触发插件下载,在插件执行过程中根据虚拟机控制变量的值识别插件中所有的Java类在内存中的位置;遍历所述逆向后的odex文件中的Java类,主动进行类加载和初始化,根据内存中存储的逆向后的信息生成新的odex文件;(5)利用开源的工具对所述新的odex文件进行反编译,获得测试用加固插件的smali代码;可通过将所述smali代码与其源代码进行比较,获知恶意攻击信息。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201611156778.7/,转载请声明来源钻瓜专利网。