浅谈可执行文件格式发展历程

2016-03-12 10:57刘欣宜
电子测试 2016年19期
关键词:格式文件字节硬盘

刘欣宜

(云南大学软件学院,650500)

浅谈可执行文件格式发展历程

刘欣宜

(云南大学软件学院,650500)

文章针对软件安全基础的Windows可执行文件四个发展过程下的可执行文件格式展开研究性分析。引入可执行文件格式概念并简要介绍MZ、NE、LE、PE格式,选取DOS系统下的com格式和MZ格式以及另外的PE格式进行深入探讨,区分异同进行比较。同时谈及病毒感染概念,对其原理进行详尽解释。本文对于计算机基础知识和软件原理的巩固掌握以及软件安全领域的深入研究挖掘具有重大的参考价值和宏观指导意义。

软件安全;可执行文件格式;感染原理及预防

0 引言

随着社会科学的进步以及计算机技术的飞速发展,当今社会逐步走向信息化,软件的开发和应用走进大众生活的方方面面。在信息技术提高国民生活水平,促进社会进步的同时,软件安全也逐渐成为当今社会高度关注的话题。病毒感染、黑客非法入侵都对软件安全造成了巨大的威胁。提高软件安全机制,增强软件安全相关技能需要从根本上掌握软件等一系列相关知识。本质上对于提高知识水平的迫切需要体现出可执行文件及可执行文件格式掌握的必要性。熟知Com格式、MZ格式以及PE格式存储执行原理,并对入侵感染原理熟练掌握,才能在根本上防止一系列非法操作。实现对软件的保护和软件安全性的捍卫,是每一位软件安全工作者义不容辞的责任。

1 Windows可执行文件格式发展

Windows操作系统从最初仅仅是MS-DOS模拟环境的桌面操作系统逐步更新升级为如今最受大众喜爱的操作系统。在Windows操作系统下,Windows可执行文件经历了分别为DOS、Win3.x、Win3.x和Win9x以及Win9x和WinNT/2000/XP四个发展阶段。每个发展阶段都对应在相应的可执行文件格式。在以上四个过程出现的MZ格式、NE格式、LE格式以及PE格式提供了不同的可执行文件方式。在这四个Windows可执行文件格式中,MZ格式和NE格式属于Win16,PE格式属于Win32,而LE格式则是可以兼容Win16和Win32的操作系统。其中MZ格式主要以.com和.exe为扩展名,LE为线性可执行文件,用于虚拟设备驱动程序,可驱动键盘鼠标等虚拟程序。PE指的是具有用来提供函数调用的输出表的可移动可执行文件,其中可移动不是指跨平台,而是指与系统无关,针对于同一种操作系统下的任何设备均可使用的文件,经过不断完善发展,成为具有较高优越性的可执行文件格式。

2 COM格式

COM格式文件执行单任务,及在cmd窗口下只能执行一个程序。其规定最大内存空间为64K,因此该格式只能有一个段码,所用信息必须放入同一个段中。在COM格式文件中最大的问题就是该格式没有重定位信息,因此可能会引起程序的崩溃。重定位指的是在装入程序的过程中对目标程序中的指令和数据进行修改,即在规定保存空间被操作系统或其他程序使用的时候为相关变量重新分配保存空间。例如在执行A.EXE可执行文件同时调用1.dll和2.dll动态链接库,而其所设定的变量均指定偏移地址为1000H的保存空间,需要为其中一个变量重新分配空间。

在COM格式文件中包含程序二进制代码的绝对映像,使得该文件格式可以将信息完全相同地从硬盘拷贝到内存之中。该绝对映像占用连续的内存空间,不能使用分离的空间进行保存,因此可能在执行文件过程中提示内存空间不足。

执行COM格式文件首先需要分配内存,由于COM格式只能位于一个段中,因此下一步需要寻找一段内存为64K的空间装载程序,在该段中程序段前缀PSP确定文件执行时所用的运行环境,占用256个字节,堆栈占用256个字节,实际剩下最大内存为65024个字节的空间供程序使用。准备好存储空间后运用COMMAND.COM提供的EXEC对其进行装载,在CS:IP指定的内存空间执行第一条指令,实现COM格式文件的执行操作。

3 MZ格式

MZ格式可执行文件中将代码划分为MZ文件头、重定位表以及二进制代码三大块进行保存。其中MZ文件头规定执行文件的入口地址,可通过设置SS、SP、CS、IP的取值进行修栈,从而实现重定位。二进制代码相当于机器指令,经过编译链接,用于检查语法错误以及创建相应的数据结构。

