首页> 中国专利> 安卓应用的口令处理路径识别方法及使用该方法的装置

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

摘要

本发明公开了一种安卓应用的口令处理路径识别方法及使用该方法的装置。本发明安卓应用的口令处理路径识别方法包括以下步骤:S1、对待测安卓应用进行反汇编,得到该款安卓应用的Smali代码;S2、从该款安卓应用的Smali代码中查找该款安卓应用的口令输入框的标识符以及确定存在口令安全隐患的多个API在Smali代码中的位置;S3、将各API的位置分别作为与该API对应的口令处理路径的起点,将存储口令输入框标识符的指令寄存器的位置作为与该API对应的口令处理路径的终点,依照设定的遍历规则对涉及该款安卓应用口令处理的特定指令的执行路径进行反向遍历,同时绘制特定指令的执行路径,并将所绘制的特定指令执行路径作为该款安卓应用的口令处理路径进行输出显示。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-07-13

    授权

    授权

  • 2016-07-20

    实质审查的生效 IPC(主分类):G06F21/56 申请日:20141125

    实质审查的生效

  • 2016-06-22

    公开

    公开

说明书

技术领域

本发明涉及安卓应用程序安全检测技术领域,更具体地说,涉及一种安 卓应用的口令处理路径识别方法及使用该方法的装置。

背景技术

通常,在对安卓应用用户名、口令信息处理的分析中,主要依赖网络数 据抓包的人工分析手段。人工分析手段的检测分析工作量大,还容易产生检 测遗漏,效果不理想。伴随着反编译和静态分析技术的发展,反编译和静态 分析技术开始运用于安卓应用代码逻辑分析之中。

目前,常见的识别安卓应用用户口令处理方法主要为前向识别方法。

该前向识别方法包括以下几个步骤:

一、定位用户密码输入框的位置,确定存储用户输入密码的关键变量;

二、按照传统的控制流分析技术,找寻到所有可能的函数调用路径;

三、对每一条路径进行分析,确定哪些路径包含了口令处理机制;

四、判定该安卓应用的口令处理机制是否存在安全隐患。

尽管前向识别方法能够快速准确的定位到密码输入框,但是,该方法无 法准确有效地识别口令处理路径,该方法的误报率高,且该方法的口令处理 路径分析及路径排查环节需消耗大量人力。

发明内容

本发明要解决的技术问题在于针对现有技术的上述缺陷,提供一种安卓 应用的口令处理路径识别方法及使用该方法的装置。

本发明解决其技术问题所采用的技术方案是:构造一种安卓应用的口令 处理路径识别方法,包括以下步骤;

S1、对待测安卓应用进行反汇编,以还原编译该款安卓应用的Smali代码;

S2、从该款安卓应用的Smali代码中查找该款安卓应用的口令输入框的标 识符以及确定存在口令安全隐患的多个API在Smali代码中的位置;

S3、将各API的位置分别作为与该API对应的口令处理路径的起点,将 存储口令输入框标识符的指令寄存器的位置作为与该API对应的口令处理路 径的终点,依照设定的遍历规则对涉及该款安卓应用口令处理的特定指令的 执行路径进行反向遍历,在反向遍历中绘制特定指令的执行路径,并将所绘 制的特定指令执行路径作为口令处理路径进行输出显示。

在本发明上述安卓应用的口令处理路径识别方法中,所述步骤S2中所述 确定存在口令安全隐患的多个API在Smali代码中的位置的步骤包括:

对名称分别为SQLite、SharedPreference、File及ContentProvider的API 在该款安卓应用的Smali代码中的位置进行扫描,并记录各个API在该款安 卓应用的Smali代码中的位置信息。

在本发明上述安卓应用的口令处理路径识别方法中,所述步骤S3具体包 括如下步骤:

S31、将各个API的位置分别作为执行与该API对应的口令处理路径反向 遍历工作的起点,从起点位置查找存储任意一条特定指令的指令寄存器,读 取该指令寄存器中的该条特定指令的代码,从该条特定指令的代码中截取涉 及用户口令处理的一段切片代码;

