一种安卓加固插件的逆向处理方法与流程

文档序号:12467768阅读:来源:国知局

技术特征:

1.一种安卓加固插件的逆向处理方法,其特征在于,通过修改安卓系统虚拟机类加载机制和初始化方法,在加固插件加载其第一个Java类之前将所述加固插件中所有的Java类主动的遍历并加载进内存中,初始化所有的Java类,将内存中所有的关于所述加固插件的信息收集起来组装成新的odex文件,得到逆向后的插件原始代码信息。

2.如权利要求1所述的逆向处理方法,其特征在于,采用所述方法对未知插件进行逆向处理的方法,具体包括如下步骤:

(1)通过应用加固服务平台对所述未知插件进行加固;并对加固插件进行图谱化处理,确定应用加固服务平台对插件的加固优化参数;

(2)修改安卓系统源码,在模拟器上监控获取加固插件的动态加载路径;

(3)根据安卓系统中虚拟机类加载的关键路径,修改虚拟机初始化过程,在类初始化阶段对加固插件进行逆向,生成逆向后的odex文件,并改变虚拟机控制变量的值;

(4)触发插件下载,在插件执行过程中根据虚拟机控制变量的值识别插件中所有的Java类在内存中的位置;

遍历所述逆向后的odex文件中的Java类,主动进行类加载和初始化,根据内存中存储的逆向后的信息生成新的odex文件;

(5)利用开源的工具对所述新的odex文件进行反编译,获得测试用加固插件的smail代码;可通过将所述smail代码与其源代码进行比较,获知恶意攻击信息。

3.如权利要求2所述的逆向处理方法,其特征在于,所述步骤(2)包括如下子步骤:

(2.1)根据开源的动态加载框架源代码,找出动态加载odex文件的调用接口;

(2.2)修改所述调用接口,在模拟器上通过日志监控获取加固插件的动态加载的路径。

4.如权利要求2或3所述的逆向处理方法,其特征在于,所述步骤(3)包括如下子步骤:

(3.1)根据安卓系统虚拟机执行Java类的过程,跟踪类加载和初始化的函数调用过程,获取初始化的关键函数;

(3.2)遍历所有的Java类,根据所述关键函数对类进行初始化;

(3.3)在类初始化阶段对测试用加固插件进行逆向,生成逆向后的odex文件,并改变虚拟机控制变量的值。

5.如权利要求2或3所述的逆向处理方法,其特征在于,所述步骤(4)包括如下子步骤:

(4.1)触发加固插件的下载;所述加固插件首次执行时触发控制变量的改变;

(4.2)根据控制变量的值识别出加固插件中所有的Java类在内存中的位置,并将逆向后的odex文件路径传递到逆向模块;

(4.3)逆向模块对逆向后的odex文件中所有的Java类进行遍历,主动进行类加载和初始化,并将逆向后的信息存储到内存;

(4.4)根据在内存中收集到的逆向后的信息生成新的odex文件。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1