Як заплутати або приховати код із наших скриптів Bash

Іноді ми програмуємо сценарій на Удар і ми хочемо, щоб код цього не був видимим, тобто не був простим текстом. Коли ми говоримо про приховування коду, то правильний термін затуманити, у моєму випадку я хотів затуманити код сценарій, який я зробив деякий час тому, утиліта, яку я знайшов для цього, називається: шк

шк Це дозволяє нам затушувати код, ось кроки для його використання:

1. Спочатку ми повинні завантажити його

Завантажте SHC v3.8.9

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, щоб встановити цю програму, нам потрібно зробити символічне посилання на файл shc-3.8.9.c a shc.c тому ми виконуємо наступне:

ln -s shc-3.8.9.c shc.c

 4. Як тільки посилання зроблено, ми виконуємо зробити установку з правами root (ми будемо використовувати sudo):

 sudo make install

 4. Він запитає у нас наш пароль і зачекає мить, буде чекати, поки ми натиснемо клавішу [І] і натисніть [Введіть], тобто підтверджуємо, що хочемо встановити програмне забезпечення. Після цього він буде встановлений без проблем. Я залишаю вам скріншот всього процесу підготовки та встановлення:

 


Як ви можете бачити в кінці, я отримую помилку, помилка стосується того, що певна папка не існує в моїй системі, якщо ви бачите, що це просто не надає їй значення ... все ще SHC встановлено успішно 😉
Тож вони можуть бігати sudo make install es ПОТРЕБНО встановити пакети: ПКУ y зробити

5. Готово, це саме для установки 😀

Коли він встановлений, нам просто потрібно навчитися ним користуватися. Припустимо, у нас вдома є сценарій, який називається script.sh і що його зміст такий:

#!/bin/bash
echo "Script de prueba para DesdeLinux.net"
exit

При виконанні цього сценарію він, очевидно, покаже нам у терміналі повідомлення: «Тестовий сценарій для DesdeLinux. Net" чи ні? ... Але, зараз ми збираємося затуманити цей код.

У термінал поміщаємо наступне і натискаємо [Введіть]:

shc -v -f $HOME/script.sh

І бінго !! готовий 😀

Це створило два нові файли разом із нашим сценарієм script.sh.x y script.sh.xc

script.sh.x - » Це наш заплутаний скрипт bash, при виконанні він буде робити точно так само, як і перший створений нами, різниця між ними полягає в тому, що перший, якщо ми відкрили його за допомогою текстового редактора (nano, kate, gedit тощо) ми могли чітко бачити його зміст, хоча, якщо відкритись для script.sh.x ми чітко побачимо, що нічого не бачимо ... LOL !!!, тобто код "зашифрований" 🙂

script.sh.xc - » Це наш сценарій, але на мові С ... ми можемо видалити це без хвилювання, бо він нам насправді не потрібен, ну, принаймні, він мені взагалі не потрібен

Немає чогось іншого, що насправді можна додати з технічної сторони, просто для того, щоб пояснити, що, наскільки я знаю, з цим (приховування або забруднення коду сценарію bash) це не порушує ліцензії або щось подібне. Я пояснюю це, тому що кілька місяців тому у Facebook, коли я згадав, що навчився заважати баш-коду, деякі користувачі попереджали мене, що це порушує ліцензії або щось подібне ... ну, наскільки я розумію, ліцензії не порушуються з цим 😉

Велике спасибі Матіас Гастон за те, що я згадав про цю програму деякий час тому

Більше нічого додати, будь-які сумніви чи запитання, скарги чи пропозиції дайте мені знати.

