刚
如果这是一个非常愚蠢的问题,我道歉...我想使用解析可执行文件并列出特定信息的超级方便的python脚本pefile(http://code.google.com/p/pefile/)关于PE结构。我的问题是,在哪里可以找到有关如何访问可执行文件的特定成员的信息?我已经浏览了维基并阅读了用法示例,但该文档仅涵盖了4-5名成员。我想知道的是,如果你们有一个我可以访问的成员列表来显示我关心的信息。具体来说,如果我想列出可执行文件的堆栈提交大小,它是否如下所示:pe.FILE_HEADER.StackCommitSize,显然我可以运行此代码并弄清楚但是你们看到了我发现的API DOC浮动我需要的成员?
谢谢!
答案 0 :(得分:0)
来自PE
docstring:
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,你会看到哪些属性可用。
或者只是阅读模块的源代码。它很大,但你需要知道的一切都在那里。
答案 1 :(得分:0)
您通常可以在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规范本身的一个不错的Pythonic包装器。