PE结构_01

ZC: 主要是 非代码的 分析结构

1、

  1.1、DosHeader: PE从偏移0开始就是

  1.2、NtHeader: 位于 紧接着DosHeader的后面(具体位置为: DosHeader的偏移[0] + DosHeader.e_lfanew)

    1.2.1、NtFileHeader: NtHeader.FileHeader

    1.2.2、NtOptionalHeader: NtHeader.OptionalHeader

  1.3、DataDirectory: NtOptionalHeader.DataDirectory

2、

sizeof(IMAGE_DOS_HEADER) : 64 [0x40]
sizeof(IMAGE_NT_HEADERS32) : 248 [0xF8]
sizeof(IMAGE_FILE_HEADER) : 20 [0x14]
sizeof(IMAGE_OPTIONAL_HEADER32) : 224 [0xE0]
sizeof(IMAGE_DATA_DIRECTORY) : 8 [0x8]

IMAGE_DOS_HEADER.e_lfanew : 60 [0x3C]
IMAGE_NT_HEADERS32.FileHeader : 4 [0x4]
IMAGE_NT_HEADERS32.OptionalHeader : 24 [0x18]
IMAGE_OPTIONAL_HEADER32.DataDirectory : 96 [0x60]

3、

  3.1、WINNT.h

#define IMAGE_DIRECTORY_ENTRY_EXPORT          0   // Export Directory
#define IMAGE_DIRECTORY_ENTRY_IMPORT          1   // Import Directory
#define IMAGE_DIRECTORY_ENTRY_RESOURCE        2   // Resource Directory
#define IMAGE_DIRECTORY_ENTRY_EXCEPTION       3   // Exception Directory
#define IMAGE_DIRECTORY_ENTRY_SECURITY        4   // Security Directory
#define IMAGE_DIRECTORY_ENTRY_BASERELOC       5   // Base Relocation Table
#define IMAGE_DIRECTORY_ENTRY_DEBUG           6   // Debug Directory
//      IMAGE_DIRECTORY_ENTRY_COPYRIGHT       7   // (X86 usage)
#define IMAGE_DIRECTORY_ENTRY_ARCHITECTURE    7   // Architecture Specific Data
#define IMAGE_DIRECTORY_ENTRY_GLOBALPTR       8   // RVA of GP
#define IMAGE_DIRECTORY_ENTRY_TLS             9   // TLS Directory
#define IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG    10   // Load Configuration Directory
#define IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT   11   // Bound Import Directory in headers
#define IMAGE_DIRECTORY_ENTRY_IAT            12   // Import Address Table
#define IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT   13   // Delay Load Import Descriptors
#define IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR 14   // COM Runtime descriptor

3、

时间: 2024-09-30 06:37:36

PE结构_01的相关文章

PE结构、SEH相关知识学习笔记

原文:http://www.pediy.com/kssd/index.html -- 病毒技术 -- 病毒知识 -- Anti Virus专题 PE结构的学习 原文中用fasm自己构造了一个pe,这里贴一个用masm的,其实是使用WriteFile API将编写的PE数据写成文件~也没啥好说的,PE结构在这里没有仔细介绍,需要可以另外查询,剩下要说的的基本都在代码注释里了 参考:点击打开链接(PEDIY技术之新思路(二)_用'高级'编译器MASM实现自定义PE文件结构) Pe.asm: REMO

OD 实验 - 对 PE 结构的简单分析

载入程序,按 Alt+M 查看内存空间 双击进入程序的 PE 头 这些为 DOS 环境下才会运行的 这个执行 PE 的地址,PE 结构的偏移地址为 C0 找到这个地址 以 PE 开头 SizeOfCode 为代码段的大小 SizeOfInitializedData 为所有含已初始化数据的块的大小 这两个值明显太大了,可能被恶意修改过了,可以把他们修改一下 右键 -> 二进制 -> 编辑,快捷键为 Ctrl+E 或者右键 -> 修改整数 SizeOfCode 可能为 400,SizeOfI

