Moin,
ich mach ja gerade meinen Weg durch das PE Datei Format und bin immer noch bei den Sections. Heute wollte ich eine Section manuell hinzufügen, allerdings bekomm ich das nicht hin. Wie immer orientiere ich mich hauptsächlich an dem PE File Compendium vom ARTeam.
Meine Ansatz war:
Ich hab anbei wieder die beiden Dateien angehängt
MessageBox.exe
MessageBox6.exe
gruß seux
ich mach ja gerade meinen Weg durch das PE Datei Format und bin immer noch bei den Sections. Heute wollte ich eine Section manuell hinzufügen, allerdings bekomm ich das nicht hin. Wie immer orientiere ich mich hauptsächlich an dem PE File Compendium vom ARTeam.
Meine Ansatz war:
- numberOfSections zu inkrementieren
- die .text Section zu kopieren und nach der .data Section einzufügen. Die neue Section nach .mySec umbenennen.
- die 200 Bytes von der .text Section kopieren und am Ende der Datei anfügen. Da es sich dabei um Code handelt hab ich diesen vorerst durch 0x90 ersetzt.
- Das Anpassen der Werte für die Sections. Da ich eine neue Section direkt nach .data eingefügt hab, stimmen natürlich die Werte von pointerToRawData nicht mehr. Da der Section Header 0x28 Bytes groß ist, hab ich den pointerToRawData auch um jeweils 0x28 für jede einzelne Section erhöht.
- im OptionalHeader befinden sich noch so zwei Werte, von denen ich denke, dass sie angepasst werden müssen. SizeOfImage und SizeOfHeaders. SizeOfImage hatte zuerst den Wert 0x400. Da ich 200 Bytes für die Section und 40 Bytes für den Header hinzugefügt hab, kam für mich ein wert von 0x4F0 raus. Zur SizeOfSectionHeaders erläutert das Compedium folgendes:
[...] You can also use this value as the file offset of the first Section in the PE file
Ich hab anbei wieder die beiden Dateien angehängt
MessageBox.exe
MessageBox6.exe
gruß seux