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

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

Info

Publication number
CN105701403A
CN105701403A CN201410690354.3A CN201410690354A CN105701403A CN 105701403 A CN105701403 A CN 105701403A CN 201410690354 A CN201410690354 A CN 201410690354A CN 105701403 A CN105701403 A CN 105701403A
Authority
CN
China
Prior art keywords
password
path
android
specific instruction
api
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201410690354.3A
Other languages
English (en)
Other versions
CN105701403B (zh
Inventor
刘洪刚
杨颖�
池垂富
夏冰
韩俊焜
姚骏
胡铁
李景杰
谢桂桦
胡文君
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Aspire Digital Technologies Shenzhen Co Ltd
Original Assignee
Aspire Digital Technologies Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Aspire Digital Technologies Shenzhen Co Ltd filed Critical Aspire Digital Technologies Shenzhen Co Ltd
Priority to CN201410690354.3A priority Critical patent/CN105701403B/zh
Publication of CN105701403A publication Critical patent/CN105701403A/zh
Application granted granted Critical
Publication of CN105701403B publication Critical patent/CN105701403B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

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

Description

安卓应用的口令处理路径识别方法及使用该方法的装置
技术领域
本发明涉及安卓应用程序安全检测技术领域,更具体地说,涉及一种安卓应用的口令处理路径识别方法及使用该方法的装置。
背景技术
通常,在对安卓应用用户名、口令信息处理的分析中,主要依赖网络数据抓包的人工分析手段。人工分析手段的检测分析工作量大,还容易产生检测遗漏,效果不理想。伴随着反编译和静态分析技术的发展,反编译和静态分析技术开始运用于安卓应用代码逻辑分析之中。
目前,常见的识别安卓应用用户口令处理方法主要为前向识别方法。
该前向识别方法包括以下几个步骤:
一、定位用户密码输入框的位置,确定存储用户输入密码的关键变量;
二、按照传统的控制流分析技术,找寻到所有可能的函数调用路径;
三、对每一条路径进行分析,确定哪些路径包含了口令处理机制;
四、判定该安卓应用的口令处理机制是否存在安全隐患。
尽管前向识别方法能够快速准确的定位到密码输入框,但是,该方法无法准确有效地识别口令处理路径,该方法的误报率高,且该方法的口令处理路径分析及路径排查环节需消耗大量人力。
发明内容
本发明要解决的技术问题在于针对现有技术的上述缺陷,提供一种安卓应用的口令处理路径识别方法及使用该方法的装置。
本发明解决其技术问题所采用的技术方案是:构造一种安卓应用的口令处理路径识别方法,包括以下步骤;
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(ApplicationProgrammingInterface,即应用程序编程接口)的位置分别作为与该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、在本发明的口令处理路径识别过程中,对在前的特定指令进行解析,得到口令输入框标识符判断结果,以及包含函数名称、参数、参数类型、返回值及返回值类型的特定指令执行路径参考信息,将该特定指令执行路径参考信息作为对在后的特定指令进行解析时影响口令处理路径走向的判断基准,由此避免了同一条特定指令的重复解析工作,提高了口令处理路径的反向识别效率,缩短了口令处理路径反向识别过程的耗时。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

Claims (10)

1.一种安卓应用的口令处理路径识别方法,其特征在于,包括以下步骤;
S1、对待测安卓应用进行反汇编,以还原编译该款安卓应用的Smali代码;
S2、从该款安卓应用的Smali代码中查找该款安卓应用的口令输入框的标识符以及确定存在口令安全隐患的多个API在Smali代码中的位置;
S3、将各API的位置分别作为与该API对应的口令处理路径的起点,将存储口令输入框标识符的指令寄存器的位置作为与该API对应的口令处理路径的终点,依照设定的遍历规则对涉及该款安卓应用口令处理的特定指令的执行路径进行反向遍历,在反向遍历中绘制特定指令执行路径,并将所绘制的特定指令执行路径作为口令处理路径进行输出显示。
2.根据权利要求1所述的安卓应用的口令处理路径识别方法,其特征在于,所述步骤S2中所述确定存在口令安全隐患的多个API在Smali代码中的位置的步骤包括:
对名称分别为SQLite、SharedPreference、File及ContentProvider的API在该款安卓应用的Smali代码中的位置进行扫描,并记录各个API在该款安卓应用的Smali代码中的位置信息。
3.根据权利要求1所述的安卓应用的口令处理路径识别方法,其特征在于,所述步骤S3具体包括如下步骤:
S31、将各个API的位置分别作为执行与该API对应的口令处理路径反向遍历工作的起点,从起点位置查找存储任意一条特定指令的指令寄存器,读取该指令寄存器中的该条特定指令的代码,从该条特定指令的代码中截取涉及用户口令处理的一段切片代码;
S32、判断该段切片代码中是否包含有口令输入框的标识符,并记录口令输入框标识符判断结果;如该段切片代码中未包含口令输入框的标识符,则对该条特定指令进行解析,及判断该款安卓应用指令的执行流程图中是否存在与该条特定指令满足定义使用链条件的另一条特定指令;
S33、如判断该款安卓应用的指令执行流程图中存在与该条特定指令满足定义使用链条件的另一条特定指令,则对存储另一条特定指令的另一个指令寄存器进行访问,读取另一条特定指令的代码,从另一条特定指令代码中截取涉及口令处理的一段切片代码,之后返回上一步骤S32;否则,执行下一步骤S34;
S34、将该API位置作为与该API对应的口令处理路径反向遍历工作的起点,将存储有该条特定指令的指令寄存器的位置作为与该API对应的口令处理路径反向遍历的终点,绘制口令处理路径。
4.根据权利要求3所述的安卓应用的口令处理路径识别方法,其特征在于,所述步骤S32中对该条特定指令进行解析的步骤包括:
解析该条特定指令,将解析所得的第一函数名称、第一参数、第一参数类型、第一返回值及第一返回值类型作为第一指令解析参考信息。
5.根据权利要求3所述的安卓应用的口令处理路径识别方法,其特征在于,所述步骤S32还包括:判断该段切片代码中是否包含有用于表示口令处理路径沿反向出现分支及指向其它API的分支关键词,及在该段切片代码中出现该类分支关键词时,记录该类分支关键词,将该类分支关键词所指向的API作为执行本次口令处理路径反向遍历工作的续接位置,并在该续接位置继续执行本次口令处理路径反向遍历工作;其中,该类分支关键词包括if、switch。
6.根据权利要求3所述的安卓应用的口令处理路径识别方法,其特征在于,所述步骤S33还包括:
对另一条特定指令进行解析,得到包含第二函数名称、第二参数类型、第二返回值及第二返回值类型的第二指令解析参考信息,将第二指令解析参考信息与第一指令解析参考信息进行比较;如第二指令解析参考信息与第一指令参考信息完全相同,则将与第一指令参考信息对应的特定指令的执行路径走向作为另一条特定指令的执行路径走向的判断依据。
7.根据权利要求3所述的安卓应用的口令处理路径识别方法,其特征在于,在所述步骤S34之后还包括如下步骤:
S35、读取作为口令处理路径反向遍历终点的该指令寄存器中的该条特定指令,从该条特定指令代码中截取涉及用户口令处理的一段切片代码,判断该段切片代码是否包含有口令输入框的标识符;如该条切片代码包含有口令输入框的标识符,则将所绘制的该款安卓应用的口令处理路径进行输出显示;否则,停止以该API作为起点的口令处理路径反向遍历工作。
8.一种安卓应用的口令处理路径识别装置,其特征在于,所述装置包括反编译模块、API定位模块、口令输入框探测模块、口令处理路径识别模块、口令处理路径绘制模块及显示模块;
所述反编译模块用于对待测安卓应用进行反汇编,以还原用于编译该款安卓应用的Smali代码;
所述API定位模块用于确定存在口令安全隐患的多个API在该Smali代码中的位置;
所述口令输入框探测模块用于从该Smali代码中查找口令输入框的标识符;
所述口令处理路径识别模块用于将各个API的位置分别作为与该API对应的口令处理路径的起点,将存储口令输入框标识符的指令寄存器的位置作为该API对应的口令处理路径的终点,依着设定的口令处理路径反向遍历规则对涉及该款安卓应用口令处理的特定指令执行路径进行反向遍历;
所述口令处理路径绘制模块用于在该反向遍历过程中绘制特定指令执行路径,并将所绘制的特定指令执行路径作为该款安卓应用的口令处理路径输出到所述显示模块;
所述显示模块用于接收及显示该款安卓应用的口令处理路径。
9.根据权利要求8所述的安卓应用的口令处理路径识别装置,其特征在于,所述装置还包括指令解析模块,用于对在前的特定指令进行解析,并将解析的函数、参数类型、返回值及返回值类型作为用于判断在后的特定指令的执行路径走向的指令解析参考信息。
10.根据权利要求8所述的安卓应用的口令处理路径识别装置,其特征在于,所述口令处理路径识别模块还用于从每条特定指令的代码中截取涉及用户口令处理的一段切片代码,判断该段切片代码中是否包含有用于表示口令处理路径的反向出现分支并指向其它API位置的分支关键词,及在该段切片代码中出现该类分支关键词时,记录该类分支关键词,将该类分支关键词指向的API作为本次口令处理路径反向遍历的续接位置,并在该续接位置继续执行口令处理路径反向遍历工作;
所述口令处理路径识别模块还用于判断该段切片代码是否包含有口令输入框的标识符;如该段切片代码包含有口令输入框的标识符,则控制所述口令处理路径绘制模块将所绘制的特定指令执行路径作为该款安卓应用的口令处理路径输出到所述显示模块上进行显示;否则,停止本次口令处理路径反向遍历工作。
CN201410690354.3A 2014-11-25 2014-11-25 安卓应用的口令处理路径识别方法及使用该方法的装置 Active CN105701403B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410690354.3A CN105701403B (zh) 2014-11-25 2014-11-25 安卓应用的口令处理路径识别方法及使用该方法的装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410690354.3A CN105701403B (zh) 2014-11-25 2014-11-25 安卓应用的口令处理路径识别方法及使用该方法的装置

Publications (2)

Publication Number Publication Date
CN105701403A true CN105701403A (zh) 2016-06-22
CN105701403B CN105701403B (zh) 2018-07-13

Family

ID=56942196

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410690354.3A Active CN105701403B (zh) 2014-11-25 2014-11-25 安卓应用的口令处理路径识别方法及使用该方法的装置

Country Status (1)

Country Link
CN (1) CN105701403B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106802866A (zh) * 2017-01-23 2017-06-06 浙江大学 一种Android程序的执行路径的还原方法
CN109657473A (zh) * 2018-11-12 2019-04-19 华中科技大学 一种基于深度特征的细粒度漏洞检测方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102255914A (zh) * 2011-07-19 2011-11-23 河南大学 一种Android网络应用程序信息验证方法
US20130074160A1 (en) * 2011-09-15 2013-03-21 Fujitsu Limited Method of controlling information processing system, computer-readable recording medium storing program for controlling apparatus
CN104158812A (zh) * 2011-04-01 2014-11-19 北京奇虎科技有限公司 一种终端应用的安全控制方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104158812A (zh) * 2011-04-01 2014-11-19 北京奇虎科技有限公司 一种终端应用的安全控制方法及系统
CN102255914A (zh) * 2011-07-19 2011-11-23 河南大学 一种Android网络应用程序信息验证方法
US20130074160A1 (en) * 2011-09-15 2013-03-21 Fujitsu Limited Method of controlling information processing system, computer-readable recording medium storing program for controlling apparatus

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106802866A (zh) * 2017-01-23 2017-06-06 浙江大学 一种Android程序的执行路径的还原方法
CN106802866B (zh) * 2017-01-23 2019-12-10 浙江大学 一种Android程序的执行路径的还原方法
CN109657473A (zh) * 2018-11-12 2019-04-19 华中科技大学 一种基于深度特征的细粒度漏洞检测方法
CN109657473B (zh) * 2018-11-12 2020-09-18 华中科技大学 一种基于深度特征的细粒度漏洞检测方法

Also Published As

Publication number Publication date
CN105701403B (zh) 2018-07-13

Similar Documents

Publication Publication Date Title
CN103455759B (zh) 一种页面漏洞检测装置及检测方法
CN102789419B (zh) 一种使用多样本差异比对的软件故障分析方法
CN104008053B (zh) 一种用于漏洞发掘的动态符号执行路径搜索方法
CN101714118A (zh) 一种二进制代码缓冲区溢出漏洞的检测器及其检测方法
CN104899147A (zh) 一种面向安全检查的代码静态分析方法
CN110363004B (zh) 一种代码漏洞检测方法、装置、介质及设备
CN104834837A (zh) 一种基于语义的二进制代码反混淆方法
US20130262090A1 (en) System and method for reducing semantic ambiguity
US20170091073A1 (en) Detection of antipatterns through statistical analysis
CN103914374B (zh) 基于程序切片和频繁模式提取的代码缺陷检测方法及装置
CN108875375B (zh) 一种面向安卓系统隐私泄漏检测的动态特性信息提取方法
Yoshida et al. Proactive clone recommendation system for extract method refactoring
Goto et al. How to extract differences from similar programs? A cohesion metric approach
CN106886446A (zh) 软件源代码的验证方法及装置
CN105487983B (zh) 基于智能路径引导的敏感点逼近方法
CN114817927A (zh) 基于分支覆盖指导的有效符号执行方法及装置
CN110879708B (zh) 一种基于抽象语法树和定理证明的局部敏感程序分析方法
CN109388573A (zh) 一种无漏报的中断驱动型程序运行时错误检测方法和系统
CN105701403A (zh) 安卓应用的口令处理路径识别方法及使用该方法的装置
CN103019865B (zh) 虚拟机监控方法和系统
CN110457046B (zh) 混合指令集程序的反汇编方法、装置、存储介质及终端
US20150363177A1 (en) Multi-branch determination syntax optimization apparatus
CN107682302A (zh) 跨站脚本攻击检测方法和装置
CN116541022A (zh) 一种基于语义状态图的php二阶漏洞的自动化挖掘方法
CN105824758B (zh) 一种基于执行索引和访问路径的堆区对象比较方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant