PE笔记之DOS头

IMAGE_DOS_HEADER STRUCT

{

+0h WORD e_magic    // Magic DOS signature MZ(4Dh 5Ah)     DOS可执行文件标记

+2h   WORD e_cblp    // Bytes on last page of file

+4h WORD e_cp    // Pages in file

+6h WORD e_crlc    // Relocations

+8h WORD e_cparhdr   // Size of header in paragraphs

+0ah WORD e_minalloc   // Minimun extra paragraphs needs

+0ch WORD e_maxalloc  // Maximun extra paragraphs needs

+0eh WORD e_ss            // intial(relative)SS value        DOS代码的初始化堆栈SS

+10h WORD e_sp     // intial SP value                       DOS代码的初始化堆栈指针SP

+12h WORD e_csum     // Checksum

+14h WORD e_ip     // intial IP value               DOS代码的初始化指令入口[指针IP]

+16h WORD e_cs     // intial(relative)CS value         DOS代码的初始堆栈入口

+18h WORD e_lfarlc     // File Address of relocation table

+1ah WORD e_ovno         // Overlay number

+1ch WORD e_res[4]      // Reserved words

+24h WORD e_oemid      // OEM identifier(for e_oeminfo)

+26h WORD      e_oeminfo   // OEM information;e_oemid specific

+29h WORD e_res2[10]   // Reserved words

+3ch DWORD   e_lfanew     //  Offset to start of PE header      指向PE文件头//http://www.cnblogs.com/zheh/p/4013184.html

} IMAGE_DOS_HEADER ENDS

  • DOS头是用来兼容MS-DOS操作系统的,目的是当这个文件在MS-DOS上运行时提示一段文字,大部分情况下是:This program cannot be run in DOS mode.还有一个目的,就是指明NT头在文件中的位置(NT头笔记:http://www.cnblogs.com/zheh/p/4013184.html)。
时间: 2024-10-03 09:09:43

PE笔记之DOS头的相关文章

win32下PE文件分析之DOS头

(一).win32下的PE文件: PE是Portable Execute的缩写,是可移植可执行的意思,只要文件的数据结构遵循PE结构,就属于PE文件,windows中常见的PE文件有 *.sys驱动类文件 *.dll动态链接库文件 *.exe可执行文件 *.ocx对象类别扩充组建 *.obj目标文件等. 同样,linux中使用的是ELF格式,和windows的PE格式有一定的差别,如: 可重定位文件*.o 可执行文件如/bin/ls等 共享目标文件*.so 核心转储文件core 都遵循ELF数据

PE 学习之路 —— DOS 头、NT 头

1. 前述 可执行文件的格式是操作系统本身执行机制的反映,理解它有助于对操作系统的深刻理解,掌握可执行文件的数据结构及其一些机理,是研究软件安全的必修课.`PE(Portable Executable File Format)`是目前 windows 平台上的主流可执行文件格式.PE 文件衍生于早期的 COFF 文件格式,描述 PE 格式及 COFF 文件的主要地方在 winnt.h 这个头文件,其中有一节叫 Image Format,如下: 该节给出了 DOS MZ 格式和 windows 3

PE文件介绍 (2)-DOS头,DOS存根,NT头

PE头 PE头由许多结构体组成,现在开始逐一学习各结构体 0X00 DOS头 微软创建PE文件格式时,人们正广泛使用DOS文件,所以微软充分考虑了PE文件对DOS文件的兼容性.其结果是在PE头的最前面添加一个 IMAGE_DOS_HEADER 结构体用来扩展DOSEXE头 IMAGE_DOS_HEADER typedef struct _IMAGE_DOS_HEADER { WORD e_magic; //DOS签名 4D5A WORD e_cblp; WORD e_cp; WORD e_crl

DOS头结构

DOS头结构typedef struct _IMAGE_DOS_HEADER {                 // DOS .EXE header   +0h WORD   e_magic;                          // *****DOS可执行文件标记*****   +2h WORD   e_cblp;                      // Bytes on last page of file   +4h WORD   e_cp;             

DOS头 IMAGE_DOS_HEADER

1 IMAGE_DOS_HEADER STRUCT 2 { 3 +0h WORD e_magic // Magic DOS signature MZ(4Dh 5Ah) DOS可执行文件标记 4 +2h WORD e_cblp // Bytes on last page of file 5 +4h WORD e_cp // Pages in file 6 +6h WORD e_crlc // Relocations 7 +8h WORD e_cparhdr // Size of header in

PE笔记之PE基本结构

PE(Portable Execute) 文件是Windows下可执行文件的总称,常见的有DLL,EXE,OCX,SYS等,事实上,一个文件是否是PE文件与其扩展名无关,PE文件可以是任 何扩展名.那Windows是怎么区分可执行文件和非可执行文件的呢?我们调用LoadLibrary传递了一个文件名,系统是如何判断这个文件是一个合 法的动态库呢?这就涉及到PE文件结构了. PE文件的结构一般来说如下图所示:从起始位置开始依次是DOS头,NT头,节表以及具体的节.

DOS头属性

DOS头部分分为两个部分: 1.DOS MZ头 2.DOS块 1.DOS MZ头是一个IMAGE_DOS_HEADER结构体,其大小占64个字节 typedef struct _IMAGE_DOS_HEADER { // DOS .EXE header WORD e_magic; // Magic number WORD e_cblp; // Bytes on last page of file WORD e_cp; // Pages in file WORD e_crlc; // Reloca

C语言学习笔记(2):引用头文件所使用的符号区别

C语言引用头文件使用的符号有两种,以头文件stdio.h为例: (1)#include <stdio.h> (2)#include “stdio.h” 这两种引用方式是存在不同的. 第一种引用方式,编译器仅在标准库头文件中进行匹配: 第二种引用方式,编译器先在工程目录下进行匹配,如果没有,再到标准库头文件中查找. 这里进行了测试,应用VC++6.0,新建文件,首先是主文件Test.c: #include <child.h> void main() { Test(); } 然后,为了

深入剖析PE文件

不赖猴的笔记,转载请注明出处. 深入剖析PE文件 PE文件是Win32的原生文件格式.每一个Win32可执行文件都遵循PE文件格式.对PE文件格式的了解可以加深你对Win32系统的深入理解. 一.        基本结构. 上图便是PE文件的基本结构.(注意:DOS MZ Header和部分PE header的大小是不变的:DOS stub部分的大小是可变的.) 一个PE文件至少需要两个Section,一个是存放代码,一个存放数据.NT上的PE文件基本上有9个预定义的Section.分别是:.t