DOS与Windows可执行文件格式:从NE到PE
需积分: 50 91 浏览量
更新于2024-08-20
收藏 825KB PPT 举报
"本文将深入探讨两种经典的Windows可执行文件格式:NE(New Executable)和PE(Portable Executable)。这两种格式对于理解Windows操作系统如何执行程序至关重要。"
在DOS环境中,存在多种类型的可执行文件,包括批处理文件(.BAT)、设备驱动文件(.SYS)和COM文件(.COM)。COM文件是一种简单的64KB以内大小限制的程序,而EXE文件(.EXE)则更为复杂,它以“MZ”为标志,包含了文件头、重定位表和二进制代码,从而突破了代码大小的限制。
NE文件格式是在Windows 3.0/3.1时代引入的,它在传统的MZ文件头之后添加了一个以“NE”开头的文件头。这个NE头包含有关程序模块结构的信息,如段信息、资源管理、版本信息等。NE格式是16位Windows系统中的标准,但在后来的Windows版本中逐渐被PE格式取代。
PE文件格式,也称为可移植的可执行文件格式,是Win32平台的核心。PE格式在MZ文件头之后包含一个“PE”标志,标志着这是一个PE格式的文件。PE文件不仅包含了MZ格式的元素,还扩展了更多特性,如支持多线程、动态链接库(DLL)、异常处理和安全特性。PE文件由几个关键部分组成:DOS头、PE头、节表、数据目录以及实际的代码和数据。
PE头提供了关于文件的元数据,包括文件头(COFF头)、可选头(Optional Header)和节表。可选头包含了程序的入口点地址、操作系统信息、代码和数据的属性等。节表则定义了文件的各个逻辑部分(如.text、.data等),每个节有自己的属性,如起始地址、大小等。数据目录则包含了如导入表、导出表、资源表等重要信息的指针。
加载PE文件时,操作系统会根据PE头的信息进行重定位,处理导入和导出,以及分配内存和初始化堆栈。一旦准备就绪,程序的入口点地址(在可选头中指定)就会被执行,从而启动程序的运行。
从NE到PE的演进反映了Windows操作系统的进化,从16位到32位再到64位,每次升级都带来了更多的功能和更高的性能。理解这两种格式对于系统编程、软件调试和逆向工程等领域具有重要意义。
2008-01-05 上传
2013-04-08 上传
2007-08-06 上传
2008-02-20 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
劳劳拉
- 粉丝: 20
- 资源: 2万+
最新资源
- Android圆角进度条控件的设计与应用
- mui框架实现带侧边栏的响应式布局
- Android仿知乎横线直线进度条实现教程
- SSM选课系统实现:Spring+SpringMVC+MyBatis源码剖析
- 使用JavaScript开发的流星待办事项应用
- Google Code Jam 2015竞赛回顾与Java编程实践
- Angular 2与NW.js集成:通过Webpack和Gulp构建环境详解
- OneDayTripPlanner:数字化城市旅游活动规划助手
- TinySTM 轻量级原子操作库的详细介绍与安装指南
- 模拟PHP序列化:JavaScript实现序列化与反序列化技术
- ***进销存系统全面功能介绍与开发指南
- 掌握Clojure命名空间的正确重新加载技巧
- 免费获取VMD模态分解Matlab源代码与案例数据
- BuglyEasyToUnity最新更新优化:简化Unity开发者接入流程
- Android学生俱乐部项目任务2解析与实践
- 掌握Elixir语言构建高效分布式网络爬虫