2010-02-15 35 views
14

¿Hay alguna manera de unir dos archivos ejecutables en uno, mediante programación, para que al ejecutarlo se ejecuten ambos archivos exe más antiguos juntos. Encontré algunas cosas en google sobre cómo inyectar código o archivos dll, pero ¿es posible fusionar dos archivos exe o insertar exe en exe?Fusiona dos archivos exe en uno mediante programación

Gracias de antemano.

[EDITAR] Gracias a todos. Solo para aquellos que dijeron que no es posible, tengo que decir que casi lo hice al final en la forma sugerida por algunos. Casi es así (no recuerdo todo porque fue hace mucho tiempo):

[ATENCIÓN: este algoritmo es muy similar a los de algunos gusanos y virus. ¡No soy un hacker ni un escritor de virus! y esto se debe usar solo por razones experimentales o no - Hacer errores en el código puede arruinar los archivos ejecutables en directorios.]

1- El Exe comprueba su tamaño para detectar si se ha anexado algo. si no tiene a continuación:

 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- Si el exe detecta que algo ha sido añadido a la misma a continuación:

 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. 

dije que casi lo hizo lo Porque de esta manera el exe añade otra exe a sí mismo. pero esto podría repetirse para agregar y ejecutar 2 o incluso 3 o más ejecutables en uno. solo tiene que saber el ORIGINAL_FILE_SIZE del programa escrito.

+1

exefusion tiene un troyano malware. – BioDeveloper

Respuesta

5

En teoría, esto es posible, pero le costará un poco de esfuerzo.

Puede adjuntar datos a un archivo exe, así es como funcionan los archivos autoextraíbles. Sin embargo, necesitará su propio formato de datos, similar a un sistema de archivos, porque tiene solo un archivo plano .exe.
ver este artículo de Microsoft (hay mucho más en Google) http://support.microsoft.com/?scid=kb%3Ben-us%3B84062&x=12&y=13

El exe usted está embalando sus dos archivos en el mosto a continuación, extraer los archivos y, finalmente, puede ejecutarlos.

Buena suerte.

5

No, su mejor opción es crear un archivo .bat (Windows) que ejecute ambos archivos ejecutables.

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

También puede crear un shell script en Linux para hacer la misma cosa

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

Nota, este se ejecutará antes de archivo1 archivo2.

+1

no es una buena sugerencia y la mayoría no funcionará. los tres archivos deberán estar en el mismo directorio. También es posible empacar dos binarios en uno, y hacer que ambos se ejecuten. – Dio

-3

No, no es posible "inyectar" un exe en otro. Esta acción ni siquiera está definida ya que no tiene el control sobre las partes internas de la ejecución que realiza cuando se inyecta objetos entre sí.

Lo más parecido posible con archivos exe es la tubería, donde se puede redirigir la salida de un archivo exe a la entrada del otro:

one.exe | two.exe 
+0

En Windows, estoy bastante seguro de que one.exe se ejecutará por completo antes de que se inicie two.exe. No estoy seguro si esto es lo que se quiere. –

+3

-1. Porque redireccionar la salida de un exe a la entrada del otro no es lo mismo que el OP. Muy diferente. –

4

usted puede crear su propio archivo EXE que contiene otros dos EXE archivos como recursos integrados y los extrae y ejecuta cada uno de ellos.

Tenga en cuenta que el EXE que inserta puede no funcionar si lo extrae en un directorio diferente.

1

Copie los datos de 1 archivo a un tercero Recuerde la posición del eof. Agregar binario desde el segundo archivo a la tercera. Luego agregue al número final (en int) del valor de eof. En el primer archivo debería haber un código que podría copiar todo el archivo desde este valor al final hasta el final del archivo en otro archivo.

Y ejecutar.

Es una manera fácil de hacerlo.

3

Técnicamente es posible insertar otros archivos ex en tu exe, algunos empaquetadores como upx lo hacen. Entonces deberías poder hacer lo mismo con 2 ex.

En una manera Unix, su exe podría tenedor, luego el primer proceso ejecutar el primer ejecutable viejo, y el nuevo proceso ejecutar el segundo exe, tal vez la instalación de una tubería entre ellos antes.

Pero esto es claramente no tan fácil de hacer y muy probablemente una exageración inútil para sus necesidades. Probablemente solo necesite un .bat pequeño o .sh

3

me di cuenta de que su calificativo de "programación", pero por si acaso una solución fuera de código es aceptable para lo que estás haciendo ...

IExpress puede construir un archivo EXE que se ejecuta otros dos ex. Puede construir un paquete IExpress desde la línea de comandos.

archivo SED:

[Version]
Class = IEXPRESS
SEDVersion = 3
[Opciones]
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 =% TargetName%
FriendlyName = % FriendlyName%
AppLaunched =% AppLaunched%
PostInstallCmd =% PostInstallCmd%
AdminQuietInstCmd =% AdminQuietInstCmd%
UserQuietInstCmd =% UserQuietInstCmd%
sourcefiles = sourcefiles
[Strings]
InstallPrompt =
DisplayLicense =
FinishMessage =
TargetName = C: \ combined.exe
FriendlyName = Ejemplo Título
AppLaunched = run .bat
PostInstallCmd =
AdminQuietInstCmd =
UserQuietInstCmd =
file0 = "FirstProgram.exe"
ARCHIVO1 = "SecondProgram.exe"
ARCHIVO2 = "run.bat"
[sourcefiles]
SourceFiles0 = C: \ programas \
[SourceFiles0]
% file0% =
% =
% ARCHIVO2% file =

run.bat ARCHIVO1%:

FIRSTP ~ 1.EXE
SEGUNDO ~ 1.EXE

Cuando se ejecuta combined.exe, firstProgram.exe ejecutará. Cuando termine, se ejecutará secondProgram.exe. Si quería que firstProgram.exe y secondProgram.exe se ejecutaran simultáneamente, podría hacerse con un cambio en el archivo BAT.

1

Esto fue como escribí mi virus en C++ Sistema ("tipo virus.exe > > not_virus.exe") pero si usted lo está haciendo a través de línea de comandos a continuación, simplemente hacer esto. Tipo virus.exe > > not_virus.exe Pero estoy deseando que una manera de que pueda anteponer ella en lugar de anexar pidiéndole que primero ir a la línea primero y luego copiar su código en el archivo ejecutable víctima

Cuestiones relacionadas