PE-Format *.exe modifizieren



  • Hallo,

    ich würde eine Windows-*.exe gerne in der Art und Weise modifizieren, dass sie 4 spezifische Bytes an einer bestimmten Stelle enthält. Gibt es im DOS-Header ein paar Bytes, die man einfach mißbrauchen kann oder kann man z.B. einfach was ans Ende der *.exe anhängen ohne die *.exe unbrauchbar zu machen?

    Gruß
    void*



  • Du kannst überall da hinschreiben wo du grössere Felder von nullen hast (grundsätzlich). Die Einfachste Methode dürfte allerdings die sein, Daten einfach am Ende anzuhängen in dem Stil:

    <-exefile | 5Byte meiner Daten | n byte Länge der daten die angehängt sind |
    

    Um die Daten dann zu lesen, brauchst du erst die letzten n Bytes zu lesen um den Rückwärtsoffset in die Exe zu finden (damit du nicht schrott liest).

    Wenn du weisst wie man an einer geöffneten Exe rumdoktert, dann sags mir... hab irgendwie bis heute nix schlaues gefunden dazu und in gewissen Situationen wärs durchaus praktisch (irgendwie) (o;

    -junix



  • junix schrieb:

    Du kannst überall da hinschreiben wo du grössere Felder von nullen hast (grundsätzlich).

    Warum ? Mir leutet zwar ein, dass das meistens klappen wird, aber immer ?



  • Nö, immer wird das sicher nicht klappen.

    Aber manche Compiler (IMHO Borland) haben die Eigenschaft, die exe-Datei etwas aufzublähen mit solchen Null-Bereichen. Das hat bestimmt irgendwelche tiefsinnigen Gründe.

    Normalerweise sind diese Bereiche in der Tat ungenutzt und können verändert werden. Ein gewisses Restrisiko bleibt natürlich.
    Und es ist natürlich nicht die feine englische Art, so Daten in die exe zu packen. 😉



  • cd9000 schrieb:

    Aber manche Compiler (IMHO Borland) haben die Eigenschaft, die exe-Datei etwas aufzublähen mit solchen Null-Bereichen. Das hat bestimmt irgendwelche tiefsinnigen Gründe.

    Alle Sections der Datei (.text, .data etc.) müssen jeweils auf 4k aligned werden.
    Ergo am besten am Ende einer Section rumwühlen, dort sind die Chancen hoch, dass es sich nicht um genutzte Teile handelt.


Anmelden zum Antworten