Python pefile成员问题

2024-06-02 08:37:26 发布

您现在位置:Python中文网/ 问答频道 /正文

帮派

如果这真是个愚蠢的问题,我道歉。。。我想使用超级方便的python脚本pefile(http://code.google.com/p/pefile/)它解析可执行文件并列出有关PE结构的特定信息。我的问题是在哪里可以找到有关如何访问可执行文件的特定成员的信息?我已经浏览了wiki并阅读了使用示例,但是文档只覆盖了4-5个成员。我想知道的是,如果你们有一个成员名单,我可以访问,以显示我关心的信息。因此,具体来说,如果我想列出可执行文件的堆栈提交大小,它看起来是这样的:pe.FILE_头.StackCommitSize,显然我可以运行这段代码并解决它,但是你们有没有看到API文档在我周围浮动,我找到了我需要的成员?在

谢谢!在


Tags: 文档脚本com信息http可执行文件示例google
2条回答

通常可以在Microsoft PE/COFF specification中找到PE文件中的所有内容。在

一旦您查看了那里,您就知道StackCommitSize在可选的图像标题中。然后,您所要做的就是在pefile中查找相应的结构,它通常具有相似的名称,即使不是完全相同的名称。在这种情况下:

pe = pefile.PE("C:\\Windows\\Notepad.exe")
print pe.OPTIONAL_HEADER.SizeOfStackCommit

会给你你想要的。在

如果找不到SizeOfStackCommit(在规范中找到它之后),只需使用source code上的快速查找。它很容易阅读,我想你不会有任何困难找到所需的结构。在

现在,可能没有针对pefile本身的API文档,但是正如您所看到的,实际上没有必要使用它,因为它只是PE规范本身的一个很好的python包装器。在

PE文档字符串:

Basic headers information will be available in the attributes:

DOS_HEADER  
NT_HEADERS  
FILE_HEADER  
OPTIONAL_HEADER

All of them will contain among their attributes the members of the  
corresponding structures as defined in WINNT.H

所以,看看winnt.h,你会发现哪些属性是可用的。在

或者只是阅读模块的源代码。它很大,但你需要知道的一切都在里面。在

相关问题 更多 >