标签: header byte portable-executable sections
我正在用C#编写一个程序,在那里我读取了PE的字节。但是为了获得RVA,我需要使用部分标题。我想知道标题的最大数量是多少?
我试过谷歌,我看过这里,但我找不到任何可以指向正确方向的东西
感谢。
答案 0 :(得分:3)
由于段数以16位整数存储,因此大多数段可能是65535.在XP上,超过96段的程序将无法运行。在Vista和W7上,您可以使用所有65535个部分,程序仍将运行。其他操作系统可能存在其他限制。
答案 1 :(得分:2)
您必须阅读PE标头。您可以找到说明here,也可以从MSDN
基本上你必须读取MZ头,然后读取PE头。部分的数量写在那里,所以你不能简单地说平均可执行文件中有N个部分。
一个相当不错的介绍,以及一些示例代码也可以找到here。