[发明专利]一种基于协处理器的污点传播方法和系统在审
申请号: | 202111588874.X | 申请日: | 2021-12-23 |
公开(公告)号: | CN116339824A | 公开(公告)日: | 2023-06-27 |
发明(设计)人: | 杨轶;苏璞睿;黄桦烽 | 申请(专利权)人: | 中国科学院软件研究所 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F9/38 |
代理公司: | 北京君尚知识产权代理有限公司 11200 | 代理人: | 邱晓锋 |
地址: | 100190 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 处理器 污点 传播 方法 系统 | ||
1.一种基于协处理器的污点传播方法,其步骤包括:
预分析指令语义,构建指令的污点传播掩码表;
通过协处理器,介入CPU指令流水线的译码、回写过程;
在译码阶段实时快速获取当前指令的操作码和操作数,并通过协处理器从污点传播掩码表中查找到指令对应的污点传播掩码;
在回写阶段实时快速检索当前指令对应的污点传播掩码表,实施污点传播计算。
2.如权利要求1所述的方法,其特征在于,所述预分析指令语义是基于静态的手工分析,分析指令的操作数、对操作数实现的操作,操作产生的结果依赖于操作数的对应位置,进而构建操作数和指令执行结果之间的对应的污点传播掩码表;所述污点传播掩码表使用源操作数、目的操作数之间的污点对应关系掩码,通过该掩码直接对操作数进行与计算,即得到指令执行后的污点传播关系。
3.如权利要求1所述的方法,其特征在于,所述污点传播掩码表使用二进制的形式表示指令执行后得到的结果数据和输入数据之间的关联。
4.如权利要求1所述方法,其特征在于,所述通过协处理器,介入CPU指令流水线的译码、回写过程,是通过CPU提供的协处理器接口,将译码、回写过程的电信号引出,接入专用于污点传播计算的协处理器。
5.如权利要求1所述方法,其特征在于,所述在回写阶段实时快速检索当前指令对应的污点传播掩码表,实施污点传播计算,包括:根据CPU指令流水线回写阶段的指令执行结果,将该指令执行结果与指令对应的污点传播掩码进行与操作,获得污点传播计算结果。
6.如权利要求1所述方法,其特征在于,污点传播的记录和计算全部基于指令实现,同时记录指令所在的进程和EIP信息,实现跨进程的污点传播计算。
7.如权利要求1所述方法,其特征在于,所述实现跨进程的污点传播计算,包括:对于污点内容,基于物理内存地址的方式进行记录,相同数据内容的虚拟地址在不同进程中可能不同,但其物理内存一定相同,因而在基于物理地址进行记录的条件下同时监控多个进程,即能够实现跨进程的污点传播计算。
8.一种采用权利要求1~7中任一权利要求所述方法的基于协处理器的污点传播系统,其特征在于,包括主处理器、协处理器以及污点传播掩码表构建模块;所述污点传播掩码表构建模块预分析指令语义并构建指令的污点传播掩码表;所述协处理器介入所述主处理器的指令流水线的译码、回写过程;在译码阶段实时快速获取当前指令的操作码和操作数,并通过协处理器从污点传播掩码表中查找到指令对应的污点传播掩码;在回写阶段实时快速检索当前指令对应的污点传播掩码表,实施污点传播计算。
9.一种电子装置,其特征在于,包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行权利要求1~7中任一权利要求所述方法的指令。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储计算机程序,所述计算机程序被计算机执行时,实现权利要求1~7中任一权利要求所述的方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院软件研究所,未经中国科学院软件研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111588874.X/1.html,转载请声明来源钻瓜专利网。