S32、判断该段切片代码中是否包含有口令输入框的标识符,并记录口令 输入框标识符判断结果;如该段切片代码中未包含口令输入框的标识符,则 对该条特定指令进行解析,及判断该款安卓应用指令的执行流程图中是否存 在与该条特定指令满足定义使用链条件的另一条特定指令;

S33、如判断该款安卓应用的指令执行流程图中存在与该条特定指令满足 定义使用链条件的另一条特定指令,则对存储另一条特定指令的另一个指令 寄存器进行访问,读取另一条特定指令的代码,从另一条特定指令代码中截 取涉及口令处理的一段切片代码,之后返回上一步骤S32;否则,执行下一步 骤S34;

S34、将该API位置作为与该API对应的口令处理路径反向遍历工作的起 点,将存储有该条特定指令的指令寄存器的位置作为与该API对应的口令处 理路径反向遍历的终点,绘制口令处理路径。

在本发明上述安卓应用的口令处理路径识别方法中,所述步骤S32中对 该条特定指令进行解析的步骤包括:

解析该条特定指令,将解析所得的第一函数名称、第一参数、第一参数 类型、第一返回值及第一返回值类型作为第一指令解析参考信息。

在本发明上述安卓应用的口令处理路径识别方法中,所述步骤S32还包 括:判断该段切片代码中是否包含有用于表示口令处理路径沿反向出现分支 及指向其它API的分支关键词,及在该段切片代码中出现该类分支关键词时, 记录该类分支关键词,将该类分支关键词所指向的API作为执行本次口令处 理路径反向遍历工作的续接位置,并在该续接位置继续执行本次口令处理路 径反向遍历工作;其中,该类分支关键词包括if、switch。

在本发明上述安卓应用的口令处理路径识别方法中,所述步骤S33还包 括:

对另一条特定指令进行解析,得到包含第二函数名称、第二参数类型、 第二返回值及第二返回值类型的第二指令解析参考信息,将第二指令解析参 考信息与第一指令解析参考信息进行比较;如第二指令解析参考信息与第一 指令参考信息完全相同,则将与第一指令参考信息对应的特定指令的执行路 径走向作为另一条特定指令的执行路径走向的判断依据。

在本发明上述安卓应用的口令处理路径识别方法中,在所述步骤S34之 后还包括如下步骤:

S35、读取作为口令处理路径反向遍历终点的该指令寄存器中的该条特定 指令,从该条特定指令代码中截取涉及用户口令处理的一段切片代码,判断 该段切片代码是否包含有口令输入框的标识符;如该条切片代码包含有口令 输入框的标识符,则将所绘制的该款安卓应用的口令处理路径进行输出显示; 否则,停止以该API作为起点的口令处理路径反向遍历工作。

本发明还构造一种安卓应用的口令处理路径识别装置,所述装置包括反 编译模块、API定位模块、口令输入框探测模块、口令处理路径识别模块、口 令处理路径绘制模块及显示模块;

所述反编译模块用于对待测安卓应用进行反汇编,以还原用于编译该款 安卓应用的Smali代码;

所述API定位模块用于确定存在口令安全隐患的多个API在该Smali代 码中的位置;

所述口令输入框探测模块用于从该Smali代码中查找口令输入框的标识 符;

所述口令处理路径识别模块用于将各个API的位置分别作为与该API对 应的口令处理路径的起点,将存储口令输入框标识符的指令寄存器的位置作 为该API对应的口令处理路径的终点,依着设定的口令处理路径反向遍历规 则对涉及该款安卓应用口令处理的特定指令执行路径进行反向遍历;

所述口令处理路径绘制模块用于在该反向遍历过程中绘制特定指令执行 路径,并将所绘制的特定指令执行路径作为该款安卓应用的口令处理路径输 出到所述显示模块;

所述显示模块用于接收及显示该款安卓应用的口令处理路径。

