From 808a1c6c226938ff499d92869358638e4bd091aa Mon Sep 17 00:00:00 2001 From: NtQuery Date: Thu, 20 Mar 2014 23:37:17 +0100 Subject: [PATCH] dumper merge accident fix --- TitanEngine/TitanEngine.Dumper.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/TitanEngine/TitanEngine.Dumper.cpp b/TitanEngine/TitanEngine.Dumper.cpp index 4693c78..f657408 100644 --- a/TitanEngine/TitanEngine.Dumper.cpp +++ b/TitanEngine/TitanEngine.Dumper.cpp @@ -45,11 +45,18 @@ __declspec(dllexport) bool TITCALL DumpProcessW(HANDLE hProcess, LPVOID ImageBas DOSHeader = (PIMAGE_DOS_HEADER)ueReadBuffer; PEHeader32 = (PIMAGE_NT_HEADERS32)((ULONG_PTR)DOSHeader + DOSHeader->e_lfanew); - if((DOSHeader->e_lfanew > 0x500) || (DOSHeader->e_magic != IMAGE_DOS_SIGNATURE) || (PEHeader32->Signature != IMAGE_NT_SIGNATURE)) + if ((DOSHeader->e_lfanew > 0x500) || (DOSHeader->e_magic != IMAGE_DOS_SIGNATURE) || (PEHeader32->Signature != IMAGE_NT_SIGNATURE)) { - if(CalculatedHeaderSize % 0x1000 == NULL) + return false; + } + + CalculatedHeaderSize = DOSHeader->e_lfanew + sizeof(IMAGE_NT_HEADERS64) + (sizeof(IMAGE_SECTION_HEADER) * PEHeader32->FileHeader.NumberOfSections); + + if(CalculatedHeaderSize > 0x1000) + { + if(CalculatedHeaderSize % 0x1000 != NULL) { - AlignedHeaderSize = 0x1000; + AlignedHeaderSize = ((CalculatedHeaderSize / 0x1000) + 1) * 0x1000; } else {