编写自定义PE结构的程序(如何手写一个PE,高级编译器都是编译好的PE头部,例如MASM,TASM等,NASM,FASM是低级编译器.可以自定义结构)

正在学PE结构...感谢个位大哥的文章和资料...这里先说声谢谢 一般高级编译器都是编译好的PE头部,例如MASM,TASM等一直都说NASM,FASM是低级编译器.可以自定义结构但是苦于无人发布相关文章说明..我这里就简单的用NASM写一下由于刚学PE结构许多东西都不太懂希望个位大侠指点如何打造一个迷你的PE结构..我暂只只能作到617字节下面随着学习的深入...还有更迷你的PE出现... 代码可以直接编译..编译参数:nasmw -fbin MsgBoxA.asm -o MsgBoxA.ex

手写PE结构解析工具

PE格式是 Windows下最常用的可执行文件格式,理解PE文件格式不仅可以了解操作系统的加载流程,还可以更好的理解操作系统对进程和内存相关的管理知识,而有些技术必须建立在了解PE文件格式的基础上,如文件加密与解密,病毒分析,外挂技术等,在PE文件中我们最需要关注,PE结构,导入表,导出表,重定位表,下面将具体介绍PE的关键结构,并使用C语言编程获取到这些结构数据. 参考文献: [琢石成器 Win32汇编语言程序设计 - 罗云彬] 整理学习笔记,精简内容,翻译汇编代码C语言化 在任何一款操作系统

PE结构解析的代码

0x00 32位程序的PE结构 DOS头 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 paragraph

PE结构学习02-导出表

导出表: 上篇文章,我们学习了各种头,Dos,NT,节表头,我们知道,OptionalHeader指向的DataDirectory[]数组一共有16个: 我们接下来要学习的有: IMAGE_DIRECTORY_ENTRY_IMPORT 导入表 IMAGE_DIRECTORY_ENTRY_BASERELOC 基址重定位表 IMAGE_DIRECTORY_ENTRY_EXPORT 导出表 IMAGE_DIRECTORY_ENTRY_RESOURCE 资源表 今天我们学习导出表: 我们知道dll文件,

PE结构详解

1 基本概念 下表描述了贯穿于本文中的一些概念: 名称 描述 地址 是“虚拟地址”而不是“物理地址”.为什么不是“物理地址”呢?因为数据在内存的位置经常在变,这样可以节省内存开支.避开错误的内存位置等的优势.同时用户并不需要知道具体的“真实地址”,因为系统自己会为程序准备好内存空间的(只要内存足够大) 镜像文件 包含以EXE文件为代表的“可执行文件”.以DLL文件为代表的“动态链接库”.为什么用“镜像”?这是因为他们常常被直接“复制”到内存,有“镜像”的某种意思.看来西方人挺有想象力的哦^0^

将文件读取到内存、打印pe结构

#include <stdio.h> #include <malloc.h> #include <stdlib.h> #include <string.h> #define STREAMBUFFER 1024 #define FILEPATHSIZE 256 /** 将一个文件读到内存 return 成功 首地址 失败 0 */ void* getAdrr(char filePath[FILEPATHSIZE]) { char* fileP; char* t

PE详解之IMAGE_DOS_HEADER结构定义即各个属性的作用(PE详解01)

小甲鱼在这里为大家做好了详细的注释,免得大家一头雾水,另外可以结合小甲鱼<加密系列>-系统篇-PE结构详解视频教程学习~若有纰漏之处还望大家不吝指正. (视频教程:http://fishc.com/a/shipin/jiemixilie/) (注:最左边是文件头的偏移量.) IMAGE_DOS_HEADER STRUCT { +0h WORD e_magic   // Magic DOS signature MZ(4Dh 5Ah)     DOS可执行文件标记 +2h   WORD  e_cb