论文部分内容阅读
在没有软件源代码的情况下,为了对其增加功能或修正错误,需要在机器指令级别上对软件进行修改,将机器代码嵌入到宿主软件中。这就是软件或代码嵌入。软件嵌入由来已久,文件补丁、软件加壳和计算机病毒等都是典型软件嵌入的应用。虽然软件嵌入被广泛使用,但是并没有对这项技术的系统的研究。本文对软件嵌入所涉及的内容进行了初步的分类和较深入的整理和研究,试图系统地提出软件嵌入技术。本文首先对软件嵌入技术的概念、分类、原理、特点及方法进行了科学的分析,在此基础上,系统地提出了软件嵌入中的嵌入点、嵌入空间和嵌入结构等概念。对嵌入点的作用和类型进行了深入的分析,明确了控制嵌入点和功能嵌入点的功能分工,总结出了四类控制嵌入点:入口嵌入点、中间嵌入点、出口嵌入点和文件头嵌入点。对嵌入空间归纳出了尾部嵌入空间和孔隙嵌入空间。对嵌入结构归纳出了JUMP-JUMP和CALL-RET两种嵌入结构。软件嵌入在具体实施时,是和宿主软件的格式和软件的运行平台密切相关的。以软件嵌入技术作指导,本文详细地介绍了在DOS和WINDOWS操作系统下,软件嵌入的具体实施方法和应该注意的问题,包括DOS下COM和EXE可执行文件和WINDOWS下PE可执行文件的格式、加载过程、嵌入点和嵌入空间的获取以及实现框架等内容。BIOS是存储在BIOS芯片中的固件,它是一种特殊的软件,与存储在磁盘上的操作系统下的软件相比,它具有一些独特的性质。本文对BIOS的运行原理、文件结构、嵌入点和嵌入空间进行了研究,提出了一种结合BIOS诊断码查找出口嵌入点的方法,在出口嵌入点的基础上提出了一种新的BIOS嵌入方法。BIOS是计算机架构中最底层的软件,作为计算机安全系统中最基本和最重要的组成部分,BIOS安全却经常被大家所忽略。早期的BIOS芯片是小容量的ROM,现在的BIOS芯片大都为大容量的FLASH ROM,这种变化使BIOS功能更丰富,升级更方便的同时,也使得在BIOS中嵌入恶意代码成为可能,利用BIOS嵌入技术,本文提出了一个检测BIOS恶意代码以及恢复BIOS的纯软件方案。