Как я могу зашифровать или зашифровать свой сценарий оболочки, чтобы он не читался невооруженным глазом? Любой метод будет приемлемым, пожалуйста, укажите конкретные шаги.
Как я могу зашифровать или зашифровать свой сценарий оболочки, чтобы он не читался невооруженным глазом? Любой метод будет приемлемым, пожалуйста, укажите конкретные шаги.
Ответы:
Вы можете попробовать шаги, описанные на этом сайте, под названием: Как зашифровать скрипт Bash Shell в Linux с помощью SHC . В этой статье обсуждается использование инструмента под названием SHC - Shell script Compiler .
Это исполняемый файл, который вы должны будете собрать, используя gcc / g ++.
$ ./shc -f random.sh
Как только вы запустите его, ваш скрипт random.sh
будет преобразован в этот файл:
-rwx-wx--x. 1 ramesh ramesh 11752 Mar 27 01:12 random.sh.x
Нет, есть хороший анализ метода, используемого инструментом SHC, который показывает, что он не слишком силен и его можно обойти, если вы знаете, что делаете. Статья была опубликована на веб-сайте linuxjournal.com под названием « Параноидальный пингвин - ограничения shc, утилита шифрования оболочки» .
ПРИМЕЧАНИЕ. Эти классы инструментов, вероятно, лучше описать как обфускаторы.
fg
чтобы вывести его на передний план, и тогда все заработало нормально. Я все еще ищу альтернативы.
Если вы хотите зашифровать сценарий оболочки, используйте GPG . Любой, кто захочет запустить ваш скрипт, должен, конечно, сначала его расшифровать.
Если вы хотите, чтобы кто-то мог запускать скрипт, но не читать его, это совершенно другая проблема, которая не имеет ничего общего с шифрованием. Это называется запутывание .
Если у вас есть пароль или другая конфиденциальная информация в этом сценарии, никакая обфускация не сможет скрыть это. Рано или поздно скрипт будет использовать пароль, чтобы что-то сделать, и в этот момент пароль будет ясно виден всем, кто его ищет.
Если вы хотите скрыть, как работает ваш скрипт, потому что боитесь, что кто-то скопирует его, забудьте об этом. Никому нет дела.
Если вы хотите скрыть свой скрипт, потому что вам стыдно за его качество, исправьте его.
Если вы хотите скрыть, как работает ваш скрипт, потому что вы хотите скрыть то, что он делает, это не выполнимо. Кто-то может посмотреть на ваш сценарий, пока он выполняется, и посмотреть, что он делает.
Если вы прочитали это далеко и все еще хотите «зашифровать» свой сценарий, вы неправильно понимаете что-то важное. Не отправляйте никому свой сценарий или отправляйте его в виде простого текста.
Получил это при поиске в интернете, любезно предоставил Клаудио П.
Напишите свой скрипт (script-base.sh)
#!/bin/sh
echo "Hello World"
Зашифруйте ваш скрипт (укажите пароль):
openssl enc -e -aes-256-cbc -a -in script-base.sh > script-enc
Напишите де Враппер (script-final.sh):
#!/bin/sh
openssl enc -d -aes-256-cbc -a -in script-enc | sh -
Запустите «script-final.sh», введите пароль, и скрипт будет работать без записи простого текстового скрипта на диск.
По сути, вы можете запутать, но не скомпилировать свой скрипт. Простая причина в том, что сценарии оболочки интерпретируются отдельными командами, которые система должна выполнять одна за другой, и вы можете видеть эти команды, когда они выполняются системой одна с sh -x
флагом (и, возможно, также -v флаг)
Для большинства программистов этого будет достаточно, чтобы понять, что происходит.
Вы можете затемнять переменные и общий поток , если вы хотите, но вы не можете запутать indvidual команды , выполняемые по программе - что для сценариев оболочки , как правило , являются все из них.
Самым простым решением, вероятно, является переписывание сценария оболочки на скомпилированном языке, таком как C.
попробуйте отправить свой скрипт на этот сайт, если вы хотите скрыть его от публичного просмотра.
Хотя многие могут не согласиться с идеей шифрования или запутывания исходного кода сценария, написанного на интерпретируемом языке, я понимаю, почему люди хотят это делать.
как человек, у которого много раз украли его работу, мне просто все равно, является ли «запутывание» или «шифрование» табу. Пока мой сценарий защищен и работает так же, как и до шифрования, я вполне доволен. я никогда больше не позволю кому-то еще взять мои идеи и использовать их. и нет, писать мой сценарий на скомпилированном языке - это не вариант. я не знаю как.
в любом случае, если вы не хотите использовать сайт, упомянутый выше, попробуйте последнюю версию shc. Я считаю, что они обновили его в github для решения многих проблем безопасности, упомянутых другими. введите следующее в google " shc github ", и вы увидите множество доступных опций, которые вы можете попробовать.
удачи!