首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

2.2 PE结构:文件头详细解析

从DOS文件头IMAGE_DOS_HEADER的e_lfanew字段向下偏移003CH的位置,就是真正的PE文件头的位置,该文件头是由IMAGE_NT_HEADERS结构定义的,IMAGE_NT_HEADERS...DOS头结构时PE文件中的重要组成部分,PE文件中的DOS部分由MZ格式的文件头和可执行代码部分组成,可执行代码被称为DOS块(DOS stub),MZ格式的文件头由IMAGE_DOS_HEADER结构定义...从DOS文件头IMAGE_DOS_HEADER的e_lfanew字段向下偏移003CH的位置,就是真正的PE文件头的位置,该文件头是由IMAGE_NT_HEADERS结构定义的,IMAGE_NT_HEADERS...我们继续跟进_IMAGE_NT_HEADERS结构体里面的第二个结构IMAGE_OPTINAL_HEADER,该头结构非常重要要,里面存储着程序的数据目录表,可选头紧挨着文件头,文件头的结束位置在0x000000DF...可选头是对文件头的一个扩展,文件头主要描述文件的相关信息,而可选头主要用来管理PE文件被操作系统装载时所需要的信息,该头是有32位版本与64位版本之分的,其实IMAGE_OPTIONAL_HEADER是一个宏

24610

2.2 PE结构:文件头详细解析

从DOS文件头IMAGE_DOS_HEADER的e_lfanew字段向下偏移003CH的位置,就是真正的PE文件头的位置,该文件头是由IMAGE_NT_HEADERS结构定义的,IMAGE_NT_HEADERS...DOS头结构时PE文件中的重要组成部分,PE文件中的DOS部分由MZ格式的文件头和可执行代码部分组成,可执行代码被称为DOS块(DOS stub),MZ格式的文件头由IMAGE_DOS_HEADER结构定义...DOS文件头IMAGE_DOS_HEADER的e_lfanew字段向下偏移003CH的位置,就是真正的PE文件头的位置,该文件头是由IMAGE_NT_HEADERS结构定义的,IMAGE_NT_HEADERS...我们继续跟进_IMAGE_NT_HEADERS结构体里面的第二个结构IMAGE_OPTINAL_HEADER,该头结构非常重要要,里面存储着程序的数据目录表,可选头紧挨着文件头,文件头的结束位置在0x000000DF...可选头是对文件头的一个扩展,文件头主要描述文件的相关信息,而可选头主要用来管理PE文件被操作系统装载时所需要的信息,该头是有32位版本与64位版本之分的,其实IMAGE_OPTIONAL_HEADER是一个宏

32330

【BLE MIDI】MIDI 文件格式分析 ( MIDI 文件头解析 | MIDI 文件头标识 | MIDI 文件头长度 | MIDI 文件格式 | MIDI 轨道个数 | 基本时间 )

文章目录 一、MIDI 文件简介 二、MIDI 文件头解析 1、MIDI 文件头标识 2、MIDI 文件头长度 3、MIDI 文件格式 4、MIDI 轨道个数 5、基本时间 一、MIDI 文件简介 -...--- 下面的 mid 文件是一个简单 midi , 其中只有一条轨道 , 一个音符 ; 这个 mid 文件很简单 , 但是麻雀虽小 , 五脏俱全 , 其中有所有的必须的 midi 文件头 , midi...---- 文件头数据 : 4D 54 68 64 00 00 00 06 00 00 00 01 01 E0 1、MIDI 文件头标识 4D 54 68 64 : 0 ~ 3 字节 , " MThd..., 整型高位在低字节 , 该数据表示 mid 文件文件头长度 , 这里的文件头长度为 6 , 表示后面 6 字节是 mid 文件文件头的范围 ; 大端格式 : 高位存储在低字节中 , 符合人的书写习惯...作为一部分 , 第 0 ~ 7 位 作为一部分 ; 由于是大端格式排列 , mid 文件第 12 字节 ( 低地址 ) 是 高位 , mid 文件第 13 字节 ( 高地址 ) 是低位 ; 01 E0 的二进制形式如下

