1

Возможно ли объединить два exe-файла?

Мне нужно, чтобы это работало так:

  • Пользователь запускает combined.exe (комбинация из двух исполняемых файлов).
  • Когда первый исполняемый файл загружен и пользователь нажал там кнопку "Пуск" (я получил исходный код), тогда будет запущен второй исполняемый файл.

Это вообще возможно?

4 ответа4

1

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

(Насколько я понимаю, под исходным кодом [sic] вы имеете в виду код AutoIt?) Я сделал только быструю проверку, но я думаю, что AutoIt (или, по крайней мере, компилятор) поддерживает добавление и извлечение ресурсов и должен поддерживать использование Windows API. Что касается защиты EXE-файла, на самом деле мало что можно сделать, кроме надежного шифрования, но вы можете заблокировать файл и закрыть его, установив флаг FILE_FLAG_DELETE_ON_CLOSE для его автоматического удаления.

1

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

Пример программного обеспечения, предназначенного для вредоносных целей: File Joiner

Однако, если вы пропустите заглушку шифрования, вы можете обнаружить, что она не помечена, просто загрузите ее на virustotal.com и проверьте результаты. Я бы сделал это независимо от того, какое решение вы выберете.

0

Вы должны посмотреть на EXE-протекторы, если вы не хотите, чтобы пользователи копались в вашем коде. Трудно динамически запустить новый процесс без какого-либо незавершенного EXE-файла, и я бы даже не пытался писать EXE-сегменты из AutoIt. (На самом деле я смог выполнить сборку из AutoIt, но в Vista+ Data Execution Prevention обычно это убивает.)

0

Это немного отличается от вашего примера, но это способ объединения .exe- файлов с использованием AutoHotkey: скомпилируйте следующий скрипт с First.exe и Second.exe в одной папке. После компиляции вам нужно только сохранить единственную оболочку .exe.

FileCreateDir, tmp

FileInstall, First.exe, tmp\First.exe
FileInstall, Second.exe, tmp\Second.exe

RunWait, tmp\First.exe

MsgBox, 4, , Run Second.exe?

IfMsgBox, Yes
    RunWait, tmp\Second.exe

FileRemoveDir, tmp, 1

ExitApp

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .