view pe header on winhex
来源:互联网 发布:ubuntu 16.04 syslog 编辑:程序博客网 时间:2024/06/03 12:30
前言
在WinHex打开PE文件后, 总是忘记PE结构成员的含义, 直接看蒙了.
整理了一张带标记的图片, 做PE结构识别练习.
练习通过后, 再拿一个正常的没有标记的PE文件在WinHex中直接看.
实验
DOS_HEADER共4行
DOS_HEADER + 0x0, WORD => DOS文件签名
DOS_HEADER + 0x3c, DWORD => NT头偏移
NT_HEADER + 0x0, DWORD => PE文件签名
FILE_HEADER + 0x0, WORD => 机器类型 14c = I386
FILE_HEADER + 0x2, WORD => 扇区数量 = 1, 只有.text
FILE_HEADER + 0x4, DWORD => 时间戳
FILE_HEADER + 0x8, DWORD => 调试符号地址
FILE_HEADER + 0xc, DWORD => 调试符号数量
FILE_HEADER + 0x10, WORD => 可选头size
FILE_HEADER + 0x12, WORD => PE属性(e.g. 是否有调试符号,行号信息)
OPTION_HEADER + 0x0, WORD => 可选头类型, 10b => OPTION_HEADERx86
OPTION_HEADER + 0x2, BYTE*2 => 连接器主副版本
OPTION_HEADER + 0x4, DWORD => 代码size
OPTION_HEADER + 0x8, DWORD => 已初始化数据size
OPTION_HEADER + 0xc, DWORD => 未初始化数据size
OPTION_HEADER + 0x10, DWORD => 程序入口点EP
OPTION_HEADER + 0x14, DWORD => 代码基地址
OPTION_HEADER + 0x18, DWORD => 数据基地址
OPTION_HEADER + 0x1C, DWORD => 建议装载地址
OPTION_HEADER + 0x20, DWORD => 内存对齐值
OPTION_HEADER + 0x24, DWORD => 文件对齐值
OPTION_HEADER + 0x28, WORD*2 => 主系统主副版本号
OPTION_HEADER + 0x2C, WORD*2 => 映像主副版本号
OPTION_HEADER + 0x30, WORD*2 => 子系统主副版本号
OPTION_HEADER + 0x34, DWORD => WIN32版本号
OPTION_HEADER + 0x38, DWORD => 内存中的映像size
OPTION_HEADER + 0x3C, DWORD => Header size
OPTION_HEADER + 0x40, DWORD => 校验和
OPTION_HEADER + 0x44, WORD => 子系统
OPTION_HEADER + 0x46, WORD => PE是否为DLL
OPTION_HEADER + 0x48, DWORD => 栈保留空间
OPTION_HEADER + 0x4C, DWORD => 栈提交空间
OPTION_HEADER + 0x50, DWORD => 堆保留空间
OPTION_HEADER + 0x54, DWORD => 堆提交空间
OPTION_HEADER + 0x58, DWORD => 载入器标志
OPTION_HEADER + 0x5C, DWORD => 数据目录元素个数
OPTION_HEADER + 0x60, DWORD*2 => 数据目录[0]
OPTION_HEADER + 0x68, DWORD*2 => 数据目录[1]
OPTION_HEADER + 0x70, DWORD*2 => 数据目录[2]
OPTION_HEADER + 0x78, DWORD*2 => 数据目录[3]
OPTION_HEADER + 0x80, DWORD*2 => 数据目录[4]
OPTION_HEADER + 0x88, DWORD*2 => 数据目录[5]
OPTION_HEADER + 0x90, DWORD*2 => 数据目录[6]
OPTION_HEADER + 0x98, DWORD*2 => 数据目录[7]
OPTION_HEADER + 0xa0, DWORD*2 => 数据目录[8]
OPTION_HEADER + 0xa8, DWORD*2 => 数据目录[9]
OPTION_HEADER + 0xb0, DWORD*2 => 数据目录[10]
OPTION_HEADER + 0xb8, DWORD*2 => 数据目录[11]
OPTION_HEADER + 0xc0, DWORD*2 => 数据目录[12]
OPTION_HEADER + 0xc8, DWORD*2 => 数据目录[13]
OPTION_HEADER + 0xd0, DWORD*2 => 数据目录[14]
OPTION_HEADER + 0xd8, DWORD*2 => 数据目录[15]
// 可选头结束了
现在我能将NT头和可选头都认出来了,就是有点慢. 估计熟练之后,就好了.
今天解决了能与不能的问题.
- view pe header on winhex
- 用Winhex软件解析PE文件
- winhex
- WINHEX
- PE 格式详解1 PE Header
- PE文件-FILE HEADER与OPTIONAL HEADER
- PE教程4: Optional Header
- PE教程4: Optional Header
- PE教程4: Optional Header
- PE格式之MS-DOS MZ header
- PE结构读取之DOS Header
- 流水账笔记:PE文件格式(Dos Header)
- PE文件格式详解(三)――DOS Header & PE Header
- Table Header and Footer View
- 自定义View---header(标题栏)
- PE教程3: File Header (文件头)
- PE教程3: File Header (文件头)
- PE教程3: File Header (文件头)
- 【杭电oj】4548 - 美素数(打表)
- 瑞利分布
- 浅谈一类积性函数的前缀和
- Codeforces Round #306 (Div. 2) B DFS
- 贪心算法(2)
- view pe header on winhex
- TabLayout实现滑动导航栏
- MD风格之丰富多变Toolbar
- iOS之 改变日期显示样式
- Nginx反向代理Odoo并转为https
- 概率dp
- 初次邂逅sqlmap
- fck实现htm在线编辑
- 【杭电-oj】-1084-What Is Your Grade?(结构体)