- Качаем и устанавливаем shcУдостоверяемся в работоспособности shc
$ wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.7.tgz $ tar xvfz shc-3.8.7.tgz $ cd shc-3.8.7 $ make
$ ./shc -v shc parse(-f): No source file specified shc Usage: shc [-e date] [-m addr] [-i iopt] [-x cmnd] [-l lopt] [-rvDTCAh] -f script
- Создаем тестовый скриптПроверяем, что он работает
$ vi random.sh #!/bin/bash echo -n "How many random numbers do you want to generate? " read max for (( start = 1; start <= $max; start++ )) do echo -e $RANDOM done
$ chmod +x random.sh $ ./random.sh How many random numbers do you want to generate? 4 16836 14453 15120 11611
- Криптуем наш скрипт с помощью shcshc создает два файла
$ ./shc -f random.sh
$ ls -l random.sh* -rwxrw-r--. 1 ramesh ramesh 149 Mar 27 01:09 random.sh -rwx-wx--x. 1 ramesh ramesh 11752 Mar 27 01:12 random.sh.x -rw-rw-r--. 1 ramesh ramesh 10174 Mar 27 01:12 random.sh.x.c
- random.sh - исходный файл
- random.sh.x - криптованый скрипт в бинарном формате
- random.sh.x.c - исходный код random.sh на Си. Этот исходник компилируется и создается random.sh.x
$ file random.sh random.sh: Bourne-Again shell script text executable $ file random.sh.x random.sh.x: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped $ file random.sh.x.c random.sh.x.c: ASCII C program text
- Выполняем закриптованый скрипт
$ ./random.sh.x How many random numbers do you want to generate? 5 8784 24255 31233 23229 18248
- Создаем скрипт с указанием даты экспайреда(опция -e, формат даты - dd/mm/yyyy)Проверяем:
$ ./shc -e 31/12/2011 -f random.sh
Указываем свое сообщение, выводимое в том случае, если скрипт заэкспейрен$ ./random.sh.x ./random.sh.x: has expired! Please contact your provider
И снова проверяем:$ ./shc -e 31/12/2011 -m "Contact kuzzya@domain.com for new version of this script" -f random.sh
$ ./random.sh.x ./random.sh.x: has expired! Contact kuzzya@domain.com for new version of this script
- Делаем распространяемым и прослеживаемым скрипт + смотрим подробно его созданиеи опять проверяем
$ ./shc -v -r -T -f random.sh shc shll=bash shc [-i]=-c shc [-x]=exec '%s' "$@" shc [-l]= shc opts= shc: cc random.sh.x.c -o random.sh.x shc: strip random.sh.x shc: chmod go-r random.sh.x
$ ./random.sh How many random numbers do you want to generate? 3 8129 30502 11763