Иногда мы программируем сценарий в Колотить и мы хотим, чтобы этот код НЕ был виден, то есть не был простым текстом. Когда мы говорим о сокрытии кода, правильным термином будет затемнять, в моем случае я хотел запутать код сценарий, который я сделал некоторое время назадя нашел для этого утилиту: шк
шк Это позволяет нам обфускировать код, вот шаги по его использованию:
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
При выполнении этого скрипта он, очевидно, покажет нам сообщение в терминале: «Тестовый скрипт для DesdeLinux.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 бит)?