компиляция bash скрипта


Как преобразовать bash, sh, ksh скрипт в бинарный файл? Есть множество вариантов, но автор знает только самый простой :). Это компилятор shell скриптов shc

Скачиваем shc с http://www.datsi.fi.upm.es/~frosal/, компилируем, устанавливаем.

Теперь нужно просто натравить его на наш shell script.

Важно: в начале скрипта должен стоять sha-bang #!/bin/bash или ваш shell.

shc -v -f script.sh

На выходе получаем два файла: script.x и script.c. script.x – это наш бинарник, script.c – это его исходный код на C.

К сожалению, такие командные оболочки, как python, perl, expect не поддерживаются.

Кому и для чего это нужно, надеюсь, объяснять не надо, лично мне – для скрытия паролей в скриптах.

Из man‘a:

Опции командной строки: -e date - Дата окончания работы вашей программы dd/mm/yyyy -m message - Сообщение, после истечения срока программы, например: [«Please contact your provider»] -f script_name - Имя файла скрипта для компиляции -i inline_option - Опция для оболочки коммандной строки, например: -e -x comand - Выполнить команду, в формате printf, например: exec(\\’%s\\’,@ARGV); -l last_option - последняя опция shell, например: – -r - Облегчить безопасность. Сделать распространяемую программу, которая будет выполняться на всех подобных ОС. -v - Подробный вывод компиляции -D - Включить отладку вызовов exec -T - Сделать бинарник трассируемым (используя strace, ptrace, truss, и т.п.) -C - Вывести лицензию и выйти -A - Вывести краткую информацию и выйти -h - Вывести помощь и выйти

comments powered by Disqus