Как скомпилировать bash скрипт в Linux?
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
Опция -r позволяет скомпилировать переносимый бинарный файл, который можно использовать на других компьютерах.
Утилита создаст два файла в текущем каталоге:
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
Для расшифровки бинарных файлов, созданных с помощью shc версии < 4.0.3 можно использовать утилиту с https://github.com/yanncam/UnSHc).
https://vmblog.ru/kompilirovat-bash-script-v-binarnik-linux/