Подтвердить что ты не робот

Объединить два файла exe в один программный

Есть ли способ объединить два файла exe в один, программно, так что его запуск будет выполнять оба старых exe файла вместе. Я нашел некоторые вещи в google о вводе кода или DLL файлов, но возможно ли, что два слияния двух файлов exe или для ввода exe в exe?

Спасибо заранее.

[EDIT] Всем спасибо. Просто для тех, кто сказал, что это невозможно, я должен сказать, что я почти сделал это, в конце концов, как некоторые предложили. Это почти похоже на это (я не могу вспомнить все это, потому что это было давно):

[BEWARE: Этот алгоритм очень похож на алгоритм некоторых червей и вирусов. Я не хакер или вирусный писатель! и это должно использоваться только для экспериментальных или безответственных причин. Ошибки в коде могут испортить исполняемые файлы в каталогах.]

1- Exe проверяет собственный размер, чтобы определить, добавлено ли что-либо для себя. если он не тогда:

     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 name.

2- Если exe обнаруживает, что что-то было добавлено к нему, тогда:

     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 code and then executes the newBorn.

Я сказал, что ПОЧТИ не так, потому что exe добавляет другой exe к себе. но это можно было бы повторить для добавления и выполнения 2 или даже 3 или более исполняемых файлов в один. вам просто нужно знать ORIGINAL_FILE_SIZE написанной программы.

4b9b3361

Ответ 1

Теоретически это возможно, но с вашей стороны это потребует определенных усилий.

Вы можете добавлять данные в exe файл, так как работают самораспаковывающиеся архивы. Однако вам понадобится собственный формат данных, похожий на файловую систему, потому что у вас есть только один файл .exe.
См. Эту статью Microsoft (в Google гораздо больше) http://support.microsoft.com/?scid=kb%3Ben-us%3B84062&x=12&y=13

Если вы упаковываете свои два файла, необходимо извлечь эти файлы и, наконец, запустить их.

Удачи.

Ответ 2

Нет, лучше всего создать файл . bat (Windows), который запускает оба исполняемых файла.

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

Вы также можете создать shell script в Linux, чтобы сделать то же самое

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

Обратите внимание, что это выполнит файл1 перед файлом2.

Ответ 3

Вы можете создать свой собственный EXE файл, содержащий два других EXE файла, в качестве встроенных ресурсов, а также извлечь и выполнить каждый из них.

Помните, что EXE, который вы вставляете, может не работать, если вы извлекаете его в другой каталог.

Ответ 4

Технически можно встроить некоторые другие exes файлы в ваш exe, некоторые упаковщики, такие как upx, делают это. Таким образом, вы должны быть в состоянии сделать то же самое с 2 exes.

В unix, подобном моде, ваш exe может развиваться, тогда первый процесс выполняет первый старый исполняемый файл, а новый процесс выполняет второй exe, возможно, устанавливая между ними ранее.

Но это явно не так просто сделать и, вероятно, бесполезный излишний для ваших нужд. Вам, вероятно, просто нужен небольшой .bat или .sh

Ответ 5

Я заметил ваш "программный" определитель, но на всякий случай решение из-за кода приемлемо для всего, что вы делаете...

IExpress может построить EXE, который выполняет два других EXE. Вы можете создать пакет IExpress из командной строки.

Файл SED:

[Version]
Класс = IExpress
SEDVersion = 3
[Options]
PackagePurpose = InstallApp
ShowInstallProgramWindow = 1
HideExtractAnimation = 1
UseLongFileName = 0
InsideCompressed = 0
CAB_FixedSize = 0
CAB_ResvCodeSigning = 0
RebootMode = N
InstallPrompt =% InstallPrompt%
DisplayLicense =% DisplayLicense%
FinishMessage =% FinishMessage%
Имя_целевого_объект =% Имя_целевого_объект%
FriendlyName =% FriendlyName%
AppLaunched =% AppLaunched%
PostInstallCmd =% PostInstallCmd%
AdminQuietInstCmd =% AdminQuietInstCmd%
UserQuietInstCmd =% UserQuietInstCmd%
Исходники, = исходники,
[Strings]
InstallPrompt =
DisplayLicense =
FinishMessage =
Имя_целевого_объект = C:\combined.exe
FriendlyName = Заголовок примера
AppLaunched = run.bat
PostInstallCmd =
AdminQuietInstCmd =
UserQuietInstCmd =
FILE0 = "FirstProgram.exe"
FILE1 = "SecondProgram.exe"
FILE2 = "run.bat"
[Исходники,]
SourceFiles0 = C:\Programs\
[SourceFiles0]
% FILE0% =
% FILE1% =
% FILE2% =

файл run.bat:

FIRSTP ~ 1.EXE
ВТОРАЯ ~ 1.EXE

Когда вы запустите файл comb.exe, выполнится firstProgram.exe. Когда он закончит, будет выполняться файл secondProgram.exe. Если вы хотите, чтобы firstProgram.exe и secondProgram.exe запускались одновременно, это могло быть сделано с изменением файла BAT.

Ответ 6

Скопировать данные из 1 файла в третий Помните позицию eof. Добавьте двоичный файл из второго файла в третий. Затем добавьте в конце число (в int) значения eof. В первом файле должен быть код, который мог бы скопировать весь файл из этого значения в конец в конец файла в другой файл.

И выполните.

Это простой способ сделать это.

Ответ 7

Вот как я написал свой вирус в С++ Система ( "тип virus.exe > not_virus.exe" )  но если вы делаете это через командную строку, просто сделайте это. Тип virus.exe → > not_virus.exe Но я с нетерпением жду способа, которым я могу добавить его, а не добавлять, попросив его сначала перейти в первую строку, а затем скопировать его код в исполняемый файл жертвы

Ответ 8

Нет, невозможно "впрыснуть" один exe в другой. Это действие даже не определено, поскольку у вас нет контроля над внутренними исполняемыми элементами, которые вы выполняете, когда вы вставляете объекты друг в друга.

Самое близкое, что возможно с файлами exe, - это piping, где вы можете перенаправить вывод одного exe файла на другой:

one.exe | two.exe