Hi Biarchiv,
Den SFX-Packer zu schreiben löst man aber nicht so wie du das vorhast. Du darfst nicht den PE-Header vergrößern. Eine Exe besteht aus Sektionen und Headern. Du müsstest lediglich eine Sektion an das Ende der Exe vom Typ ".data" anfügen und das Feld NumberOfSections im Optionalen PE-header ändern. Dann musst du einen Sektionsheader an die Sektionsliste im PE-Header anfügen. Jetzt kannst du den PointerToRawData neu setzen. Dann musst du noch SizeOfRawData für diese Sektion setzen. Beide Werte stehen im Sektionsheader deiner neuen Sektion.
Es kann sein dass du noch ein paar andere Werte setzen musst und ads ist sogar sicher. Da oben das sind nur die Grundlagen dafür. Was du da machen willst ist nicht gerade einfach (oder an einem Abend geproggt).
(Sorry für die späte Antwort, aber ich kenn mich erst seid ner Woche richtig damit aus

)
Nachtrag: Size of Headers ist die Größe des PE-Headers. Da solltest du GAR NIX dran ändern, es sei denn du fügst mehr als 16 Sektionen in die Exe ein

Wenn du den Wert änderst, musst du einige andere Werte ändern und dann verschieben sich sämtliche Adressen in der Exe um diesen Wert und du brauchst dann einen Disassembler und Reassembler und musst den Code durchlaufen und jede Jumpadresse, die auf Dateninhalt der Exe zeigt ändern.