欢迎使用CSDN-markdown编辑器

PE结构详解

转载自小甲鱼视频
第一讲:
1.序言:
从某种意义上来讲,可执行文件的格式是操作系统本身执行机制的反应。
虽然研究可执行文件格式并不是程序员的首要任务,但这又处于对操作系统的理解。

2.必备知识:
exe文件 dll文件都是用完全相同的PE格式, 唯一的不同就是用一个字段表示这个文件是exe 文件还是dll文件(exe文件双击就能打开, dll文件是动态链接库,需要exe文件调用)
pe格式定义的主要地方位于我们的头文件winnt.h。

第二讲
每一个PE文件都是以一个DOS程序开始的,这样,一旦程序在DOS下执行,DOS才能识别出这是有效的执行体。
PE文件的第一个字节起始于一个传统的MS-DOS头部,被称作为IMAGE_DOS_HEADER, 这其实是一个结构。

IMAGE_DOS_HEADER结构讲解:
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; // Relocations
WORD e_cparhdr; // Size of header in paragraphs
WORD e_minalloc; // Minimum extra paragraphs needed
WORD e_maxalloc; // Maximum extra paragraphs needed
WORD e_ss; // Initial (relative) SS value
WORD e_sp; // Initial SP value
WORD e_csum; // Checksum
WORD e_ip; // Initial IP value
WORD e_cs; // Initial (relative) CS value
WORD e_lfarlc; // File address of relocation table
WORD e_ovno; // Overlay number
WORD e_res[4]; // Reserved words
WORD e_oemid; // OEM identifier (for e_oeminfo)
WORD e_oeminfo; // OEM information; e_oemid specific
WORD e_res2[10]; // Reserved words
LONG e_lfanew; // File address of new exe header
} IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER;

重点讲解(第一个跟最后一个
e_magic //Majic DOS signature(4Dh 5Ah)
DOS可执行文件标记
一般存放两个字节 4D 和 5A
e_lfanew //offset to start of PE header
指向PE文件头的32位指针

PE文件头(PE Header) 紧挨着DOS stub
PE Header是PE相关结构NT映像头(IMAGE_NT_HEADER)的简称,里面包含着许多PE装载器用到的重要字段

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值