发明名称 面向嵌入式微处理器的软硬结合控制流检测方法
摘要 本发明是一种面向嵌入式微处理器的软硬结合控制流检测方法。首先将待运行的C语言程序生成标准汇编文件,其次采用词法分析的方法将汇编文件中包含的用户库和系统库函数连接为一整合汇编文件,采用词法分析的方法通过签名生成程序将整合后的汇编文件进行基本块划分,分析基本块间控制流关系,对各个基本块进行签名,形成新的带有控制流检测数据的汇编文件,再通过修改后的汇编器将汇编文件翻译为目标文件,再由链接器将目标文件转化为二进制映像文件,最后将二进制文件运行到具有控制流检测能力的嵌入式微处理器上。本发明平均冗余代码开销为12%,同基于硬件实现的控制流检测方法相比具有更简单的实现和更高的控制流检测能力,系统未检测率平均仅为1.5%,降低系统运行功耗。
申请公布号 CN101339519B 申请公布日期 2011.09.14
申请号 CN200810136914.5 申请日期 2008.08.13
申请人 哈尔滨工程大学 发明人 吴艳霞;顾国昌;沈晶;刘海波;王克慧
分类号 G06F9/45(2006.01)I;G06F11/00(2006.01)I 主分类号 G06F9/45(2006.01)I
代理机构 代理人
主权项 一种面向嵌入式微处理器的软硬结合控制流检测方法,其特征是:首先将待运行的C语言程序经过SDCC编译器生成标准汇编文件,其输出为.asm格式,其次采用词法分析的方法将汇编文件中包含的用户库和系统库函数连接为一整合汇编文件,其输出为.asm格式,再将整合后的汇编文件采用词法分析方法通过签名生成程序进行基本块的划分、分析基本块间控制流关系,对各个基本块进行签名,形成新的带有控制流检测数据的汇编文件,其输出为.asm格式,再通过修改后的汇编器将汇编文件翻译为目标文件,其输出为.rel格式,再由链接器将目标文件转化为可以执行的二进制映像文件,其输出为.ihx格式;同时,在硬件译码阶段判断跳转指令时,通过控制信号指令操作码ins tr触发控制流检测机制,该控制流检测部件中使用2个寄存器Greg和Mreg,分别记录当前基本块的运行时签名值和运行时调整签名值,由异或门完成比较功能,通过控制流检测信号进行判断,相同表示没有控制流错误,不同表示控制流错误;最后,将二进制文件运行到具有控制流检测能力的嵌入式微处理器上。
地址 150001 黑龙江省哈尔滨市南岗区南通大街145号1号楼哈尔滨工程大学科技处知识产权办公室