安卓应用的口令处理路径识别方法及使用该方法的装置的制造方法

文档序号:9922224阅读:189来源:国知局
安卓应用的口令处理路径识别方法及使用该方法的装置的制造方法
【技术领域】
[0001]本发明涉及安卓应用程序安全检测技术领域,更具体地说,涉及一种安卓应用的口令处理路径识别方法及使用该方法的装置。
【背景技术】
[0002]通常,在对安卓应用用户名、口令信息处理的分析中,主要依赖网络数据抓包的人工分析手段。人工分析手段的检测分析工作量大,还容易产生检测遗漏,效果不理想。伴随着反编译和静态分析技术的发展,反编译和静态分析技术开始运用于安卓应用代码逻辑分析之中。
[0003]目前,常见的识别安卓应用用户口令处理方法主要为前向识别方法。
[0004]该前向识别方法包括以下几个步骤:
[0005]—、定位用户密码输入框的位置,确定存储用户输入密码的关键变量;
[0006]二、按照传统的控制流分析技术,找寻到所有可能的函数调用路径;
[0007]三、对每一条路径进行分析,确定哪些路径包含了口令处理机制;
[0008]四、判定该安卓应用的口令处理机制是否存在安全隐患。
[0009]尽管前向识别方法能够快速准确的定位到密码输入框,但是,该方法无法准确有效地识别口令处理路径,该方法的误报率高,且该方法的口令处理路径分析及路径排查环节需消耗大量人力。

【发明内容】

