[发明专利]面向嵌入式微处理器的软硬结合控制流检测方法有效
申请号: | 200810136914.5 | 申请日: | 2008-08-13 |
公开(公告)号: | CN101339519A | 公开(公告)日: | 2009-01-07 |
发明(设计)人: | 吴艳霞;顾国昌;沈晶;刘海波;王克慧 | 申请(专利权)人: | 哈尔滨工程大学 |
主分类号: | G06F9/45 | 分类号: | G06F9/45;G06F11/00 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 150001黑龙江省哈尔滨市南岗区南通*** | 国省代码: | 黑龙江;23 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 面向 嵌入式 微处理器 软硬 结合 控制 检测 方法 | ||
1.一种面向嵌入式微处理器的软硬结合控制流检测方法,其特征是:首先将待运行的C语言程序经过SDCC编译器生成标准汇编文件,其输出为.asm格式,其次采用词法分析的方法将汇编文件中包含的用户库和系统库函数连接为一整合汇编文件,其输出为.asm格式,再将整合后的汇编文件采用词法分析方法通过签名生成程序进行基本块的划分、分析基本块间控制流关系,对各个基本块进行签名,形成新的带有控制流检测数据的汇编文件,其输出为.asm格式,再通过修改后的汇编器将汇编文件翻译为目标文件,其输出为.rel格式,再由链接器将目标文件转化为可以执行的二进制映像文件,其输出为.ihx格式;同时,在硬件译码阶段判断跳转指令时,通过控制信号指令操作码ins tr触发控制流检测机制,该控制流检测部件中使用2个寄存器Greg和Mreg,分别记录当前基本块的运行时签名值和运行时调整签名值,由异或门完成比较功能,通过控制流检测信号进行判断,相同表示没有控制流错误,不同表示控制流错误;最后,将二进制文件运行到具有控制流检测能力的嵌入式微处理器上。
2.根据权利要求1所述的面向嵌入式微处理器的软硬结合控制流检测方法,其特征是:所述的生成整合后的汇编文件的方法是:
(1)打开标准用户汇编文件,创建整合的汇编文件;
(2)调用词法分析模块对打开的标准汇编文件进行词法分析;
(3)从汇编文件中读取词素,判断其是否为系统库标识;
(4)如果不是系统库标识,返回步骤3;
(5)如果是系统库标识,查找其对应的系统的汇编文件,创建链表结构;
(6)遍历步骤5中的汇编文件,查找其中是否调用其它系统库函数,如果是调用,返回步骤5;
(7)如果不是调用,且未到文件尾,返回步骤6,直至遍历完后返回至上层系统汇编文件,继续执行步骤6,如果是顶层系统库汇编文件,继续执行步骤8;
(8)根据遍历关系生成的链表结构,将系统库中的系统库标识替换为汇编语言对应的函数,按顺序将系统库汇编文件插入到整合文件中;
(9)直至扫描到文件尾部;
(10)第2遍扫描用户汇编文件;
(11)从汇编文件中读取词素,判断其是否为系统库标识;
(12)如果不是系统库标识,将其输入到整合的汇编文件中,如果不是文件尾部,返回步骤11继续扫描,如果是文件尾部,结束扫描;
(13)如果是系统库标识,修改整合文件,将其系统库标识替换为汇编语言对应的函数,将其输入到整合的汇编文件中,如果不是文件尾部,返回步骤11继续扫描,如果是文件尾部,结束扫描。
3.根据权利要求1或2所述的面向嵌入式微处理器的软硬结合控制流检测方法,其特征是:所述的对各个基本块进行签名,形成新的带有控制流检测数据的汇编文件的方法为:
(1)首先需要划分基本块、分析基本块间关系,实现步骤:
第一步:由预处理函数将标准汇编源码预处理生成一个中间文件.gc;
第二步:由词法分析函数分析中间文件.gc,划分基本块;
第三步:分析基本块间关系,生成基本块链表;
第四步:根据第三步生成的基本块链表和函数调用链表来补充完整函数调用和返回块的关系,得到一个完整的基本块链表,这个链表中包含了所有的基本块信息、基本块之间的调用关系;
(2)生成编译时签名值检测数据,生成算法实现步骤:
第一步:根据最后的基本块链表生成各个基本块的签名值s,签名差d及多调整签名值M,生成步骤如下:
第二步:向基本块中插入伪指令.sign、签名差d、签名值s,提取插入数据的位置和需要插入的数据,将这些数据存放到一维数组中,对这些数据按照行号从小到大排序,数据插入位置为:伪指令.sign插入到基本块入口;签名差d、签名值s,插入在伪指令.sign的下一行;
(3)生成带控制流检测数据的汇编文件
第一步:生成最后文件.end,读中间文件并写入到最后文件,根据数组中该位置上的数据类型生成相应的代码插入到最终文件中;
第二步:关闭文件,生成带控制流检测数据的汇编文件,修改格式为.asm。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于哈尔滨工程大学,未经哈尔滨工程大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810136914.5/1.html,转载请声明来源钻瓜专利网。