Datei an andere anhängen

toastie

Mitglied
Hallo liebes Forum,

Ich möchte 2 exe-Dateien verschmelzen, d. h. 2 zu einer machen. Den Maschinencode einfach reinzukopieren funktioniertt nicht. Jetzt möchte ich aba einen "Zeiger" einbauen, der das verschmelzte Programm ab da anfängt, wo die 2. Datei angehangen wurde.

Ich hoffe es ist halbwegs verständlich, worauf ich hinaus will ;).


Im Vorraus schonmal Danke:)
 
Hallo toastie,

sehe ich das richtig, dass das Ergebnis der Aktion eine EXE-Datei sein soll, die sich genau wie die zweite EXE-Datei verhält? Wozu brauchst du dann überhaupt die erste EXE-Datei? Verwende doch einfach die zweite und fertig…

Grüße,
Matthias
 
Hallo Matthias,

danke erstmal für deine Antwort.:)

Ja genau so soll es sein.

Aber mich würde es interessieren wie man sowas bewerkstelligt, also mit dem Zeiger und dem verschmelzen.:)
 
Hi.
Ja genau so soll es sein.
Ich glaube ihr habt euch da beide jetzt missverstanden. Willst du denn nicht den Code aus P1 und P2 hintereinander ausführen?
Aber mich würde es interessieren wie man sowas bewerkstelligt, also mit dem Zeiger und dem verschmelzen.:)
Du müßtest dir mal das PE Dateiformat anschauen.

Dann müßtest du alle Sektionen aus P1 und P2 in eine Datei übernehmen.

Danach müßtest du herausfinden wo der Code aufhört, d.h. wo genau die Stelle ist ab der jetzt P2 ausgeführt werden soll.

Dann müßtest du allerdings auch noch die Import-Verzeichnisse der beiden PE Dateien vereinigen.

Und du müßtest den Anfang des Code von P2 finden, den du ja aufrufen willst.

Dann stimmen sehr wahrscheinlich die Adressen Daten aus P2 nicht mehr, die müßtest du umrechnen und schauen das diese beim Laden an die richtige Adresse geladen werden.

Letztlich müßtest du nur Maschinenbefehle in P1 einschleusen so dass P2 im Anschluss ausgeführt wird und die Checksummen des PE Headers berichtigen.

Ist also ganz easy ;)

Gruß
 
Danke für deine Antwort:)

Klingt ja ganz schön kompliziert.

Könnte man nicht einfach sowas wie einen "goto-Befehl" in Maschinencode an den Anfang des Programmes setzen und eine Sprungmarke an den Anfang des 2. Programmes und dann mittels dieser an den Anfang des 2. Programmes springen?

Sagt mir bitte wenn das kompletter Schwachsinn ist xD
 
Könnte man nicht einfach sowas wie einen "goto-Befehl" in Maschinencode an den Anfang des Programmes setzen
Wieso an den Anfang? Und wozu soll die ganze Aktion eigentlich gut sein?
und eine Sprungmarke an den Anfang des 2. Programmes und dann mittels dieser an den Anfang des 2. Programmes springen?
Es gibt keine Sprungmarken in Maschinencode.

Wie angedeutet gibt es da einige Schwierigkeiten die man überwinden müßte.

Gruß
 
Zurück