2015-06-15 2 views
1

Я хочу иметь возможность просто запустить пакетный файл Windows и создать его .exe-исполняемый файл.Как создать исполняемый файл EXE с пакетным файлом?

Я знаю, что вы можете создавать файлы со следующим сценарием в пакете:

@echo off 
echo This will be in a text file! >> test.txt 
echo And this will be the second line! >> test.txt 

Так мне было интересно, можно было бы скопировать исходный код файла EXE и добавить «эхо» перед каждой строки и «>> test.exe» и конец каждой строки?

Я попытался открыть 39KB .exe в Notepad ++, но это была всего лишь куча черных символов NUL.

Так что я довольно много спрашиваю, есть ли способ встраивать файлы внутри пакетных файлов? Может быть, даже аудиофайл?

+0

См. Http://stackoverflow.com/questions/27383152/storing-large-file-within-batch-file/27384211#27384211 – Aacini

ответ

1

вот как это можно сделать с помощью утилиты certutil. В этом случае это демонстрируется с жестко закодированным путем к whoami.exe, который является встроенной командой в Windows.

Первый сценарий, который создает .bat с вложенной .exe:

@echo off 
certutil -f -encode %windir%\system32\whoami.exe whoami.b64 
echo @echo off >container.bat 
echo certutil -decode "%%~f0" whoami.exe>>container.bat 
echo call whoami.exe>>container.bat 
echo exit /b %%errorlevel%%>>container.bat 
type whoami.b64>>container.bat 
del whoami.b64 

Для вашего ехе вам нужно изменить путь к exe.Then container.bat должен выглядеть следующим образом:

@echo off 
certutil -decode "%~f0" whoami.exe 
call whoami.exe 
exit /b %errorlevel% 
-----BEGIN CERTIFICATE----- 
... 
..base64 encoded content... 
... 
-----END CERTIFICATE---- 

Certutil может кодировать/декодировать base64 и шестигранный здесь base64 удобнее, потому что он может быть встроен в пакетном благодаря enclosements (BEGIN CERTIFICATE и END CERTIFICATE) и base64 кодированные строки являются короче шестигранными единицами.

Смежные вопросы