60620

PE文件和COFF文件格式分析——签名、COFF文件头和可选文件头3

《PE2》中介绍了一些可选文件头中重要的属性,为了全面起见,本文将会讲解那些不是那么重要的属性。虽然不重要,但是还是可以发现很多好玩的情况。首先看一下32位的可选文件头详细定义。...IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; } IMAGE_OPTIONAL_HEADER64, *PIMAGE_OPTIONAL_HEADER64;         Magic字段是可选文件头幻数...注意该属性不能说明这个文件是64位件还是32位件,至于判断是多少位文件的方案我在《PE2》中已经有了说明。         ...m_dwSizeOfImage ) { _ASSERT(FALSE); }         SizeOfHeaders的官方解释是MS-DOS占位程序、PE文件头和节头的总大小...这儿我们要说一下,我们在IMAGE_FILE_HEADER::SizeOfOptionalHeader得到了可选文件头的大小,而影响可选文件头大小的就是DataDirectory元素的个数(NumberOfRvaAndSizes

1.2K30

PE文件和COFF文件格式分析——签名、COFF文件头和可选文件头2

原因在《可选文件头1》做了介绍,IMAGE_FILE_HEADER中字段SizeOfOptionalHeader指定了该文件中保存的“可选文件头”真实长度,我们应该根据该元素来给IMAGE_OPTIONAL_HEADER32...最开始我也是这么想的,后来我发现我电脑上Microsoft Visual Studio 10.0\VC\lib\amd64\Microsoft.VisualC.STLCLR.dll文件是个64位件但是使用了...我不知道微软这么设计的原因,但是我知道了通过之前判断是否为64位件来决定可选文件头结构体类型是错误的。那如何判断呢?         其实是有标记的。...切记PE32和PE32+和这个文件是32位件还是64位件是没有关系的!它们是两种不同的概念!切记要分清。...下篇博我们将详细说一下IMAGE_OPTIONAL_HEADER32和IMAGE_OPTIONAL_HEADER64中其他元素的意义。

1.1K30

邮件实现详解(三)------邮件的组织结构

每一个邮件头以“字段名:字段值”的格式出现,即每一行邮件头的内容依次由字段名、冒号、空格、字段值、回车换行符组成。RFC822档中定义了多个标准的邮件头字段,每一个邮件头字段表示一种特定的信息。...我们从上可以知道,RFC822档存在两个问题:   ①、定义了邮件内容的主体结构和各种邮件头字段的详细细节,但是,它没有定义邮件体的格式,RFC822档定义的邮件体部分通常都只能用于表述一段普通的文本...,而无法表达出图片、声音等二进制数据。   ...一个采用了MIME协议的电子邮件就叫做MIME邮件,MIME邮件在RFC822档中定义的邮件头字段的基础上,扩充了一些自己专用的邮件头字段,例如,使用MIME-Version头字段指定MIME协议的版本...另外,MIME邮件也扩展了RFC822档中已经定义了的邮件头字段的内涵,例如,定义了subject头字段中的值内容的格式,以便通过编码的方式让邮件主题中也可以使用非ASCII码的字符。

2.8K60

「MoreThanJava」一了解二进制和CPU工作原理

,我们这一 Part 来稍微理解一下二进制。...(至于电脑为什么使用二进制我们在下一 Part 中介绍) 二进制的基本运算 十进制中的那些基本运算原则,二进制中同样适用,只不过需要稍加变幻而已,下面我们分别就加、减、乘、除四则运算来介绍。...二进制数的减法 根据「借一有二」的规则,二进制数减法的法则为: 0-0=0 1-1=0 1-0=1 0-1=1 (借位为1) 例如:1101 减去 1011 的过程如下: image 二进制的乘法 二进制数乘法过程可仿照十进制数乘法进行...但由于二进制数只有 0 或 1 两种可能的乘数位,导致二进制乘法更为简单。...二进制数乘法的法则为: 0×0=0 0×1=1×0=0 1×1=1 例如:1001 和 1010 相乘的过程如下: image 二进制的除法 二进制数除法与十进制数除法很类似。

63820
领券