Как скомпилировать 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/

 

 

<< Назад

Наверх