在本发明上述安卓应用的口令处理路径识别装置中,所述装置还包括指 令解析模块,用于对在前的特定指令进行解析,并将解析的函数、参数类型、 返回值及返回值类型作为用于判断在后的特定指令的执行路径走向的指令解 析参考信息。

在本发明上述安卓应用的口令处理路径识别装置中,所述口令处理路径 识别模块还用于从每条特定指令的代码中截取涉及用户口令处理的一段切片 代码,判断该段切片代码中是否包含有用于表示口令处理路径的反向出现分 支并指向其它API位置的分支关键词,及在该段切片代码中出现该类分支关 键词时,记录该类分支关键词,将该类分支关键词指向的API作为本次口令 处理路径反向遍历的续接位置,并在该续接位置继续执行口令处理路径反向 遍历工作;

所述口令处理路径识别模块还用于判断该段切片代码是否包含有口令输 入框的标识符;如该段切片代码包含有口令输入框的标识符,则控制所述口 令处理路径绘制模块将所绘制的特定指令执行路径作为该款安卓应用的口令 处理路径输出到所述显示模块上进行显示;否则,停止本次口令处理路径反 向遍历工作。

实施本发明安卓应用的口令处理路径识别方法及使用该方法的装置,可 实现以下有益效果:

1、本发明采用了安卓应用口令处理路径的反向识别机制,将待测安卓应 用中存在口令安全隐患的多个API的位置分别作为与该API对应的口令处理 路径的起点,将存储口令输入框标识符的指令寄存器的位置作为与该API对 应的口令处理路径的终点,将该款安卓应用的各条特定指令之间存在的定义 使用链关系作为口令处理路径反向识别规则,对待测安卓应用的口令处理路 径进行反向识别,并在口令路径反向识别过程中绘制出口令处理路径,实现 了安卓应用口令处理路径的自动化识别,节省了大量的人力资源。

2、在本发明的口令处理路径识别过程中,对在前的特定指令进行解析, 得到口令输入框标识符判断结果,以及包含函数名称、参数、参数类型、返 回值及返回值类型的特定指令执行路径参考信息,将该特定指令执行路径参 考信息作为对在后的特定指令进行解析时影响口令处理路径走向的判断基 准,由此避免了同一条特定指令的重复解析工作,提高了口令处理路径的反 向识别效率,缩短了口令处理路径反向识别过程的耗时。

附图说明

图1为本发明的第一个较佳实施例提供的安卓应用的口令处理路径识别 装置的结构框图;

图2为本发明的第二个较佳实施例提供的安卓应用的口令处理路径识别 方法的流程图。

具体实施方式

为了解决现有技术中前向口令路径识别技术不能对口令处理路径进行快 速准确地识别,口令处理路径识别结果的误报率高,且前向口令路径识别技 术在路径排查环节需消耗大量人力的缺陷,本发明的创新点在于:

1、将待测安卓应用中存在口令安全隐患的多个API(Application ProgrammingInterface,即应用程序编程接口)的位置分别作为与该API对应 的口令处理路径的起点,将存储口令输入框标识符的指令寄存器的位置作为 与该API对应的口令处理路径的终点,将待测安卓应用的各条特定指令之间 存在的定义使用链关系作为口令处理路径反向识别规则,对口令处理路径进 行反向识别,并在口令路径反向识别过程中绘制口令处理路径。

2、在口令处理路径反向识别过程中,对在前的特定指令进行解析,得到 口令输入框标识符判断结果,以及包含函数名称、参数、参数类型、返回值 及返回值类型的特定指令执行路径参考信息,将该特定指令执行路径参考信 息作为对在后的特定指令分析时影响口令处理路径走向的判断基准。