[0010]本发明要解决的技术问题在于针对现有技术的上述缺陷,提供一种安卓应用的口令处理路径识别方法及使用该方法的装置。
[0011]本发明解决其技术问题所采用的技术方案是:构造一种安卓应用的口令处理路径识别方法,包括以下步骤;
[0012]S1、对待测安卓应用进行反汇编,以还原编译该款安卓应用的Smali代码;
[0013]S2、从该款安卓应用的Smali代码中查找该款安卓应用的口令输入框的标识符以及确定存在口令安全隐患的多个API在Smali代码中的位置;
[0014]S3、将各API的位置分别作为与该API对应的口令处理路径的起点,将存储口令输入框标识符的指令寄存器的位置作为与该API对应的口令处理路径的终点,依照设定的遍历规则对涉及该款安卓应用口令处理的特定指令的执行路径进行反向遍历,在反向遍历中绘制特定指令的执行路径,并将所绘制的特定指令执行路径作为口令处理路径进行输出显不O
[0015]在本发明上述安卓应用的口令处理路径识别方法中,所述步骤S2中所述确定存在口令安全隐患的多个API在Smali代码中的位置的步骤包括:
[0016]对名称分别为SQLite、SharedPreference、File 及 ContentProvider 的 API 在该款安卓应用的Smali代码中的位置进行扫描,并记录各个API在该款安卓应用的Smali代码中的位置信息。
[0017]在本发明上述安卓应用的口令处理路径识别方法中,所述步骤S3具体包括如下步骤:
[0018]S31、将各个API的位置分别作为执行与该API对应的口令处理路径反向遍历工作的起点,从起点位置查找存储任意一条特定指令的指令寄存器,读取该指令寄存器中的该条特定指令的代码,从该条特定指令的代码中截取涉及用户口令处理的一段切片代码;
[0019]S32、判断该段切片代码中是否包含有口令输入框的标识符,并记录口令输入框标识符判断结果;如该段切片代码中未包含口令输入框的标识符,则对该条特定指令进行解析,及判断该款安卓应用指令的执行流程图中是否存在与该条特定指令满足定义使用链条件的另一条特定指令;
[0020]S33、如判断该款安卓应用的指令执行流程图中存在与该条特定指令满足定义使用链条件的另一条特定指令,则对存储另一条特定指令的另一个指令寄存器进行访问,读取另一条特定指令的代码,从另一条特定指令代码中截取涉及口令处理的一段切片代码,之后返回上一步骤S32 ;否则,执行下一步骤S34 ;
[0021]S34、将该API位置作为与该API对应的口令处理路径反向遍历工作的起点,将存储有该条特定指令的指令寄存器的位置作为与该API对应的口令处理路径反向遍历的终点,绘制口令处理路径。
[0022]在本发明上述安卓应用的口令处理路径识别方法中,所述步骤S32中对该条特定指令进行解析的步骤包括:
[0023]解析该条特定指令,将解析所得的第一函数名称、第一参数、第一参数类型、第一返回值及第一返回值类型作为第一指令解析参考信息。
[0024]在本发明上述安卓应用的口令处理路径识别方法中,所述步骤S32还包括:判断该段切片代码中是否包含有用于表示口令处理路径沿反向出现分支及指向其它API的分支关键词,及在该段切片代码中出现该类分支关键词时,记录该类分支关键词,将该类分支关键词所指向的API作为执行本次口令处理路径反向遍历工作的续接位置,并在该续接位置继续执行本次口令处理路径反向遍历工作;其中,该类分支关键词包括if、switch。
[0025]在本发明上述安卓应用的口令处理路径识别方法中,所述步骤S33还包括:
[0026]对另一条特定指令进行解析,得到包含第二函数名称、第二参数类型、第二返回值及第二返回值类型的第二指令解析参考信息,将第二指令解析参考信息与第一指令解析参考信息进行比较;如第二指令解析参考信息与第一指令参考信息完全相同,则将与第一指令参考信息对应的特定指令的执行路径走向作为另一条特定指令的执行路径走向的判断依据。
[0027]在本发明上述安卓应用的口令处理路径识别方法中,在所述步骤S34之后还包括如下步骤:
[0028]S35、读取作为口令处理路径反向遍历终点的该指令寄存器中的该条特定指令,从该条特定指令代码中截取涉及用户口令处理的一段切片代码,判断该段切片代码是否包含有口令输入框的标识符;如该条切片代码包含有口令输入框的标识符,则将所绘制的该款安卓应用的口令处理路径进行输出显示;否则,停止以该API作为起点的口令处理路径反向遍历工作。
[0029]本发明还构造一种安卓应用的口令处理路径识别装置,所述装置包括反编译模块、API定位模块、口令输入框探测模块、口令处理路径识别模块、口令处理路径绘制模块及显示模块;
[0030]所述反编译模块用于对待测安卓应用进行反汇编,以还原用于编译该款安卓应用的Smali代码;
[0031]所述API定位模块用于确定存在口令安全隐患的多个API在该Smali代码中的位置;
[0032]所述口令输入框探测模块用于从该Smali代码中查找口令输入框的标识符;
[0033]所述口令处理路径识别模块用于将各个API的位置分别作为与该API对应的口令处理路径的起点,将存储口令输入框标识符的指令寄存器的位置作为该API对应的口令处理路径的终点,依着设定的口令处理路径反向遍历规则对涉及该款安卓应用口令处理的特定指令执行路径进行反向遍历;
[0034]所述口令处理路径绘制模块用于在该反向遍历过程中绘制特定指令执行路径,并将所绘制的特定指令执行路径作为该款安卓应用的口令处理路径输出到所述显示模块;
[0035]所述显示模块用于接收及显示该款安卓应用的口令处理路径。
[0036]在本发明上述安卓应用的口令处理路径识别装置中,所述装置还包括指令解析模块,用于对在前的特定指令进行解析,并将解析的函数、参数类型、返回值及返回值类型作为用于判断在后的特定指令的执行路径走向的指令解析参考信息。
[0037]在本发明上述安卓应用的口令处理路径识别装置中,所述口令处理路径识别模块还用于从每条特定指令的代码中截取涉及用户口令处理的一段切片代码,判断该段切片代码中是否包含有用于表示口令处理路径的反向出现分支并指向其它API位置的分支关键词,及在该段切片代码中出现该类分支关键词时,记录该类分支关键词,将该类分支关键词指向的API作为本次口令处理路径反向遍历的续接位置,并在该续接位置继续执行口令处理路径反向遍历工作;
[0038]所述口令处理路径识别模块还用于判断该段切片代码是否包含有口令输入框的标识符;如该段切片代码包含有口令输入框的标识符,则控制所述口令处理路径绘制模块将所绘制的特定指令执行路径作为该款安卓应用的口令处理路径输出到所述显示模块上进行显示;否则,停止本次口令处理路径反向遍历工作。
[0039]实施本发明安卓应用的口令处理路径识别方法及使用该方法的装置,可实现以下有益效果:
[0040]1、本发明采用了安卓应用口令处理路径的反向识别机制,将待测安卓应用中存在口令安全隐患的多个API的位置分别作为与该API对应的口令处理路径的起点,将存储口令输入框标识符的指令寄存器的位置作为与该API对应的口令处理路径的终点,将该款安卓应用的各条特定指令之间存在的定义使用链关系作为口令处理路径反向识别规则,对待测安卓应用的口令处理路径进行反向识别,并在口令路径反向识别过程中绘制出口令处理路径,实现了安卓应用口令处理路径的自动化识别,节省了大量的人力资源。
[0041]2
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1