2010-02-15 9 views
14

Gibt es eine Möglichkeit, zwei EXE-Dateien programmgesteuert in eine zusammenzuführen, so dass die Ausführung beider älteren EXE-Dateien zusammen ausgeführt würde. Ich habe einige Dinge auf Google über das Einfügen von Code oder DLL-Dateien gefunden, aber ist es möglich, zwei exe-Dateien zusammenführen oder exe in exe injizieren?Zwei EXE-Dateien programmgesteuert in eine zusammenführen

Vielen Dank im Voraus.

[EDIT] Danke allen. Nur für diejenigen, die sagten, dass es nicht möglich ist, muss ich sagen, dass ich es am Ende fast so gemacht habe, wie manche es vorgeschlagen haben. Es geht fast so (ich kann mich nicht an alles erinnern, denn es war lange her):

[ACHTUNG: Dieser Algorithmus ist sehr ähnlich zu denen von einigen Würmern und Viren. Ich bin kein Hacker oder Virenschreiber! und das ist nur für experimentelle oder unharmful Gründe zu verwenden - Fehler im Code zu machen kann die ausführbaren Dateien in Verzeichnissen ruinieren.]

1- Das Exe überprüft sich selbst, um festzustellen, ob etwas an sich selbst angehängt wurde. wenn es nicht hat, dann:

 1.1- The exe finds other executable files in its directory (lets call one of them as victim!) 
    1.2- it makes a copy of itself (lets call it newMe) 
    1.3- it copies the other executable found in the directory to the end of newMe. 
    1.4- it deletes the other executable file found and renames newMe to its victim's name. 

2- Wenn die exe erkennt, dass etwas, um es wurde dann hinzugefügt:

 2.1- Then it copies data from itself (from ORIGINAL_FILE_SIZE to the end of file) to a new file (lets call it newBorn.exe) 
    2.2- It runs itself's code and then executes the newBorn. 

sagte ich ich fast tat es auf diese Weise cos die exe andere anfügt exe zu sich selbst. aber dies könnte für das Anhängen und Ausführen von 2 oder sogar 3 oder mehr ausführbaren Dateien in einem wiederholt werden. Sie müssen nur die ORIGINAL_FILE_SIZE des geschriebenen Programms kennen.

+1

exefusion hat einen Trojaner Opfer kopieren prepend kann Malware. – BioDeveloper

Antwort

5

Theoretisch ist dies möglich, aber es wird einige Anstrengungen von Ihrer Seite erfordern.

Sie können Daten an eine EXE-Datei anhängen, so funktionieren selbstextrahierende Archive. Sie benötigen jedoch Ihr eigenes Datenformat, ähnlich einem Dateisystem, da Sie nur eine einzige .exe-Datei haben.
Sehen Sie diese Microsoft-Artikel (es gibt viel mehr auf Google) http://support.microsoft.com/?scid=kb%3Ben-us%3B84062&x=12&y=13

Die exe Sie Ihre zwei Dateien in Most sind Verpackung dann diese Dateien extrahieren und sie schließlich ausführen können.

Viel Glück.

5

Nein, am besten erstellen Sie eine .bat Datei (Windows), die beide ausführbare Dateien ausführt.

@echo off 
c:\path\to\first\exe\file1.exe 
c:\path\to\second\exe\file2.exe 

Sie auch eine shell script in Linux erstellen kann die gleiche Sache

#!/bin/sh 
/path/to/first/exe/file1 
/path/to/second/exe/file2 

Hinweis zu tun, wird diese file1 vor file2 auszuführen.

+1

es ist kein guter Vorschlag und wird meistens nicht funktionieren. Alle drei Dateien müssen sich im selben Verzeichnis befinden. Es ist auch möglich, zwei Binärdateien zu einem zusammenzufassen und beide laufen zu lassen. – Dio

-3

Nein, es ist nicht möglich, eine EXE in eine andere zu "injizieren". Diese Aktion ist nicht einmal definiert, da Sie nicht die Kontrolle über die Ausführungsinterna haben, die Sie ausführen, wenn Sie Objekte ineinander injizieren.

Die nächste Sache möglich mit exe-Dateien sind Rohrleitungen, in denen Sie die Ausgabe einer exe-Datei mit dem Eingang eines anderen umleiten:

one.exe | two.exe 
+0

