[发明专利]一种用于ARM架构的软件漏洞辅助定位方法和系统在审
申请号: | 202211013175.7 | 申请日: | 2022-08-23 |
公开(公告)号: | CN115328796A | 公开(公告)日: | 2022-11-11 |
发明(设计)人: | 邹亚龙;胡崟昊;慕冬亮;肖凌 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 武汉华之喻知识产权代理有限公司 42267 | 代理人: | 胡秋萍;曹葆青 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 用于 arm 架构 软件 漏洞 辅助 定位 方法 系统 | ||
1.一种用于ARM架构的软件漏洞辅助定位方法,其特征在于,该方法包括:
S1.运行待分析软件并触发漏洞使其崩溃,提取核心转储文件和崩溃前执行的指令序列,所述核心转储文件保存线程崩溃时的内存布局信息和寄存器信息;
S2.扫描核心转储文件,结合崩溃前执行的指令序列进行逆向执行,恢复出崩溃前每条指令内存地址信息和寄存器信息;
S3.从崩溃点出发,结合恢复出的信息,逆向追踪与崩溃点的数据有数据依赖关系的指令,得到直接或间接导致线程崩溃的指令序列。
2.如权利要求1所述的方法,其特征在于,步骤S1包括以下子步骤:
S11.通过ETM设备采集待分析软件执行过程中的硬件追踪信息;
S12.通过操作系统层级的修改,在运行待分析软件时生成的核心转储文件中加入硬件追踪信息;
S13.对修改后的核心转储文件进行解析和提取,得到崩溃前执行的指令序列。
3.如权利要求2所述的方法,其特征在于,步骤S12具体如下:将提取到硬件最终信息转化为ELF文件的LOAD段,添加至核心转储文件最后一个LOAD段的后面。
4.如权利要求1所述的方法,其特征在于,步骤S2具体如下:
S21.针对AARCH64架构,为每条指令构造Use节点与Define节点,分别代表该指令对一个寄存器或者内存对象的读与写操作;
S22.将各个节点按控制流顺序以及对相同寄存器或内存对象的读写顺序相连,从而构造出一条Use-Define链;
S23.逆向遍历控制流的Use-Define链,补全每个节点中寄存器或内存对象的值及其内存地址。
5.如权利要求4所述的方法,其特征在于,步骤S23中,对于Use节点,变量的值为读取该变量时,该变量的值;对于Define节点,变量的值为被修改变量在修改后的值。
6.如权利要求5所述的方法,其特征在于,各个节点代表对象的值的推断遵循以下五条规则:
(1)该节点到Use-Define链尾之间的所有节点的变量都不是该节点的干预变量,从核心转储文件中读取该节点上的变量对应的值;
(2)该节点顺着指令流往前的第一个与该节点操作变量相同的Use节点的变量值已知,认为该节点的变量值与此Use节点的变量值一致;
(3)若该节点为Define节点且其变量值已推断得知,则顺着指令流往前的第一个与其操作变量相同的Use节点的变量值与其变量值一致;
(4)该节点为Define节点且其变量值可通过指令语义推断出来;
(5)若该节点所在的指令为可逆指令,则通过所述可逆指令语义恢复得到该指令其他节点的变量值;
(6)该节点为Define节点且其修改前的值已知,则逆着指令流往后的第一个与其操作变量相同的Use节点的变量值与其变量值一致。
7.如权利要求4至6任一项所述的方法,其特征在于,步骤S3具体为:逆Use-Define链追踪与崩溃点的数据有数据依赖关系的指令,标记这些指令为污点指令,追踪遵循以下规则:
1)若被污染的节点是Define节点,则将污点传播给该Define节点对应指令的其它Use节点的对象;
2)若被污染的节点是Use节点,在没有干预变量干扰的情况下,将污点沿着控制流逆向传播给最近的操作变量相同的Define节点;
3)根据相应指令语义,将污点传播给相应节点的对象;
4)若被污染的节点是内存访问节点,则将污点传播给参与地址运算的寄存器的Use节点。
8.一种用于ARM架构的软件漏洞辅助定位系统,其特征在于,包括:包括处理器和存储器;
所述处理器用于存储计算机执行指令;
所述处理器用于执行所述计算机执行指令,使得权利要求1至7任一项所述的方法被执行。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211013175.7/1.html,转载请声明来源钻瓜专利网。