[发明专利]一种基于smali中间语言的静态检测系统及方法在审
申请号: | 201611198355.1 | 申请日: | 2016-12-22 |
公开(公告)号: | CN106598866A | 公开(公告)日: | 2017-04-26 |
发明(设计)人: | 王鑫 | 申请(专利权)人: | 合肥国信车联网研究院有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京和信华成知识产权代理事务所(普通合伙)11390 | 代理人: | 胡剑辉 |
地址: | 230000 安徽省合肥市蜀山*** | 国省代码: | 安徽;34 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 smali 中间 语言 静态 检测 系统 方法 | ||
1.一种基于smali中间语言的静态检测系统,其特征在于,包括预处理模块、规则库模块、敏感行为检测模块、结果生成模块,所述预处理模块用于对移动应用软件做简单快速的初步筛选分析,判断当前移动应用软件是否存在可能的敏感行为,并判断是否需要进行后续静态行为分析程序;
所述规则库模块为所述预处理模块在进行敏感行为分析时依赖的规则;
所述敏感行为检测模块是对所述预处理模块判断出的存在敏感行为的移动应用软件进行详细的行为检测;所述结果生成模块用于将移动应用软件的基本信息和敏感信息生成报告并输出。
2.如权利要求1所述的基于smali中间语言的静态检测系统,其特征在于,所述规则库模块包括一类规则:敏感行为API、二类规则:参数规则以及三类规则:用户行为规则,所述参数规则为确定所述敏感行为API的参数是否为符合条件的类型,所述用户行为规则用于确定命中的符合条件的敏感行为API是后台行为还是用户行为。
3.如权利要求2所述的基于smali中间语言的静态检测系统,其特征在于,所述预处理模块用于实现快速从资源文件和dex文件中获取当前应用软件中所有使用的字符串,即获取常量池中的数据;
对于从资源文件的分解,可以使用SAXBuilder对xml文件进行解析,按照格式获取AndroidManifest.xml中的信息;从dex文件中获取常量表则通过文件格式,进行编码对dex文件中的字符串列表进行提取,在通过dex文件格式获取字符串偏移地址后,第一个字节即为当前字符串的大小,当前字符串长度大于预设阈值时,表明该字符串为无意义字符,将该字符串从常量池中剔除;
在获取了整个应用软件的常量池后,需要进行常量对比,对比的对象为一类规则和常量池中的数据,如果两者有重合的则表明当前应用软件中可能存在敏感行为需要进行进一步的行为检测,若没有则表明当前软件中不含有敏感行为。
4.如权利要求3所述的基于smali中间语言的静态检测系统,其特征在于,所述敏感行为检测模块通过三类规则在控制流和数据流中进行回溯比对确定敏感行为:首先是一类规则的触发行为,其次在数据流中对二类规则中的参数进行比对触发,最后进行三类规则的行为定性,若连续触发一类、二类规则同时三类规则定性为非用户行为即为后台行为则是敏感行为;
具体执行行为检测的步骤为:首先利用apktool将待检测移动应用软件反编译为smali文件,apktool的中间模块中baksmali部分会将smali文件生成为smali语法树,依据此语法树相关结构,进行信息抽取,获取控制流和数据流变化数据,与维护的规则库进行匹配检测,进行控制流与数据流分析,获取敏感行为出现的位置与参数信息;
所述smali语法树是通过分析smali文件的语法、词法,将smali文件按照语法结构生成为树状结构,根据smali本身的语法树结构体系,可以将语句之间的跳转关系,寄存器间的数据变化信息抽取出来形成新的控制流图、数据流图,以及根据smali中invoke指令的相关信息获取函数依赖图,根据上述三种图,进行流追踪。
5.如权利要求1所述的基于smali中间语言的静态检测系统,其特征在于,所述结果生成模块最终得到的结果报告包括基本信息、权限声明、明文字符串以及存在的敏感行为;
若信息中含有明文存储的网址、电话号码信息表明该移动应用软件没有隐藏程序资源使用信息,则这些信息容易泄露,被攻击者盗用、篡改,生成盗版或钓鱼应用软件。
6.一种基于smali中间语言的静态检测方法,其特征在于,包括以下步骤:
S1:首先使用apktool将Android应用软件反编译为smali文件,然后使用baksmali将smali文件生成为smali语法树,smali语法树作为流分析的输入;
S2:以smali语法树为基础,进行控制流和数据流分析;控制流通过语句间的跳转分支和执行顺序构成控制依赖图,同时根据invoke指令来生成函数依赖图;
S3:在smali语言中,数据流的变化为语句间的寄存器数值变化,对语句间寄存器的变化进行记录,对每个敏感语句节点寄存器中的数据进行定值计算,最后形成当前语句节点的定值集合;
S4:对规则库中的安全规则进行解析。1类规则定义了敏感行为API、命名空间和类名等关键信息,2类规则定义了参数满足的信息和格式,3类规则定义了用户行为;
S5:进行敏感行为检测,根据规则库中的规则进行敏感行为分析,确定移动应用软件中存在的敏感行为;
S6:生成报告:将应用软件的基本信息和存在的敏感行为生成报告,方便阅读和后续分析。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于合肥国信车联网研究院有限公司,未经合肥国信车联网研究院有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611198355.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种软件测试方法及装置
- 下一篇:用户界面的测试方法及测试装置