我正在使用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,然后再继续。