Bash скрипты используются в открытом виде. Скрыть исходный код bash скрипта с помощью обсуфускации, можно скомпилировав его в бинарный файл. В Linux для компиляции bash скриптов можно использовать утилиту shc. Эта утилита может транслировать код bash скрипта в язык C и скомпилировать его. На выходе вы получите бинарный файл, который можно запустить почти на любом другом хосте Linux.
В нашем примере мы скомпилируем простой Bash скрипт myscript.sh
#!/bin/bash echo "Hello, $1?"
Установите пакет shc (требует наличия компиляторов gcc):
$ sudo apt install shc gcc
Чтобы скомпилировать ваш bash скрипт в бинарный файл, выполните команду:
$ shc -rf myscript.sh
Утилита создаст два файла в текущем каталоге:
myscript.sh.x
– бинарный файлmyscript.sh.x.c
– исходник на C
Содержимое бинарного файла закодировано, и пользователь не сможет прочитать код вашего BAT скрипта.
Вы можете запустить бинарный файл:
$ ./myscript.sh.x SuperAdm
С помощью shc можно указать дату действия программы. После истечения этой даты ваш бинарный файл не будет запускаться:
$ shc -e 31/03/2024 -m "Script is expired!" -rf myscript.sh
./myscript.sh.x: has expired!
Для удобства вы можете переименовать полученный файл:
$ mv myscript.sh.x testapp
Разрешите запуск файла:
$ chmod a+x testapp