Публикации
Публикации  »  Bash

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

Как известно, скрипты bash используются в открытом виде, но иногда может встать вопрос о том, чтобы спрятать исходных код bash скрипта, чтобы его не мог никто подсмотреть или изменить без вашего ведома. Для этого можно откомпилировать bash скрипт в машинный код с помощью программы shc, которую можно скачать по адресу http://www.datsi.fi.upm.es/~frosal/ На момент написания статьи можно скачать shc-3.8.9b.tgz

Теперь расскажу, как воспользоваться этой программой, чтобы скрыть исходный код bash скрипта путем его компиляции в исполняемый файл.

1-й этап. Подготовка программы

Скачаный архив сначала нужно распаковать командой tar xvf shc-3.8.9b.tgz, в результате получим папку с программой. Однако, она еще не готова к использованию, т.к. представляет собой просто сишную программу (файл shc-3.8.9b.с), поэтому ее необходимо сначала откомпилировать. Делается это просто командой make shc. Теперь компилятор bash-скриптов готов к применению.

2-й этап. Компиляция bash-скрипта

Чтобы откомпилировать bash-скрипт, его нужно скопировать в папку с программой и выполнить команду shc -f script.sh, где вместо script.sh вы укажете свой bash-скрипт. После выполнения команды вы получите 2 файла: script.x.c - это переделанный на си фаш скрипт и script.x - собственно сам откомпилированный скрипт. В этом виде он абсолютно нечитаем, но при этом полностью работоспособен, как и исходный файл.

Описанный в предыдущем абзаце способ - простейший вариант компиляции bash-скрипта, но есть еще и дополнительные, довольно интересные возможности, получаемые с помощью опций, которые сделают программу еще более гибкой.

Опции запуска компилятора shc

-e date - дата срока действия программы (перестанет работать после этой даты) в формате dd/mm/yyyy
-m message - сообщение, которое будет написано по истечение срока действия программы (пишется в кавычках)
-f script_name - файл скрипта, который нужно откомпилировать
-i inline_option - указание опции для интерпретатора командной строки (например, -e)
-x comand - выполнить команду, в формате printf (например, exec(\\'%s\\',@ARGV);)
-l last_option - последняя опция для интерпретатора командной строки
-r - уменьшить безопасность, чтобы программа выполнялась на большинстве подобный операционных систем
-v - подробный вывод информации о процессе компиляции
-D - включение отладки exec
-T - разрешить трассировку откомпилированной программы, используя strace, ptrace, truss и т.д.
-C - вывести на экран лицензию и завершить выполнение программы
-A - вывести на экран произвольную информацию и завершить выполнение программы
-h - отобразить помощь по программе

На мой взгляд очень полезная программа для разработчиков bash-скриптов, чтобы защитить свою интеллектуальную собственность, позволяющая организовать демонстрацию работы скрипта без риска его кражи.

 

Категория: Bash

Комментарии к статье:

Пока комментариев нет, ваш будет первым ;)

Добавить комментарий: