首页> 中文学位 >嵌入式软件的编译器优化分析及安全性验证技术研究
【6h】

嵌入式软件的编译器优化分析及安全性验证技术研究

代理获取

目录

文摘

英文文摘

论文说明:图表目录

声明

第1章绪论

1.1.背景

1.2.GCC编译系统体系结构

1.3.编译器优化技术

1.4.编译器验证技术相关研究

1.5.本文的主要内容和工作

1.6.论文组织

1.7.小结

第2章GCC优化分析

2.1.去除冗余优化

2.1.1.局部公共子表达式删除

2.1.2.全局公共子表达式删除

2.1.3.支持懒惰代码移动的一般部分冗余去除

2.2.循环优化

2.2.1.代码外提

2.2.2.归纳变量的检测与删除

2.2.3.强度削弱

2.2.4.循环展开

2.2.5.循环合并(Loop Jamming)

2.2.6.测试外提(Unswitching)-常量比较条件提取

2.3.分支跳转优化

2.3.1.指令预取优化

2.3.2.IF转换支持

2.3.3.分支预测

2.3.4.跳转优化

2.4.指令组合优化

2.5.指令调度

2.6.基于着色图的寄存器分配

2.7.寄存器优化

2.8.小结

第3章GCC安全性分析

3.1.去除冗余优化模块

3.1.1.局部公共子表达式消除子模块

3.1.2.全局公共子表达式消除子模块

3.1.3.支持懒惰代码移动的一般部分冗余去除模块

3.2.循环优化

3.2.1.代码外提

3.2.2.归纳变量的检测与删除

3.2.3.强度削弱

3.2.4.循环展开

3.2.5.测试外提(Unswitching)-常量比较条件提取

3.3.分支跳转优化

3.3.1.指令预取优化

3.3.2.IF转换支持

3.3.3.分支预测

3.3.4.跳转优化

3.4.指令组合

3.5.指令调度

3.5.1.指令依赖关系计算

3.5.2.指令的链表调度

3.5.3.指令的扩展基本块调度(EBB调度)

3.5.4.可视化指令调度信息

3.6.基于着色图的寄存器分配

3.6.1.建立冲突图

3.6.2.图着色

3.6.3.添加溢出代码

3.7.寄存器优化

3.7.1.全局寄存器分配

3.7.2.将伪寄存器重载为实际寄存器

3.7.3.减少寄存器重载引起的负载

3.7.4.移动/修改寄存器

3.7.5.寄存器到堆栈转换

3.8.小结

第4章GCC安全性验证

4.1.总体方案描述

4.1.1.基本思路

4.1.2.实施步骤

4.1.3.参与人员角色与约束

4.1.4.输出状态验证的方法研究

4.2.实例分析

4.2.1.强度削弱优化模块的安全性验证

4.3.小结

第5章总结

参考文献

致谢

作者简历

展开▼

摘要

本文主要研究了一个支持多平台的C语言编译器,它可以在Windows主机上运行,可编译和反编译运行在htel 80486实模式、无操作系统目标机下的可执行程序,优化性能卓越,编译目标代码尺寸足够小、执行效率足够高,并且安全可靠。 本文以开放源码的优化编译系统--GCC为研究基础,着重对目标机体系结构相关的优化编译方法和优化技术进行了分析研究。在这些工作的基础上,我们进一步研究了这些优化模块引入安全性问题的可能性及其可能嵌入恶意代码的位置,并根据航天军工等领域对嵌入式软件的特殊需求,提出了一个针对编译器本身的安全性验证方案,它包含4个关键环节:编译器代码分析、安全性保障断言和验证代码附加、恶意代码嵌入位置分析和嵌入以及安全性确认测试;同时,有四种角色参与整个验证过程,包括代码分析员、安全保障员、模拟攻击员和安全确认员。 最后,为了测试方案的可行性和有效性,我们用一个实例描述了这个方案的具体实施过程。在前期代码分析的基础上,安全保障员对优化模块附加验证代码,模拟攻击员嵌入恶意代码。结果表明,安全确认员能够在合理的时间内成功发现编译器嵌入了恶意代码。

著录项

相似文献

  • 中文文献
  • 外文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号