Dmitry Timoshkov wrote:
"Andrew Talbot" Andrew.Talbot@talbotville.com wrote:
#define IMAGE_FIRST_SECTION(ntheader) \
((PIMAGE_SECTION_HEADER)((LPBYTE)&((PIMAGE_NT_HEADERS)(ntheader))->OptionalHeader
- \
((PIMAGE_NT_HEADERS)(ntheader))->FileHeader.SizeOfOptionalHeader))
((PIMAGE_SECTION_HEADER)((LPBYTE)&((PIMAGE_NT_HEADERS)(UINT32)(ntheader))->OptionalHeader
- \
((PIMAGE_NT_HEADERS)(UINT32)(ntheader))->FileHeader.SizeOfOptionalHeader))
UINT32 is not a 64-bit safe type. Please use ULONG_PTR instead.
actually, this would be better written as: ((PIMAGE_SECTION_HEADER)(DWORD_PTR)((LPCBYTE)&((const IMAGE_NT_HEADERS*)(ntheader))->OptionalHeader + \ ((const IMAGE_NT_HEADERS*)(ntheader))->FileHeader.SizeOfOptionalHeader))