gpt4 book ai didi

C++ 读取 PE 可选 header 以确定 DEP 和 ASLR

转载 作者:行者123 更新时间:2023-11-28 02:28:11 24 4
gpt4 key购买 nike

我想解析一个 PE 文件并从中读取可选 header ,以及一些其他数据,这些数据使我能够知道它是 32 位 PE 还是 64 位。我知道 imagehlp 和 dbghlp 头文件为我提供了诸如 IMAGE_OPTIONAL_HEADER 之类的结构。但我不确定如何解析我的文件以生成这些文件。我可以使用文档并使用偏移量编写我自己的解析器,但是是否有人知道解析 PE 的正确 API?

我的目标:1) 确定文件是 x64 还是 x86 可执行文件。可能在标题中?2) 检查 ASLR、DEP 和 SAFESEH。我认为前两个将在 PE 可选 header 中。

那么是否有任何 API 可以解析我的 PE 并返回给我这些结构?

最佳答案

您应该看看图像助手库。有一种方法MapAndLoad这将为您提供指向 PE 文件 (LOADED_IMAGE structure) 各个部分的指针,即 IMAGE_NT_HEADERSIMAGE_SECTION_HEADERIMAGE_NT_HEADERS structure包含指向 IMAGE_OPTIONAL_HEADER structure 的指针.

字段 DllCharacteristic 包含各种标志,例如 IMAGE_DLLCHARACTERISTICS_NX_COMPATIMAGE_DLLCHARACTERISTICS_NO_SEH

要使用这些 API,请包含 Imagehlp.h 和指向 Imagehlp.lib 的链接。

关于C++ 读取 PE 可选 header 以确定 DEP 和 ASLR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29816732/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com