Code:
#include <stdio.h>
#include <windows.h> // für winnt.h
int main(void)
{
IMAGE_DOS_HEADER *idh;
IMAGE_NT_HEADERS *inh;
char *ptr;
// ptr zeigt nun auf den Anfang der in den Speicher geladenen Datei
ptr = datei_laden("whatever.exe");
// idh zeigt nun auf den DOS_HEADER der Datei im Speicher
idh = (IMAGE_DOS_HEADER) ptr;
// inh zeigt nun auf die NT_HEADERS der Datei im Speicher
inh = (IMAGE_NT_HEADERS) &ptr[idh->e_lfanew];
// NumberOfSections ausgeben
printf("NumberOfSections = %hd\n", inh->FileHeader->NumberOfSections);
// Neue Sectionzahl setzen:
inh->FileHeader->NumberOfSections = 0xDEADBEEF;
// Speicher zurückschreiben
datei_speichern(ptr, "whatever2.exe");
return 0;
}