[发明专利]用于生成程序代码的方法和工具有效
申请号: | 201610877773.7 | 申请日: | 2016-09-30 |
公开(公告)号: | CN107122255B | 公开(公告)日: | 2021-07-27 |
发明(设计)人: | L·特拉斯;W·奥兰多 | 申请(专利权)人: | 意法半导体(鲁塞)公司 |
主分类号: | G06F11/07 | 分类号: | G06F11/07 |
代理公司: | 北京市金杜律师事务所 11256 | 代理人: | 王茂华 |
地址: | 法国*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 生成 程序代码 方法 工具 | ||
在待监测的程序代码中插入同步点(@WD_ti),这些点与由间接分支指令(INSPF4)的执行所得的不同分支相关联。这些同步点可以由用于标识在主程序代码的间接分支指令(INSXF4)的执行期间使用哪个分支的监视程序代码访问。
技术领域
本发明的实现方式和实施例的模式涉及旨在用于校验待监测的程序的控制流,特别是用于校验具有不相交签名(不相交签名监视,DSM)的控制流的程序代码的生成,并且更具体地涉及待监视的程序代码中存在的间接分支指令的管理。
背景技术
控制流校验(CFC)使得可以验证程序指令无误差地并且以正确顺序被阅读。
CFT类型的这些校验机制可以被划分成两个群组,即使用嵌入式签名(嵌入式签名监视,ESM)的机制和使用不相交签名(DSM)的机制。
在第一种情况中,参考签名和校验命令(directive)以特定指令的形式被嵌入在待监视的代码中。
在不相交签名的情形中,参考签名和校验命令被存储在系统存储器的另一部分或是不相交存储器中,其具有增加存储器成本的缺陷。
然而,监视程序一般在通常称为“看门狗(watchdog)”的协处理器中实现,并且除了该协处理器必须以自主方式访问存储器以便不使系统性能退化的事实之外,该协处理器也必须维持与执行待监视的程序代码的主处理器的紧密同步。
为了执行控制流校验,监视程序必须与待监视的程序完美同步,以便能够追踪其执行,以尤其用于校验组成程序的基本块的签名,以及控制流通常借助跳跃或分支指令从一个块向另一块的转移。
总体而言,“看门狗”指令与待监视程序的每个基本块的第一指令和最后指令相关联。在终结分支指令的基本块的末尾处,协处理器能够通过自身分支到其自身目的地指令来追踪处理器,该目的地指令对应于处理器所跳跃到的目标指令。
协处理器继而可以校验处理器已实际上跳跃至正确的指令,这是因为协处理器的目的地指令包含了在处理器的程序中的对应目标指令的地址。
因此可以看出,在处理器和协处理器之间的同步是基于处理器指令和协处理器指令之间的联系。这仅在待监视的代码的每个分支的目标在其执行之前是已知的情形下是可能的,从而可以创建对应的协处理器分支指令。
然而,间接分支可以存于待监测的程序代码中。
如本领域技术人员所熟知的那样,间接分支是其分支指令目标地址可以仅基于指令(代码和地址)而计算的分支。
间接分支是并非直接的所有分支,例如针对目标地址的计算使用一个或多个寄存器的值的那些分支。
因此,对于间接分支而言,仅单独基于程序代码的指令无法知晓目标地址,这是因为根据定义该地址取决于程序代码的执行。
此外,间接分支可以具有多个目标地址。此外,“看门狗”类型的协处理器当前能够管理在其程序代码的分支指令中嵌入的仅单个目标地址。
这个问题在DSM方法的情形中尤为显著。因此,大多数DSM方法并不处理间接分支的事宜,这意味着待监视的代码必须不包含任何这类间接分支。
然而,间接分支通常在嵌入式程序中使用,这是因为它们可以用于减少代码大小和周期损失。
在一些间接分支的情形中,可以在执行程序之前确定合理目标的集合。在此情形中,可以充分构造协处理器程序。然而,管理多个目标的问题仍然存在。
实际上,协处理器必须分支到的地址当前被编码在分支指令中,该分支指令并不提供足够的位以编码多个地址。
此外,即使可以例如使用表格存储多个地址,多个地址中的每个地址也必须与处理器的对应地址链接,否则协处理器无法知晓要分支到哪个地址。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于意法半导体(鲁塞)公司,未经意法半导体(鲁塞)公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610877773.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种启动虚拟机的方法和装置
- 下一篇:数据存储装置