Вітаю 😀


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.

  1.   xykyz - сказав він

    Справа не в тому, що ліцензії порушуються, це в тому, що воно перестає бути вільним програмним забезпеченням ...

    1.    KZKG ^ Гаара - сказав він

      Так, звісно. Справа в тому, що є певні мої особисті сценарії, які я не хочу, щоб інші бачили, наприклад, тому що один із цих сценаріїв має пароль у простому тексті мого локального MySQL або щось подібне.

      1.    Морфея - сказав він

        НІ! Не зберігайте свої паролі в скриптах!
        http://technosophos.com/content/dont-script-your-password-add-simple-prompts-shell-scripts

        1.    KZKG ^ Гаара - сказав він

          Насправді я зберігаю свої паролі "прихованими" за допомогою SHA (https://blog.desdelinux.net/como-saber-la-suma-md5-o-sha-de-una-palabra-oracion-o-archivo/), тоді в скрипті я зберігаю хеш пароля, і те, що я роблю, це порівняти пароль, який вводить користувач (я зберігаю його з прочитаним), я отримую суму SHA і порівнюю обидва в кінці 🙂

          У будь-якому разі, велике спасибі за посилання, я його вже переглядаю 😀

          привіт

        2.    Давайте використовувати Linux - сказав він

          Точно! Підказка оболонки з запитом пароля є хорошою альтернативою.
          На здоров’я! Павло.

          1.    MSX - сказав він

            Але це не забезпечує автоматичного та автоматичного виконання, як це робиться в інший спосіб. 🙂

      2.    Вілліанс віванко - сказав він

        Введення паролів та інших даних доступу чи компрометації в сценарій є великою помилкою. Цю інформацію потрібно зберегти в іншому файлі з відповідними дозволами, тому вам не доведеться затумулювати скрипт bash. Легко так?

        1.    KZKG ^ Гаара - сказав він

          Проблема з тим, що дані (змінні для входу, конф. Конф. Тощо) в іншому файлі, полягають у тому, що тоді для роботи системи та додатка потрібні 2 файли, тоді як якщо я зберігаю якнайзахищеніше все в одному файлі, ну мені знадобиться лише той ... один файл.

          1.    Морфея - сказав він

            Хорошою практикою є відокремлення програми від даних.
            Точніше, це жахлива практика жорстко кодувати дані!
            http://es.wikipedia.org/wiki/Hard_code
            Це не має нічого спільного з безпекою, розміщуючи код і дані в одному файлі. І навіть більше, зовсім навпаки, якщо у вас там є ваші паролі !!

          2.    Вілліанс віванко - сказав він

            Вартість читання конфіденційної інформації з іншого файлу є незначною, на відміну від вартості процесора, необхідної для "скасування" вашого коду.

            З іншого боку, ви відкидаєте цілу парадигму модульного розвитку, роблячи ставку на монолітну модель, яка, більше ніж доведена, має більше проблем, ніж її рішення.

          3.    MSX - сказав він

            А також, що якщо ви використовуєте дозволи, які обов'язково залучатимуть інші групи / користувачів, вам також знадобиться початковий пароль для запуску першого сценарію.

          4.    MSX - сказав він

            @KZKG наведений вище коментар є відповіддю на ваш коментар
            @morpheus: це абсолютно відносно конкретної потреби.

    2.    Морфея - сказав він

      Але є безкоштовне програмне забезпечення, скомпільоване в двійковому вигляді (що більше, ніж заважає). Те, що він безкоштовний, означає, що він доступний на додаток до джерела, але це не має нічого спільного з затуманенням (або компіляцією, що є важливим, якщо я хочу запустити програму на С, наприклад)

      1.    Вілліанс віванко - сказав він

        У випадку зкомпільованого вільного програмного забезпечення, мова йде про вимогу мови, яка використовується (якщо ви програмуєте на мові C, вам потрібно скомпілювати, щоб ваша програма працювала). І те саме, завжди, якщо це справді Вільне програмне забезпечення, вихідний код буде доступний.

  2.   Хюга_Неджі - сказав він

    хамм Я позначаю певний ступінь апатії ділитися кодом ха-ха, щоб побачити, скільки в кінцевому підсумку починають "затуманювати свої коди", щоб зробити нас більш залежними від їх рішень ...

    1.    KZKG ^ Гаара - сказав він

      Я не кажу, що код слід затумувати чи ні ... Я даю інструменти, кожен з яких використовуватиме їх відповідно до своїх потреб.

      1.    коментатор - сказав він

        Заплутати код на цій сторінці?

        Я думаю, що це гарна ідея віддаляти читачів, оскільки я вважаю, що багато людей, які відвідують цей блог, є послідовниками вільного програмного забезпечення, і тому ми не поділяємо практики забруднення коду.

        1.    MSX - сказав він

          Ви, очевидно, не читали причину KZKG для пояснення необхідності затуманити її сценарій.

          Дякуємо KZKG за поділ вашої знахідки!

  3.   Габріель - сказав він

    І ось віруси починають циркулювати в Linux ...

    Особисто я НІКОЛИ не використовував будь-які заплутані сценарії. Не тільки через пов'язані з цим ризики безпеки, але тому, що якщо ваш сценарій занадто цінний, щоб ним ділитися, то краще помістіть його в * ulo; Я точно можу знайти когось, хто хоче поділитися своїми знаннями.

    1.    KZKG ^ Гаара - сказав він

      Ви ніколи не використовували б затуманений сценарій? Ну, ДУЖЕ добре для вас, я НІКОЛИ не використовував би затуманений сценарій ... подробиця в тому, що я НІКОЛИ не ділився заплутаним сценарієм, далеко від нього, і там, шановний друже, де помилка присутня 😉

      Кожного разу, коли я роблю щось у Bash, я ділюсь цим, не зважуючи і не турбуючи мене, що я вже робив у багатьох статтях тут 😀

      Ласкаво просимо до блогу, приємно вас читати 😉

  4.   Percaff_TI99 - сказав він

    Габріель, KZKG ^ Гаара вже ділиться знаннями, він не створює жодного пакета Linux із заплутаними сценаріями, які можуть бути порушенням ліцензії, він лише виявляє програми, якими можна користуватися чи ні для власного користування, не обов'язково грубити, для вірусів у Linux не все так просто, ось хороша стаття про це https://blog.desdelinux.net/virus-en-gnulinux-realidad-o-mito/.
    KZKG ^ Гаара Я хотів би, щоб ви написали допис про encfs та криптографію з використанням зображень, це тема, яка мені дуже подобається.
    На ура !!!

    1.    KZKG ^ Гаара - сказав він

      Дякую
      Насправді, справа не в тому, що я маю достатньо знань про encfs та криптографію, принаймні я не відчуваю себе досить впевнено, щоб зробити допис і припустити сумніви, які можуть виникнути у користувачів 😀
      У цій темі я не досвідчений користувач ...
      Найбільше, що я зробив, це використання GPG для шифрування файлів, а що стосується зображень, то найбільше, що я зробив, це `` вставити '' або сховати файл всередині зображення, роблячи очевидним, що коли зображення відкривається за допомогою засобу перегляду зображень, все показано правильно, це ви маєте на увазі?

      Ще раз дуже дякую за ваш коментар 🙂

  5.   ратакруель - сказав він

    Якщо я добре пам’ятаю, є затуманені чемпіонати С, але не варто використовувати «обфускатор», але вони повинні затуманити свої джерела без сідла.

    Що стосується shc та вашого сценарію з паролями ... дуже поганий спосіб роботи!

    Цікава стаття, як завжди.

    1.    KZKG ^ Гаара - сказав він

      Так, вже не один сказав мені LOL !!
      Дякуємо за ваш коментар 🙂

  6.   будь-коли - сказав він

    В основному, якщо ви надаєте спільний доступ до програми без спільного використання видимого сценарію, ви порушуєте GPL, який вимагає, щоб все, що генерується за допомогою програми GPL, було GPL. Ось чому SHC генерує C, тому що це код, яким ви можете поділитися.

    привіт

  7.   Давайте використовувати Linux - сказав він

    Я погоджуюся з коментарями інших читачів: не тільки не є доброю практикою зберігати дані та сценарії разом, але і не сприяє розробці вільного програмного забезпечення.
    Обійми! Павло.

    1.    KZKG ^ Гаара - сказав він

      Привіт Пабло 🙂
      У мене є якийсь інший затуманений сценарій, який працює внутрішньо на моєму ноутбуці, я затуманюю його, тому що я просто не хочу, щоб, якщо хтось з якихось причин зумів скопіювати мій сценарій на інший комп’ютер, я просто не хочу, щоб вони могли бачити, що це містить, це "захід безпеки", який я приймаю.

      Проте тут, в DesdeLinux Я публікую все або майже все, що програмую в Bash, що може бути цікавим.

      Коротше кажучи, це не те, що я зараз недоброзичливцем SWL за забруднення особистого сценарію, для того, щоб робити це в особистих цілях 😀

      Привіт друг

  8.   codelab - сказав він

    Хороша інформація. Окрім суперечок, які виникають у коментарях, мені здається інформацією, щоб продовжити розслідування ще трохи.

    Я думаю, що автор жодного разу в статті не говорить нам, чи добре це зроблено чи погано, чи потрібно це робити, чи не слід, він просто повідомляє нам інструмент, за допомогою якого це можна зробити, якщо це комусь вигідно .

    Привітання.

    codelab

    1.    f3niX - сказав він

      У блогах Linuxeros все суперечливо, ха-ха, так було завжди.

      1.    MSX - сказав він

        @ F3niX Я збираюся вирізати скріншот з вашим коментарем, щоб помістити його кожного разу, коли хтось дурно згадує цю тему.

        Примітка: давайте подивимося, коли я зможу знайти вас на форумах irc та чакри 😉

    2.    KZKG ^ Гаара - сказав він

      ТОЧНО !!
      Я просто показую / викладаю / пояснюю щось нове, що я дізнався, від вас залежить, використовувати ці знання чи ні, я не змушую вас далеко від цього.

      Наскільки я знаю, обмін знаннями - це добре, чи не так? 0_oU

      Дякуємо за ваш коментар. Приємно знати, що є не один чи два, хто розуміє справжню мету цієї статті.

  9.   Percaff_TI99 - сказав він

    Там ти поставив мене у важку точку xD, кілька тижнів тому я готую допис, який збирався називатись «Встановлення та тестування Crux», і, незважаючи на те, що установка була проведена успішно, я звичайний користувач і я не знаю, чи зможу я впоратися з сумнівами третіх сторін, намір полягає в тому, щоб він служив інструментом для обговорення достоїнств і недоліків цього дистрибутиву та можливих рішень проблем, які можуть виникнути, допомагаючи нам серед всі користувачі та читачі. Коли я його закінчу і надішлю на перевірку, ви (адміністратори) вирішите. Що стосується питання криптографії на зображеннях, воно було однаковим, дякую KZKG ^ Gaara за відповідь.

    Привіт!

    1.    KZKG ^ Гаара - сказав він

      Гаразд із задоволенням, я буду писати про це

  10.   Макубекс Учіха - сказав він

    чудовий брат, я знайшов це дуже корисним: 3
    для тих, хто хоче встановити його в manjaro linux та похідні від archlinux, пакет знаходиться в аурі з ім'ям: shc

    привіт

  11.   Маркос - сказав він

    Вибачте, друже, у мене був невеликий сценарій, який перетворював ЗАГЛАВНІ БУКВИ в малі літери, які були в буфері обміну (xclip)

    сценарій працює нормально, коли не затуманений

    #! / бін / баш
    xclip -o> R1.txt
    cat R1.txt | tr [: верхній:] [: нижній:]
    викидати ""
    rm R1.txt

    але коли я хочу запустити скритий скрипт
    каже мені

    ./M2m.sh: Експлуатація заборонена
    Завершено (вбито)

    Будь ласка, допоможіть

    1.    KZKG ^ Гаара - сказав він

      У вас встановлений xclip?

  12.   SynFlag - сказав він

    Слід зазначити, що насправді це компілятор bash, оскільки існують компілятор .bat або .php.
    Я не знаю, чи код, який створює, зашифрований і затуманений і не витримує декомпілятора, потрібно було б спробувати, оскільки це не моє поле, я не кажу так чи ні, але те, що я бачу, це робить компіляція bash, в .c це Ви можете побачити код, який, у затуманеному, я бачу, що він знаходиться в рядках, що виглядають як експлойт-оболонка, я не знаю, чи справді вони заплутані, оскільки пароль не запитується або я не знаю, master.config де попереднє ключове слово.

  13.   Хуан Девід - сказав він

    друзі, трапляється, що коли я затуманюю свій сценарій, він створює новий сценарій із закінченням ex, я виконую його, і він навіть ідеальний. Але коли я переношу його на інший комп’ютер з linuz, він не працює, у нього вже є всі дозволи, я створюю панель запуску та повідомляю, що це термінальна програма, але вона не працює, будь ласка, зачекайте швидкої відповіді

    1.    KZKG ^ Гаара - сказав він

      Ви його скомпілювали і запускаєте в системі з тією ж архітектурою? Іншими словами, це дасть вам помилку, якщо ви скомпілювали її, щоб затуманити її в 32-розрядної системі, а потім спробувати запустити в 64-розрядної системі, або навпаки. Ти розумієш?

      1.    Хуан Девід - сказав він

        Ні, але я вже забезпечив форматування того самого комп’ютера, з тією ж операційною системою, і він не працює, навіть не надсилає помилку.
        Я називаю це за допомогою консолі так: sudo /home/operations/script.x, і я отримую цю помилку

        /home/operaciones/script.x: e } 8- q , K

        ціла справа

        1.    KZKG ^ Гаара - сказав він

          Спробуйте запустити БЕЗ компіляції, щоб перевірити, чи не помилка в коді

    2.    Нік - сказав він

      Щоб запустити скритий скрипт на інших комп'ютерах, вам потрібно скомпілювати його з опцією «-r Relax security. Зробіть розподільний двійковий файл ', інакше він буде працювати лише на машині, де скрипт був затуманений SHC.
      Приклад:

      shc -r -f script.sh

  14.   Вільям - сказав він

    Привіт, у мене є запит, shc можна встановити в будь-який тип дистрибутива Linux?, Наприклад, red hat, як би це було встановлено для нього?
    Спасибо!

  15.   руїз - сказав він

    Привіт усім, ваші коментарі мені дуже допомогли, але у мене є така проблема, коли затуманення не працює для мене в одній системі, але з іншою архітектурою, тобто якщо я роблю це в 32 біти, воно не може працювати в 64 біти . Хтось знає, чи справді його можна запускати на різних архітектурах (32 та 64 біти)?