[发明专利]控制流完整性保护方法及装置有效
申请号: | 202010611766.9 | 申请日: | 2020-06-29 |
公开(公告)号: | CN111898120B | 公开(公告)日: | 2023-10-10 |
发明(设计)人: | 陈李维;佘才睿;李锦峰;史岗;孟丹 | 申请(专利权)人: | 中国科学院信息工程研究所 |
主分类号: | G06F21/52 | 分类号: | G06F21/52 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 郭亮 |
地址: | 100093 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 控制 完整性 保护 方法 装置 | ||
1.一种控制流完整性保护方法,其特征在于,包括:
获取待保护程序的控制流图,确定所有间接分支指令和对应的合法目标地址;
在每个合法目标地址前插入带有标签信息的NOP指令,并将对应的间接分支指令的跳转目标地址,指向NOP指令所在地址,所述标签信息根据间接分支指令所在地址确定;
其中,所述NOP指令,用于间接分支指令执行时,通过验证NOP指令中的标签信息和间接分支指令的源地址一致后,执行跳转后的指令。
2.根据权利要求1所述的控制流完整性保护方法,其特征在于,所述将对应的间接分支指令的跳转目标地址,指向NOP指令所在地址之后,还包括:
若检测到间接分支指令执行,跳转至对应的目标地址,并检查跳转后的指令是否为NOP指令;
若为NOP指令,则判断NOP指令中的标签信息是否与间接分支指令的源地址一致,若一致,则执行跳转后的指令。
3.根据权利要求1所述的控制流完整性保护方法,其特征在于,所述在每个合法目标地址前插入带有标签信息的NOP指令,并将对应的间接分支指令的跳转目标地址,指向NOP指令所在地址,包括:
若有多个间接分支指令需跳转至同一目标地址,则在目标地址前依次插入与每个间接分支指令对应的带有标签信息的NOP指令,并将每一间接分支指令的跳转目标地址,分别指向对应的NOP指令所在地址。
4.根据权利要求1所述的控制流完整性保护方法,其特征在于,所述标签信息,根据间接分支指令所在源地址的低位确定,相应地,所述验证NOP指令中的标签信息和间接分支指令的源地址一致,具体为:
验证NOP指令的标签信息,与间接分支指令源地址的低位是否一致。
5.一种控制流完整性保护装置,其特征在于,包括:
跳转关系获取模块,用于获取待保护程序的控制流图,确定所有间接分支指令和对应的合法目标地址;
NOP指令生成模块,用于在每个合法目标地址前插入带有标签信息的NOP指令,并将对应的间接分支指令的跳转目标地址,指向NOP指令所在地址,所述标签信息根据间接分支指令所在地址确定;
其中,所述NOP指令,用于间接分支指令执行时,通过验证NOP指令中的标签信息和间接分支指令的源地址一致后,执行跳转后的指令。
6.根据权利要求5所述的控制流完整性保护装置,其特征在于,还包括:
NOP指令验证模块,用于若检测到间接分支指令执行,跳转至对应的目标地址,并检查跳转后的指令是否为NOP指令;
地址验证模块,用于若为NOP指令,则判断NOP指令中的标签信息是否与间接分支指令的源地址一致,若一致,则执行跳转后的指令。
7.根据权利要求5所述的控制流完整性保护装置,其特征在于,所述NOP指令生成模块还用于:
若有多个间接分支指令需跳转至同一目标地址,则在目标地址前依次插入与每个间接分支指令对应的带有标签信息的NOP指令,并将每一间接分支指令的跳转目标地址,分别指向对应的NOP指令所在地址。
8.根据权利要求5所述的控制流完整性保护装置,其特征在于,所述标签信息,根据间接分支指令所在源地址的低位确定,相应地,所述验证NOP指令中的标签信息和间接分支指令的源地址一致,具体为:
验证NOP指令的标签信息,与间接分支指令源地址的低位是否一致。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至4任一项所述控制流完整性保护方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至4任一项所述控制流完整性保护方法的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院信息工程研究所,未经中国科学院信息工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010611766.9/1.html,转载请声明来源钻瓜专利网。