Unter Windows bin ich mir ziemlich sicher, dass one.exe vollständig ausgeführt wird, bevor two.exe gestartet wird. Nicht sicher, ob das gewollt ist. –

+3

-1. Da das Umleiten der Ausgabe einer EXE-Anweisung an die Eingabe der anderen EXE nicht mit dem übereinstimmt, was das OP beabsichtigt hat. Sehr verschieden. –

4

Sie können Ihre eigene EXE-Datei erstellen, die enthalten zwei weitere EXE Dateien als eingebettete Ressourcen und extrahiert und führt sie jeweils aus.

Beachten Sie, dass die von Ihnen eingebettete EXE möglicherweise nicht funktioniert, wenn Sie sie in ein anderes Verzeichnis extrahieren.

1

Kopieren von Daten von 1 Datei in die dritte Merken Sie sich die Position des eof. Fügen Sie Binär aus zweiter Datei zu dritt hinzu. Dann an der Endnummer (in int) von eof Wert hinzufügen. In der ersten Datei sollte ein Code sein, der ganze Datei von diesem Wert am Ende bis zum Ende der Datei in eine andere Datei kopieren könnte.

Und ausführen.

Es ist ein einfacher Weg, es zu tun.

3

Technisch ist es möglich, einige exes-Dateien in Ihrer exe einzubetten, einige Packer wie upx tun es. Sie sollten das gleiche mit 2 Exes machen können.

In einer Unix wie Mode könnte Ihre exe Gabel, dann der erste Prozess die erste alte ausführbare ausführen, und der neue Prozess die zweite exe ausführen, möglicherweise eine Pipe zwischen ihnen vor installieren.

Aber das ist eindeutig nicht so einfach zu tun und sehr wahrscheinlich ein nutzloser Overkill für Ihre Bedürfnisse. Wahrscheinlich brauchen Sie nur eine kleine .bat oder .sh

3

Ich bemerkte, Ihr „programmatisch“ Qualifier, aber für alle Fälle eine Out-of-Code-Lösung ist akzeptabel, für was auch immer Sie ... tun

IExpress kann eine EXE-Datei erstellen, die zwei andere EXE-Dateien ausführt. Sie können ein IExpress-Paket über die Befehlszeile erstellen.

SED-Datei:

[Version]
Class = IEXPRESS
SEDVersion = 3
[Optionen]
PackagePurpose = installApp
ShowInstallProgramWindow = 1
HideExtractAnimation = 1
UseLongFileName = 0
InsideCompressed = 0
CAB_FixedSize = 0
CAB_ResvCodeSigning = 0
RebootMode = N
InstallPrompt =% InstallPrompt%
DisplayLicense =% DisplayLicense%
FinishMessage =% FinishMessage%
Targetname =% Target%
Friendly = % Friendly%
AppLaunched =% AppLaunched%
PostInstallCmd =% PostInstallCmd%
AdminQuietInstCmd =% AdminQuietInstCmd%
UserQuietInstCmd =% UserQuietInstCmd%
Quelldateien = Quelldateien
[Strings]
InstallPrompt =
DisplayLicense =
FinishMessage =
Targetname = C: \ combined.exe
Friendly = Beispiel Titel
AppLaunched = run .bat
PostInstallCmd =
AdminQuietInstCmd =
UserQuietInstCmd =
File0 = "FirstProgram.exe"
FILE1 = "SecondProgram.exe"
FILE2 = "run.bat"
[Quelldateien]
SourceFiles0 = C: \ Programme \
[SourceFiles0]
% File0% =
% FILE1% =
% FILE2% =

run.bat Datei:

FIRSTP ~ 1.EXE
SECOND ~ 1.EXE

Wenn Sie combined.exe ausführen, wird firstProgram.exe auszuführen. Wenn es fertig ist, wird secondProgram.exe ausgeführt. Wenn Sie möchten, dass "firstProgram.exe" und "secondProgram.exe" gleichzeitig ausgeführt werden, könnte dies mit einer Änderung der BAT-Datei erfolgen.

1

Das war, wie ich meinen Virus in C++ geschrieben -System („Typ virus.exe > > not_virus.exe“) aber wenn Sie es über Eingabeaufforderung dann einfach tut dies tun. Typ virus.exe > > not_virus.exe Aber ich freue mich auf eine Art, wie ich es nicht anhängt, indem sie es zur ersten goto ersten Zeile fragt dann seinen Code in das ausführbare Datei

Verwandte Themen