COM格式与MZ格式均含有16位程序的二进制代码。但与COM格式相比,MZ格式具有了重定位功能,在硬盘文件映射到内存文件的过程中采用相对映射,使得代码保存地址在硬盘和内存中可能不同。COM格式文件为一段连续的代码,不能进行分块保存,在硬盘文件采用绝对映射方式映射到内存文件中时保存为PSP程序段前缀与二进制编码两段的形式,该格式在执行时只能放入指定的内存空间中,较为死板。而MZ格式文件分三块进行保存,相对映射后在内存文件中依然为三段形式,代码保存在第三个模块及二进制代码处。此外由于已经具备MZ文件头,因此不再需要添加PSP程序段前缀。DOS可以将其装载到任意位置,相对来说较为灵活。

4 PE格式

PE格式译为可移植的可执行文件,与COM格式和MZ格式不同,其内含32位程序代码和数据,将COM格式和MZ格式中的二进制编码块进行了区分和细化。与其他格式相比,其具有的显著优点在于PE格式含有用来提供函数调用的输出表Exports,用来提供编写程序时所有系统函数或自定义函数。

PE格式中涉及到了地址关联概念。硬盘文件中某条指令映射到4G虚拟内存空间中相应位置,在虚拟内存处执行指令时,指令所涉及的相关变量通过地址关联在硬盘中找到相应存储位置,使得指令得以执行。

在硬盘文件到虚拟内存的映射过程中,指令的偏移地址可能发生变化,这是由保存粒度决定的。正常情况下,指令在虚拟内存中的偏移地址会大于其在硬盘中的偏移地址。硬盘以扇区(512字节)为单位为可执行文件分配保存空间,而虚拟内存以页面(1024字节)为单位为可执行文件分配保存空间,其不同的保存粒度,决定了指令映射后在硬盘和虚拟内存中的偏移地址可能不同。但在Windows系统下,PE文件只进行了地址关联,并未对相关内容作出改变,因此其在磁盘和内存中的数据结构布局始终是相同的。

5 感染原理及防范措施

在虚拟内存中,系统以页面为单位为程序分配相应的保存空间。但由于连续代码段占用空间小于分配页面,因此会形成小字节的空白空间。感染的基本原理即为在不修改程序原来内容的前提下,在小字节空白空间中写进例如病毒等非法指令,之后想办法在代码段区域中找到jmp指令,修改该跳转指令,使程序在执行时跳转到相应装载有非法指令的小字节空白空间,从而实现感染。

由感染最基本的原理可得知,防止感染最有效的方法在于去掉小字节空白空间,即将多个空白空间进行合并,合并为大块内存空间,使得计算机得以为大块区域分配内存空间。从而引入压缩壳的概念,将exe可执行文件进行压缩。

6 结论

在软件安全领域,可执行文件做为操作系统最为重要的文件类型之一以及完成各项操作的真正执行者,需要被每一位软件专业从事人员熟练掌握。本文结合Windows可执行文件这一概念,简述了MZ、NE、LE、PE格式发展历程,并对com格式、MZ格式以及PE格式进行了详细性说明并探索性研究分析了感染的基本原理。本文明确了在可执行文件下,可执行文件格式的重要性,文件格式之间的对比也使得高深复杂的理论知识变得浅显易懂。文章对于编写高性能程序,探求新的软件保护方法,更好地维护软件安全具有不可忽视的意义。

[1]邵丽平:基于PE文件格式的信息隐藏技术.2005

[2]秦志光 张凤荔《计算机病毒原理与防范》人民邮电出版社2007

[3]赵东方:基于壳技术的软件保护技术研究.2009

[4]陈旋,浅谈关于软件安全测试方法研究[J],电脑知识与技术,2009

A discussion on the development of the executable file format

Liu Xinyi
(yun nanUniversitySoftware Institute,650500)

In this paper,the research on the executable file format under the four development process of the Windows executable file for the software security foundation is studied. Introduce the concept of executable file format and briefly introduce the MZ,NE,LE,PE format,select the DOS system under the com format and MZ format and the PE format for in-depth discussion,the distinction between the similarities and differences.At the same time talking about the concept of virus infection,the principle of a detailed explanation.In this paper,the basic knowledge of the computer and the principles of the software and the consolidation of the field of software security research and development of a significant reference value and macro guidance.

software security;executable file format;infection principle and Prevention

猜你喜欢
格式文件字节硬盘
No.8 字节跳动将推出独立出口电商APP
基于WebGL的轨道交通BIM轻量化应用方案
HiFi级4K硬盘播放机 亿格瑞A15
Egreat(亿格瑞)A10二代 4K硬盘播放机
使用“格式文件”将徕卡仪器数据导出成cass 格式的方法
No.10 “字节跳动手机”要来了?
简谈MC7字节码
编写徕卡TS02型全站仪格式文件的方法探索
我区电视台对硬盘播出系统的应用
回归基础 到底什么是RAW格式文件?