int
ModPEHead::Merge_Sections() {
if
(!pImageBuffer)
return
0;
LoadPEFromImagebuffer();
pSectionHeader->Misc.VirtualSize = pOptionHeader->SizeOfImage - pOptionHeader->SizeOfHeaders;
pSectionHeader->SizeOfRawData = pSectionHeader->Misc.VirtualSize;
pSectionHeader->Characteristics = pSectionHeader->Characteristics | (pSectionHeader + 1)->Characteristics;
for
(
size_t
i = 1; i <= pPEHeader->NumberOfSections - 1; i++)
{
memset
((pSectionHeader + i),NULL,40);
}
pPEHeader->NumberOfSections = 1;
ImagebuffertoFilebuffer();
return
1;
}