一件令人匪夷所思的事。
这是有关windows里的user32. dll和kernel.dll基址的问题。先以 user32. dll为例( kernel..dll也发生同样的情况)在 WinXP里一切正常,可以看出在 od里和在 PEinfo程序里所显示的基址是相同的。但在 Win8里od和 PEinfo所显示的基址不一样,这是为什么?
PEinfo程序所显示的基址是根据 API定义得出的,od也应该用了同样 API定义,但为什么会得出不同的基址?真是令人匪夷所思!
Windows 8.1
File nameC:\WINDOWS\System32\user32.dll
API: IMAGE_NT_HEADERS.OptionalHeader.ImageBase
IMAGE_NT_HEADERS - ImageBase 0x6BA80000
IMAGE_NT_HEADERS32 - ImageBase 0x6BA80000