Ich möchte eine neue Section in einen PE Header einbauen, aber mein Versuch scheitert daran, dass er mir meinen neuen PE Header nicht als valid ansieht.
Code:
char* bnewSectionName = ".Test"; IMAGE_SECTION_HEADER* newSection = (IMAGE_SECTION_HEADER*)((DWORD)&NTHeader->OptionalHeader + NTHeader->FileHeader.SizeOfOptionalHeader + (9 * sizeof(IMAGE_SECTION_HEADER))); memcpy(newSection->Name, &bnewSectionName, IMAGE_SIZEOF_SHORT_NAME); IMAGE_SECTION_HEADER* oldSection = (IMAGE_SECTION_HEADER*)((DWORD)&NTHeader->OptionalHeader + NTHeader->FileHeader.SizeOfOptionalHeader + (8 * sizeof(IMAGE_SECTION_HEADER))); newSection->Misc.PhysicalAddress = oldSection->Misc.PhysicalAddress + oldSection->Misc.VirtualSize; newSection->Misc.VirtualSize = 20; newSection->VirtualAddress = NULL; // ??? newSection->SizeOfRawData = NULL; newSection->PointerToRawData = NULL; newSection->PointerToRelocations = 0x00000000; newSection->PointerToLinenumbers = 0x00000000; newSection->NumberOfRelocations = NULL; newSection->NumberOfLinenumbers = NULL; newSection->Characteristics = 0x00000000;
Wäre schön wenn mit jemand erklären würde wie man die Fehler die ich gemacht habe beheben kann.
MfG