由于本发明采用了将待测安卓应用中存在口令安全隐患的多个API的位 置分别作为与该API对应的口令处理路径的起点,将存储口令输入框标识符 的指令寄存器的位置作为与该API对应的口令处理路径的终点,将待测安卓 应用的各条特定指令之间存在的定义使用链关系作为口令处理路径反向识别 规则,对口令处理路径进行反向识别的设计,所以解决了现有技术中前向口 令路径识别技术不能对口令处理路径进行快速准确地识别,口令处理路径识 别结果的误报率高,且前向口令路径识别技术在口令路径排查环节需消耗大 量人力的技术问题,实现了口令处理路径的自动化识别,缩短了口令处理路 径识别过程的耗时,节省了人力资源,同时达到了较高的口令路径识别准确 率的目的。

下面将结合附图及实施例,对本发明作进一步说明:

下面将以本发明的第一个较佳实施例为例,对本发明安卓应用的口令处 理路径识别装置的结构进行说明:

如图1所示,本发明安卓应用的口令处理路径识别装置包括反编译模块 100、API定位模块200、连接反编译模块100的口令输入框探测模块300、连 接API定位模块200及口令输入框探测模块300的口令处理路径识别模块 400、连接口令处理路径识别模块400的口令处理路径绘制模块500、以及连 接口令处理路径绘制模块500的显示模块600。

其中,该反编译模块100用于对运行于Dalvik(Android平台的java虚 拟机)之上的待测安卓应用进行反汇编,以还原出用于编译该款安卓应用的 Smali代码。

该API定位模块200用于确定存在口令安全隐患的多个API在该Smali 代码中的位置。

该口令输入框探测模块300用于从该Smali代码中查找口令输入框的标识 符。

该口令处理路径识别模块400用于将各个API的位置分别作为与该API 对应的该款安卓应用口令处理路径的起点,将存储有口令输入框标识符的指 令寄存器的位置作为与该API对应的该款安卓应用口令处理路径的终点,依 照设定的口令处理路径反向遍历规则对该款安卓应用口令处理路径进行反向 遍历。

该口令处理路径绘制模块500还用于在该口令处理路径识别模块400进 行口令处理路径反向遍历的同时,绘制口令处理路径,并将所绘制的口令处 理路径输出到该显示模块600。

该显示模块600用于接收及显示该款安卓应用的口令处理路径。

本发明安卓应用的口令处理路径识别装置还包括一个指令解析模块,用 于对指令寄存器中的每条特定指令进行解析,并将解析到的函数、参数类型、 返回值及返回值类型作为执行后续的特定指令解析工作的指令解析参考信 息。例如,本发明的口令处理路径识别模块400经比较判断后一条特定指令 解析到的第二指令解析参考信息与前一条特定指令解析到的第一指令解析参 考信息相符,则可将前一条特定指令的口令输入框标识符判断结果作为后一 条特定指令执行路径走向的判断依据。

该口令处理路径识别模块400还用于从各指令寄存器的每条特定指令代 码中截取涉及用户口令处理的一段切片代码,判断该段切片代码中是否包含 有用于表示口令处理路径的反向出现分支并指向其它API位置的分支关键词。 如该段切片代码中出现该类分支关键词,则记录该类分支关键词,并将该类 分支关键词指向的API作为本次口令处理路径反向遍历的续接位置,并在该 续接位置继续执行口令处理路径的反向遍历工作。

该口令处理路径识别模块400还用于判断该段切片代码是否包含有口令 输入框的标识符。如该条切片代码包含有口令输入框的标识符,则该口令处 理路径识别模块400控制口令处理路径绘制模块500将绘制的特定指令执行 路径作为该款安卓应用的口令处理路径输出到该显示模块600上进行显示。 否则,该口令处理路径识别模块400停止本次的口令处理路径反向遍历工作。

下面将以本发明的第二个较佳实施方式为例,对本发明安卓应用的口令 处理路径识别方法进行说明:

如图2所示,在步骤S101中,反编译模块100对运行于Dalvik(Android 平台的java虚拟机)的待测安卓应用进行反编译,以还原出用于编译该款安 卓应用的smali代码。

