PE可以拥有的最大部分数量是多少?

时间:2013-07-04 09:38:28

标签: header byte portable-executable sections

我正在用C#编写一个程序,在那里我读取了PE的字节。但是为了获得RVA,我需要使用部分标题。我想知道标题的最大数量是多少?

我试过谷歌,我看过这里,但我找不到任何可以指向正确方向的东西

感谢。

2 个答案:

答案 0 :(得分:3)

由于段数以16位整数存储,因此大多数段可能是65535.在XP上,超过96段的程序将无法运行。在Vista和W7上,您可以使用所有65535个部分,程序仍将运行。其他操作系统可能存在其他限制。

答案 1 :(得分:2)

您必须阅读PE标头。您可以找到说明here,也可以从MSDN

下载完整说明

基本上你必须读取MZ头,然后读取PE头。部分的数量写在那里,所以你不能简单地说平均可执行文件中有N个部分。

一个相当不错的介绍,以及一些示例代码也可以找到here