Начиная с
aShellScript
aBinaryExecutable
делать
zip binary.zip aBinaryExecutable
cat aShellScript binary.zip > hybrid
chmod +x hybrid
Я пропустил, что добавить в сценарий, чтобы распаковать и запустить двоичный файл, но обратите внимание, что hybrid
является действительным zip-файлом -и допустимым сценарием оболочки, сценарий оболочки может распаковать себя и получить двоичный -исполняемый файл (, но не сценарий оболочки ).
Надежный :Файл является допустимым zip и допустимым сценарием оболочки (, если вы выходите, прежде чем пытаться интерпретировать мусор в конце ).
Конец сценария ужасен.
shell
начинает интерпретацию с начала файла. (Все смещения являются символическими.)zip
начинает интерпретацию с конца файла. Все смещения являются относительными.