在步骤S102中,口令输入框探测模块300从该款安卓应用的smali代码 中查找口令输入框的标识符,API定位模块200确定指定的存在口令安全隐患 的多个API在该款安卓应用的smali代码中的位置。

在步骤S103中,口令处理路径识别模块400接收来自口令输入框探测模 块300的口令输入框的标识符,以及接收来自API定位模块200的各个API 的位置信息,将各个API的位置作为执行口令处理路径反向遍历工作的起点, 从起点位置查找存储某条特定指令(在本发明中代指参与口令数据处理的指 令,包括move、move-resultvx、move-exceptionvx、return、invoke、const) 的指令寄存器。

在步骤S104中,口令处理路径识别模块400读取该指令寄存器中的该条 特定指令,截取该条特定指令的代码中涉及用户口令处理的一段切片代码。

在步骤S105中,口令处理路径识别模块400判断该段切片代码是否包含 口令输入框的标识符。如该段切片代码包含口令输入框的标识符,则执行步 骤S106;如该段切片代码未包含口令输入框的标识符,则执行步骤S107。

在步骤S106中,口令处理路径识别模块400停止本次口令处理路径反向 遍历工作。口令处理路径绘制模块500将所选的API位置作为本次口令处理 路径的起点,将存储该切片代码的指令寄存器作为本次口令处理路径的终点, 绘制一条口令处理路径,并将绘制的该条口令处理路径输出到显示模块600 上进行显示。

在步骤S107中,口令处理路径识别模块400判断该条特定指令的该段切 片代码中是否包含有用于表示口令处理路径在反向遍历中出现分支并指向另 外的一个或两个API的口令处理路径分支关键词(例如,if语句、switch语句)。 如该段切片代码包含上述的口令处理路径分支关键词,则执行步骤S108。否 则,执行步骤S109。

在步骤S108中,口令处理路径识别模块400将该口令处理路径分支关键 词所指向的一个或两个API作为执行本次口令处理路径反向遍历工作的续接 位置,将该续接位置作为新的起点,从新的起点继续执行本次口令处理路径 反向遍历工作,返回步骤S103。

在步骤S109中,口令处理路径识别模块400判断该款安卓应用的指令执 行流程图中是否存在与该条特定指令满足定义使用链关系的另一条特定指 令。如存在,则执行步骤S110,否则,执行步骤S106。在本发明中,设n1, n2为安卓应用的两条指令,V为变量,如n1对变量V进行了定义,n2使用 了变量V的值,则判定n1与n2之间存在定义使用链关系。

在步骤S110中,口令处理路径识别模块400对存储另一条特定指令的另 一个指令寄存器进行访问,读取该指令寄存器中的该条特定指令,截取该条 特定指令中涉及口令处理的一段切片代码,之后返回步骤S105。

实施本发明安卓应用的口令处理路径识别方法具有以下有益效果:

1、本发明采用了安卓应用口令处理路径的反向识别机制,将待测安卓应 用中存在口令安全隐患的多个API的位置分别作为与该API对应的口令处理 路径的起点,将存储口令输入框标识符的指令寄存器的位置作为与该API对 应的口令处理路径的终点,将该款安卓应用的各条特定指令之间存在的定义 使用链关系作为口令处理路径反向识别规则,对待测安卓应用的口令处理路 径进行反向识别,并在口令路径反向识别过程中绘制出口令处理路径,实现 了安卓应用口令处理路径的自动化识别,节省了大量的人力资源。

2、在本发明的口令处理路径识别过程中,对在前的特定指令进行解析, 得到口令输入框标识符判断结果,以及包含函数名称、参数、参数类型、返 回值及返回值类型的特定指令执行路径参考信息,将该特定指令执行路径参 考信息作为对在后的特定指令进行解析时影响口令处理路径走向的判断基 准,由此避免了同一条特定指令的重复解析工作,提高了口令处理路径的反 向识别效率,缩短了口令处理路径反向识别过程的耗时。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上 述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的, 本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求 所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号