I'm having trouble with IMAGE_EXPORT_DIRECTORY
values, whenever I'm calculating address of it, it gives me wrong values (like Name
, NumberOfNames
, AddressOfNames
, etc..).
I'm calculating it by the following code.
IMAGE_EXPORT_DIRECTORY *export_directory = (IMAGE_EXPORT_DIRECTORY*)(nt_headers->OptionalHeader.DataDirectory[0].VirtualAddress + (DWORD)dos_header);
Following in debugger, the address is right, there must be a IMAGE_EXPORT_DIRECTORY
, but why it gives me wrong results? Can't access any of the elements from it, because it says bad ptr..
Tried and works fine with kernel32.dll
, but fails on user32.dll
when extracting names from AddressOfNames.
Using Windows 8 x86.