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