读取PE并在C ++中找到SAFESEH状态(使用RVA)

时间:2015-04-28 09:04:09

标签: winapi portable-executable

  • 我正在使用imagehlp.h来解析我的二进制文件并获得LOADED_IMAGE。

  • - LoadedImage.FileHeader->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG].VirtualAddress

上面的内容为我提供了IMAGE_LOAD_CONFIG_DIRECTORY的RVA 据我所知,RVA抵消了我想要的数据结构。 所以,(PIMAGE_LOAD_CONFIG_DIRECTORY)(RVA+LoadedImage.MappedAddress)

应该正确地返回我的结构(?)。 这是将RVA转换为有意义指针的正确方法。 我不确定因为

中的时间戳值

PIMAGE_LOAD_CONFIG_DIRECTORY-> TimeDateStamp无法正确显示。

在检查记忆时, 我的LoadedImage.MappedAddress将我指向“MZ”标题。哪个是二进制文件的开头。这意味着我的baseaddress是正确的。所以我得出结论,我没有正确使用RVA。

任何人都知道使用RVA的正确方法吗?

在有人指出之前,我已经检查过OptionalHeader.DataDirectory [IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG] .VirtualAddress`的virtualaddress值是否为0,然后再继续。

0 个答案:

没有答案