now really: fixed Dumper::GetPE32Data(char*, DWORD, UE_SECTIONNAME) returning bad ptr

This commit is contained in:
cypherpunk 2013-11-25 00:53:52 +01:00
parent 60c1e2643e
commit 8ec098dcf1
1 changed files with 3 additions and 1 deletions

View File

@ -5005,6 +5005,7 @@ __declspec(dllexport) long long TITCALL GetPE32DataFromMappedFile(ULONG_PTR File
PIMAGE_SECTION_HEADER PESections; PIMAGE_SECTION_HEADER PESections;
DWORD SectionNumber = 0; DWORD SectionNumber = 0;
BOOL FileIs64; BOOL FileIs64;
static char sectionName[8] = "";
if(FileMapVA != NULL) if(FileMapVA != NULL)
{ {
@ -5135,7 +5136,8 @@ __declspec(dllexport) long long TITCALL GetPE32DataFromMappedFile(ULONG_PTR File
PESections = (PIMAGE_SECTION_HEADER)((ULONG_PTR)PESections + WhichSection * IMAGE_SIZEOF_SECTION_HEADER); PESections = (PIMAGE_SECTION_HEADER)((ULONG_PTR)PESections + WhichSection * IMAGE_SIZEOF_SECTION_HEADER);
if(WhichData == UE_SECTIONNAME) if(WhichData == UE_SECTIONNAME)
{ {
return((ULONG)*((DWORD*)PESections->Name)); memcpy(sectionName, PESections->Name, 8);
return (long long)sectionName;
} }
else if(WhichData == UE_SECTIONVIRTUALOFFSET) else if(WhichData == UE_SECTIONVIRTUALOFFSET)
{ {