Как скрыть код Bash скрипов
Очень часто на фрилансе бывает, так что заказчик просит сделать некоторую работу, получив тестовую версию, принимает её и отказывается платить.
Я на фрилансе достаточно часто делаю скрипты под заказ, администрирование серверов и тд, автоматизация неких процессов на сервер, уловив основную идею написания, как правило, заказчик пропадает, решив что это все так просто и не за что платить. Столкнувшись с понятием Обфуска́ция в С, решил поискать аналогичное решение и для своего любимого Bash. Разработчик некто Francisco Javier Rosales García Решение называется shc — транслятор Bash в C
Из опций особо понравилось
-e date
Expiration date in dd/mm/yyyy format [none]
-m message
message to display upon expiration ["Please contact your provider"]
Скачать можно исходники по адресу www.datsi.fi.upm.es/~frosal/
Пример работы:
1) Создадим простейший Bash скрипт test.sh
#!/bin/bash echo "Hello" #вывод приветствия a=$1 #Первая введенная переменная echo $a #Вывод содержимого переменной
Проверяем
sh test.sh test
Hello WORD
test
2) Запустим shc и выполним преобразование
[user@server shc-3.8.7]$ ./shc -v -r -T -f test.sh
3) На выходе получаем
shc shll=bash
shc [-i]=-c
shc [-x]=exec '%s' "$@"
shc [-l]=
shc opts=
shc: cc test.sh.x.c -o test.sh.x
shc: strip test.sh.x
shc: chmod go-r test.sh.x
4) Проверка
./test.sh.x test Hello WORD test
Теперь по порядку
Создается файл test.sh.x.c — практически нечитаемое содержимое Сишного кода, его в любой момент можно скомпилить вручную используя cc компилятор.
Второй файл test.sh.x — уже бинарный, выполняется на любом практически Линуксе, проверил на 5ти (Gentoo, RHEL, Debian, ALT, OpenSuSE)
О производительности говорить не приходится, так как это неактуально, скрипты пишутся для других задач.
Источник http://habrahabr.ru/blogs/sandbox/139666/
Отблагдарить автора статьи также можно переводом, +100 вам в карму!
bash c code debian linux script sh баш код скрипт скрыть спрятать фриланс