Hallo Tommy,
um mehr als eine Datei an eine EXE-Datei anhängen zu können musst du mehr als nur die Größe der Echse speichern. Die könntest du sogar aus dem
PE-Header ableiten, aber nehmen wir ruhig an, dass du sie weiterhin ans Ende schreibst. Ich würde dann folgendes Format vorschlagen. Die wesentlichen Abschnitte der Datei fasse ich in eckige Klammern:
[EXE] [SIZE-1] [FILE-1] [SIZE-2] [FILE-2] [SIZE-EXE]
Außerdem würde ich die Größenangaben gleich als DWORD oder QWORD schreiben.
So solltest du keine Probleme haben deine Dateien wieder zu extrahieren. Eventuell möchtest du sogar die Relativnamen mit abspeichern:
[EXE] [SIZE-0] [NAME-TABLE] [SIZE-1] [FILE-1] [SIZE-2] [FILE-2] [SIZE-EXE]
Die NAME-TABLE könntest du in Form des Process Environment speichern: Jeder Eintrag wird als NUL terminierter String gespeichert, der letzte String ist ein leerer.
Eine mögliche Alternative zu dieser Vorgehensweise stellen Alternate Data Streams dar.
Grüße vom marabu