[发明专利]应用程序的漏洞检测方法、装置、设备、存储介质和程序在审
申请号: | 202111530305.X | 申请日: | 2021-12-14 |
公开(公告)号: | CN114417347A | 公开(公告)日: | 2022-04-29 |
发明(设计)人: | 韩争光;刘涛;赵帅 | 申请(专利权)人: | 奇安盘古(上海)信息技术有限公司 |
主分类号: | G06F21/57 | 分类号: | G06F21/57 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 王宇杨 |
地址: | 201100 上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 应用程序 漏洞 检测 方法 装置 设备 存储 介质 程序 | ||
本发明实施例提供一种应用程序的漏洞检测方法、装置、设备、存储介质和程序。该方法包括:从待检测应用程序的安装包中获取可执行文件,并对所述可执行文件进行反编译处理,得到反编译文件;获取所述反编译文件中的多个元素,并基于多个所述元素在所述反编译文件中的位置建立索引表,以及基于多个所述元素之间的关系建立关联关系表;根据所述索引表和关联关系表,生成以目标元素为起始节点的第一抽象语法树;根据预设的多组检测规则以及所述第一抽象语法树的各个节点之间的关系,确定所述应用程序中是否存在漏洞。上述方案中通过反编译文件、索引和关联关系表以及得到的抽象语法树,易于对应用程序进行漏洞检测,漏洞检测的效率较高。
技术领域
本发明涉及计算机技术领域,尤其涉及一种应用程序的漏洞检测方法、装置、设备、存储介质和程序。
背景技术
随着安卓(Android)平台的迅猛发展,安卓应用程序的数量一直处于快速增长中,但是随之增长的还有安卓应用程序所产生的漏洞。所有的安卓应用程序的漏洞都存在被攻击者潜在利用的可能,因此更全面的了解漏洞,从而发现漏洞并修复它,是避免软件遭受攻击的有效方法。
目前,漏洞检测主要通过逆向工具将安卓应用程序的安装包中的可执行代码转化为类汇编代码,之后基于类汇编代码检测是否存在有安全漏洞。但通过逆向工具获取得到的类汇编等类反编译代码,不容易理解,基于该类反编译代码较难检测到安全漏洞。
发明内容
针对现有技术中的问题,本发明实施例提供一种应用程序的漏洞检测方法、装置、设备、存储介质和程序。
具体地,本发明实施例提供了以下技术方案:
第一方面,本发明实施例提供了一种应用程序的漏洞检测方法,包括:
从待检测应用程序的安装包中获取可执行文件,并对所述可执行文件进行反编译处理,得到反编译文件;
获取所述反编译文件中的多个元素,并基于多个所述元素在所述反编译文件中的位置建立索引表,以及基于多个所述元素之间的关系建立关联关系表;
根据所述索引表和关联关系表,生成以目标元素为起始节点的第一抽象语法树;
根据预设的多组检测规则以及所述第一抽象语法树的各个节点之间的关系,确定所述应用程序中是否存在漏洞。
可选地,若所述反编译文件的数量为多个,所述根据所述索引表和关联关系表,生成以目标元素为起始节点的第一抽象语法树之前,还包括:
基于多个所述反编译文件中的多个元素、所述索引表和所述关联关系表,生成各个所述反编译文件对应的第二抽象语法树;
对多个所述第二抽象语法树进行合并和修复处理,并对所述索引表和关联关系表进行更新,得到更新后的索引表和关联关系表。
可选地,所述得到反编译文件之后,还包括:
确定所述可执行文件中至少一个索引区各自对应的数据是否存在非法数据;
若至少一个所述索引区对应的数据存在非法数据,则将各个所述索引区对应的数据进行更新;
对所述索引区中的索引以及所述可执行文件的文件头进行更新。
可选地,所述将各个所述索引区对应的数据进行更新,包括:
针对任一所述索引区,所述索引区对应的数据存在命名冲突的非法数据,则将所述命名冲突的非法数据的命名进行更新。
可选地,所述生成以目标元素为起始节点的第一抽象语法树之前,还包括:
根据所述索引表,确定所述反编译文件中进行漏洞检测的入口位置;
将所述入口位置的元素,作为所述目标元素。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于奇安盘古(上海)信息技术有限公司,未经奇安盘古(上海)信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111530305.X/2.html,转载请声明来源钻瓜专利网。