[发明专利]一种数据流完整性检测方法、装置、设备及介质在审
申请号: | 202211699802.7 | 申请日: | 2022-12-28 |
公开(公告)号: | CN115982028A | 公开(公告)日: | 2023-04-18 |
发明(设计)人: | 陈李维;聂晓帆;史岗;孟丹 | 申请(专利权)人: | 中国科学院信息工程研究所 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F11/34 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 张正秋 |
地址: | 100093 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据流 完整性 检测 方法 装置 设备 介质 | ||
1.一种数据流完整性检测方法,其特征在于,包括:
接收用户输入的待检测源代码,利用交叉编译器生成带有行号信息的原汇编文件;
根据所述原汇编文件中的读指令和写指令,利用预设数据的EUI属性,定义为sdDFIx指令和ldDFIx指令;
根据所述sdDFIx指令和ldDFIx指令对原汇编文件进行代码插桩,生成新汇编文件;
利用执行编译后所述原汇编文件的原指令集架构,扩展执行编译后含有所述sdDFIx指令和ldDFIx指令的所述新汇编文件的所述新指令集架构;
利用扩展后的所述新指令集架构,执行编译和链接后的所述新汇编文件,得出对待检查代码的检查结果;
其中,所述预设数据的EUI属性通过所述待检测源代码利用程序分析工具得到程序的数据流图后,对所述数据流图进行静态分析得到。
2.根据权利要求1所述的数据流完整性检测方法,其特征在于,
根据所述原汇编文件中的读指令和写指令,利用预设数据的EUI属性,定义为sdDFIx指令和ldDFIx指令,包括:
根据所述原汇编文件中的读指令和写指令以及预设数据的EUI属性,得到所述读指令和写指令各自与EUI属性相对应的EUI标签;
将所述读指令与EUI属性相对应的EUI标签储存于所述读指令的标签中,得到所述ldDFIx指令的标签,将所述写指令与EUI属性相对应的EUI标签储存于所述写指令的标签中,得到所述sdDFIx指令的标签。
3.根据权利要求2所述的数据流完整性检测方法,其特征在于,
所述EUI标签的存储空间为3bit。
4.根据权利要求2所述的数据流完整性检测方法,其特征在于,
根据所述sdDFIx指令和ldDFIx指令对原汇编文件进行代码插桩,生成新汇编文件,包括:
将所述ldDFIx指令替换原汇编文件中的读指令,以及所述sdDFIx指令替换原汇编文件中的写指令后,生成所述新汇编文件。
5.根据权利要求1所述的数据流完整性检测方法,其特征在于,
所述利用扩展后的所述新指令集架构,执行编译和链接后的所述新汇编文件,得出对待检查代码的检查结果的步骤中,还包括检查的步骤:
当编译和链接后的所述新汇编文件执行到sdDFIx指令时,利用sdDFIx指令的标签更新内存数据的标签;
当编译和链接后的所述新汇编文件执行到ldDFIx指令时,利用ldDFIx指令的标签对更新后的所述内存数据的标签进行比较;
若ldDFIx指令的标签与更新后的所述内存数据的标签一致,得出待检查代码的检查结果为正常;
若ldDFIx指令的标签与更新后的所述内存数据的标签不一致,得出待检查代码的检查结果为异常。
6.根据权利要求1所述的数据流完整性检测方法,其特征在于,所述原指令集架构采用RISC-V架构。
7.根据权利要求1-6中任一项中的数据流完整性检测方法,其特征在于,所述数据的EUI属性包括:输入的内存数据、悬空/越界指针和非法篡改的内存数据;
所述输入的内存数据、悬空/越界指针和非法篡改内存数据各自对应一个标签。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院信息工程研究所,未经中国科学院信息工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211699802.7/1.html,转载请声明来源钻瓜专利网。