Иногда мы программируем сценарий в Колотить и мы хотим, чтобы этот код НЕ был виден, то есть не был простым текстом. Когда мы говорим о сокрытии кода, правильным термином будет затемнять, в моем случае я хотел запутать код сценарий, который я сделал некоторое время назадя нашел для этого утилиту: шк
шк Это позволяет нам обфускировать код, вот шаги по его использованию:
1. Сначала мы должны его скачать
2. После того, как мы его загрузили, мы щелкаем правой кнопкой мыши по сжатому файлу и выбираем вариант с надписью «Извлечь сюда"или что-то подобное. Это заставит нас увидеть папку с именем SHC-3.8.9, здесь я показываю вам скриншот его содержания
3. Хорошо, допустим, папка находится в /home/usuario/Downloads/shc-3.8.9 Итак, открываем терминал и идем по этому маршруту (cd "/home/usuario/Downloads/shc-3.8.9"), и здесь начинается установка.
4. В терминале, находящемся (как я уже сказал) в папке SHC-3.8.9, чтобы установить это приложение, нам нужно сделать символическую ссылку на файл шк-3.8.9.с a шк.к поэтому мы выполняем следующее:
ln -s shc-3.8.9.c shc.c
4. Как только ссылка создана, мы выполняем сделать установку с правами root (мы будем использовать sudo):
sudo make install
4. Он спросит у нас наш пароль и будет ждать некоторое время, он будет ждать, когда мы нажмем клавишу [И] и нажмите [Войти], то есть мы подтверждаем, что действительно хотим установить программное обеспечение. Как только это будет сделано, он установится без проблем. Оставляю вам скриншот всего процесса подготовки и установки:
sudo make install
es НЕОБХОДИМО установить пакеты: GCC y сделать5. Готово, это все для установки
Когда он у нас установлен, нам просто нужно научиться его использовать. Предположим, у нас дома есть сценарий под названием скрипт.sh и что его содержание следующее:
#!/bin/bash
echo "Script de prueba para DesdeLinux.net"
exit
При выполнении этого скрипта он, очевидно, покажет нам сообщение в терминале: «Тестовый скрипт для FromLinux.net" или нет? … Но теперь мы собираемся запутать этот код.
В терминале вводим следующее и нажимаем [Войти]:
shc -v -f $HOME/script.sh
И бинго!! готов
Это создало нам два новых файла вместе с нашим скриптом, теперь у нас есть скрипт.sh.x y script.sh.xc
script.sh.x - » Это наш обфусцированный сценарий bash, когда мы его запускаем, он будет делать то же самое, что и первый, который мы создали, разница между ними в том, что первый, если мы открыли его с помощью текстового редактора (nano, kate, gedit и т. Д.) мы могли бы ясно видеть его содержание, а если бы мы открылись скрипт.sh.x мы ясно увидим, что ничего не видим... ЛОЛ!!!, то есть код "зашифрован"
script.sh.xc - » Это наш скрипт, но на языке C... мы можем удалить его, не беспокоясь, потому что он нам на самом деле не нужен, ну, по крайней мере, мне он вообще не понадобится
С технической стороны добавить особо нечего, просто уточните, что, насколько мне известно, с помощью этого (сокрытия или запутывания кода сценария bash) вы не нарушаете лицензии или что-то в этом роде. Я уточняю это, потому что несколько месяцев назад в Facebook, когда я упомянул, что научился запутывать bash-код, некоторые пользователи предупредили меня, что это нарушает лицензии или что-то в этом роде... во всяком случае, насколько я понимаю, это не нарушает лицензии
Нечего добавить, любые сомнения или вопросы, жалобы или предложения, дайте мне знать.
Привет
Дело не в том, что лицензии нарушаются, дело в том, что программное обеспечение перестает быть свободным ...
Да, конечно. Дело в том, что есть определенные мои личные скрипты, которые я не хочу, чтобы другие видели, например, потому что один из этих скриптов имеет пароль в виде обычного текста моего локального MySQL или что-то подобное.
НЕТ! Не сохраняйте пароли в скриптах!
http://technosophos.com/content/dont-script-your-password-add-simple-prompts-shell-scripts
На самом деле я скрываю свои пароли с помощью SHA (https://blog.desdelinux.net/como-saber-la-suma-md5-o-sha-de-una-palabra-oracion-o-archivo/), то в скрипте я сохраняю хэш пароля и сравниваю пароль, который вводит пользователь (я сохраняю его с помощью read), я получаю сумму SHA и сравниваю оба в конце 🙂
В любом случае, спасибо большое за ссылку, уже просматриваю 😀
привет
Точно! Приглашение оболочки с запросом пароля - хорошая альтернатива.
Ура! Павел.
Но он не обеспечивает автоматическое и автоматическое выполнение, как в противном случае. 🙂
Ввод паролей и других данных доступа или компрометации в скрипт - большая ошибка. Эта информация должна быть сохранена в другом файле с соответствующими разрешениями, поэтому вам не придется запутывать свой сценарий bash. Легко, да?
Проблема с наличием данных (переменных входа, confs и т. Д.) В другом файле заключается в том, что тогда «системе» или «приложению» для работы требуются 2 файла, тогда как если я сохраню все «безопасным» способом, как возможно, единственный файл , ну, мне понадобится только это ... один файл.
Рекомендуется отделить приложение от данных.
Или, скорее, жесткое кодирование данных - ужасная практика!
http://es.wikipedia.org/wiki/Hard_code
Это не имеет ничего общего с безопасностью размещения кода и данных в одном файле. И даже более того, совсем наоборот, если у вас там есть пароли !!
Стоимость чтения конфиденциальной информации из другого файла ничтожно мала по сравнению со стоимостью процессора, необходимой для «получения» вашего кода.
С другой стороны, вы отбрасываете целую парадигму модульной разработки, делая ставку на монолитную модель, которая, более чем доказанная, дает больше проблем, чем решений.
А также, если вы используете разрешения, которые обязательно будут включать другие группы / пользователей, вам также понадобится начальный пароль для выполнения первого скрипта.
@KZKG комментарий выше является ответом на ваш комментарий
@morpheus: это абсолютно соответствует конкретной потребности.
Но есть бесплатное программное обеспечение, скомпилированное в двоичном формате (которое более чем запутывается). Тот факт, что он бесплатный, означает, что у него также есть исходный код, но он не имеет ничего общего с обфускацией (или компиляцией, что важно, например, если я хочу запустить программу на C)
В случае скомпилированного бесплатного программного обеспечения это вопрос требований к используемому языку (если вы программируете на C, вам нужно скомпилировать, чтобы ваше приложение работало). И то же самое, всегда, если это действительно бесплатное программное обеспечение, исходный код будет доступен.
humm обозначают определенную степень апатии, чтобы поделиться кодом, хе-хе-хе, чтобы увидеть, сколько людей в конечном итоге начинают «запутывать свои коды», чтобы сделать нас более зависимыми от их решений ...
Я не говорю, что код должен быть запутанным или нет ... Я даю инструменты, каждый из которых может использовать их в соответствии со своими потребностями.
Скрыть код на этой странице?
Я думаю, что это хорошая идея для читателей на расстоянии, так как я считаю, что многие из людей, которые посещают этот блог, являются последователями свободных программ, и поэтому мы не разделяем практику обфускации кода.
Вы, очевидно, не читали причину, по которой KZKG объясняют необходимость обфускации своего сценария.
Спасибо KZKG за то, что поделились своей находкой!
И вот в Linux начали циркулировать вирусы ...
Лично я НИКОГДА не буду использовать какие-либо запутанные скрипты. Не только из-за рисков, связанных с безопасностью, но и потому, что если ваш сценарий слишком важен, чтобы делиться им, лучше поместить его в * ulo; Я обязательно найду кого-нибудь, кто захочет поделиться своими знаниями.
Вы бы когда-нибудь использовали обфусцированный сценарий? Что ж, ОЧЕНЬ хорошо для вас, я бы НИКОГДА не использовал обфусцированный сценарий ... деталь в том, что я НИКОГДА не делился обфусцированным сценарием, далеко не так, и вот, дорогой друг, где ошибка присутствует
Всякий раз, когда я делаю что-то в Bash, я делюсь этим, не взвешивая и не беспокоя меня, что я уже делал во многих статьях здесь 😀
Добро пожаловать в блог, приятно вас читать 😉
Габриэль, KZKG ^ Гаара уже делится знаниями, он не создает никаких пакетов linux с обфусцированными скриптами, которые, если это может быть нарушением лицензии, только показывают приложения, которые можно использовать или нет для собственного использования, это не обязательно быть грубым , насчет вирусов в linux не все так просто, вот хорошая статья об этом https://blog.desdelinux.net/virus-en-gnulinux-realidad-o-mito/.
KZKG ^ Gaara Я бы хотел, чтобы вы написали пост о encfs и криптографии с использованием изображений, это тема, которая мне очень нравится.
Ура !!!
Благодарю вас!
На самом деле, дело не в том, что у меня достаточно знаний о encfs и криптографии, по крайней мере, я не чувствую себя достаточно уверенно, чтобы сделать сообщение и предположить сомнения, которые могут возникнуть у пользователей 😀
В этой теме я не продвинутый пользователь ...
Самое большее, что я сделал, - это использование GPG для шифрования файлов, а что касается изображений, то самое большее, что я сделал, это «вставил» или скрыл файл внутри изображения, что сделало очевидным, что когда изображение открывается в средстве просмотра изображений, все отображается правильно, это вы имеете в виду?
Еще раз большое спасибо за ваш комментарий 🙂
Если я правильно помню, есть запутанные чемпионаты C, но не стоит использовать «обфускатор», но они должны запутывать свои исходные коды без поддержки.
Что касается shc и вашего скрипта с паролями… очень плохой способ работы!
Интересная статья, как всегда.
Да, больше одного мне уже сказали LOL !!
Спасибо за комментарий 🙂
По сути, если вы поделитесь приложением без совместного использования видимого сценария, вы нарушите GPL, которая требует, чтобы все, что сгенерировано с помощью приложения GPL, было GPL. Вот почему SHC генерирует C, потому что это код, которым вы можете поделиться.
привет
Я согласен с комментариями других читателей: не только не рекомендуется хранить данные и скрипты вместе, но и не способствует развитию свободных программ.
Объятья! Павел.
Привет Пабло
У меня есть другой запутанный сценарий, который работает внутри моего ноутбука, я запутываю его, потому что я просто не хочу, чтобы если кому-то по какой-то причине удалось скопировать мой сценарий на другой компьютер, я просто не хочу, чтобы они могли видеть, что это содержит, это «мера безопасности», которую я принимаю.
Однако здесь, в DesdeLinux, я публикую все или почти все, что я программирую в Bash, что может быть интересно.
Короче говоря, дело не в том, что я теперь хулитель SWL за обфускацию личного сценария, за то, что делаю это в личных целях 😀
Привет друг
Хорошая информация. Помимо разногласий, возникающих в комментариях, мне кажется, что нужно продолжить расследование еще немного.
Я думаю, что автор ни разу в статье не говорит нам, хорошо это или плохо сделано, или нужно или не нужно это делать, он просто говорит нам, с помощью чего это можно сделать, если это кому-то полезно. .
Приветствие.
Codelab
В Linuxeros БЛОГИ все спорно, ха-ха это всегда было так.
@ F3niX Я собираюсь вырезать скриншот с вашим комментарием, чтобы помещать его каждый раз, когда кто-то глупо упоминает тему.
Примечание: посмотрим, когда я смогу найти вас на форумах irc и Chakra 😉
ТОЧНО !!
Я просто показываю / преподаю / объясняю что-то новое, чему я научился, использовать эти знания или нет, решать вам, я не заставляю вас далеко от этого.
Насколько я знаю, делиться знаниями - это хорошо, правда? 0_oU
Спасибо за ваш комментарий, приятно знать, что есть более одного или двух, кто понимает истинную цель этой статьи.
Здесь вы поставили меня в затруднительное положение xD, несколько недель назад я готовил пост под названием «Установка и тестирование Crux» и, несмотря на то, что установка прошла успешно, я обычный пользователь и я не знаю, смогу ли я справиться с сомнениями третьих лиц, намерение состоит в том, чтобы он служил инструментом обсуждения достоинств и недостатков этого дистрибутива и возможных решений проблем, которые могут возникнуть, помогая нам среди всех пользователей и читателей. Когда я его закончу и отправлю на рассмотрение, вы (администраторы) будете решать. Что касается проблемы с криптографией в изображениях, то она была такой же, спасибо KZKG ^ Gaara за ответ.
Привет!
Хорошо, с удовольствием сделаю пост об этом
отличный туто братан я нашел это очень полезным: 3
для тех, кто хочет установить его в manjaro linux и производных от archlinux, пакет находится в aur с именем: shc
привет
Извините, друг, у меня был небольшой скрипт, который преобразовывал ЗАГЛАВНЫЕ БУКВЫ в строчные буквы, которые были в буфере обмена (xclip)
скрипт работает нормально, когда не запутан
#! / Bin / Баш
xclip -o> R1.txt
кот R1.txt | tr [: верхний:] [: нижний:]
выбросил ""
рм R1.txt
но когда я хочу запустить обфусцированный скрипт
говорит мне
./M2m.sh: операция запрещена
Завершено (убито)
Пожалуйста помоги
У вас установлен xclip?
Следует отметить, что на самом деле это компилятор bash, так как существуют компиляторы .bat или .php.
Я не знаю, зашифрован ли и запутан ли код, который производит, и не сопротивляется декомпилятору, мне нужно попробовать, так как это не мое поле, я не говорю да или нет, но то, что я вижу, это компилирует bash , в .c это Вы можете увидеть код, который внутри обфусцированного, я вижу, что он находится в строках, которые выглядят как оболочка эксплойта, я не знаю, действительно ли они запутаны, так как пароль не запрашивается или Не знаю, где в master.config предыдущее ключевое слово.
друзья, бывает, что когда я запутываю свой сценарий, он создает новый сценарий с окончанием ex, я выполняю его, и он даже идеально. Но когда я беру его на другой компьютер с linuz, он не запускается, у него уже есть все разрешения, я создаю пусковую установку и сообщаю ему, что это терминальное приложение, но оно не работает, пожалуйста, дождитесь быстрого ответа
Вы его скомпилировали и запускаете ли вы в системе с такой же архитектурой? Другими словами, он выдаст вам ошибку, если вы скомпилировали его для обфускации в 32-битной системе, а затем попытаетесь запустить его в 64-битной системе, или наоборот. Вы понимаете?
Нет, но я уже отформатировал тот же компьютер, с той же операционной системой, и он не запускается, он даже не отправляет ошибку.
Я вызываю это с консоли так: sudo /home/operations/script.x и получаю эту ошибку
/home/operaciones/script.x: e } 8- q , K
целый случай
Попробуйте запустить его БЕЗ компиляции, чтобы убедиться, что это ошибка в коде
Чтобы запустить запутанный сценарий на других компьютерах, вам необходимо скомпилировать его с опцией «-r Ослабить безопасность. Сделайте распространяемый двоичный файл », иначе он будет работать только на той машине, где сценарий был обфусцирован с помощью SHC.
пример:
shc -r -f script.sh
Здравствуйте, у меня есть вопрос, shc можно установить в любом типе дистрибутива Linux? Например Red Hat, как бы была установка для этого?
Спасибо!
Всем привет, ваши комментарии мне очень помогли, но у меня есть следующая проблема, когда обфускация не работает у меня в той же системе, но с другой архитектурой, то есть, если я делаю это в 32 битах, она не может работать в 64 битах . Кто-нибудь знает, действительно ли его можно запустить на разных архитектурах (32 и 64 бит)?