Іноді ми програмуємо сценарій на Удар і ми хочемо, щоб код цього не був видимим, тобто не був простим текстом. Коли ми говоримо про приховування коду, то правильний термін затуманити, у моєму випадку я хотів затуманити код сценарій, який я зробив деякий час тому, утиліта, яку я знайшов для цього, називається: шк
шк Це дозволяє нам затушувати код, ось кроки для його використання:
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, щоб встановити цю програму, нам потрібно зробити символічне посилання на файл shc-3.8.9.c a shc.c тому ми виконуємо наступне:
ln -s shc-3.8.9.c shc.c
4. Як тільки посилання зроблено, ми виконуємо зробити установку з правами root (ми будемо використовувати sudo):
sudo make install
4. Він запитає у нас наш пароль і зачекає мить, буде чекати, поки ми натиснемо клавішу [І] і натисніть [Введіть], тобто підтверджуємо, що хочемо встановити програмне забезпечення. Після цього він буде встановлений без проблем. Я залишаю вам скріншот всього процесу підготовки та встановлення:
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, коли я згадав, що навчився заважати баш-коду, деякі користувачі попереджали мене, що це порушує ліцензії або щось подібне ... ну, наскільки я розумію, ліцензії не порушуються з цим 😉
Більше нічого додати, будь-які сумніви чи запитання, скарги чи пропозиції дайте мені знати.
Вітаю 😀
Справа не в тому, що ліцензії порушуються, це в тому, що воно перестає бути вільним програмним забезпеченням ...
Так, звісно. Справа в тому, що є певні мої особисті сценарії, які я не хочу, щоб інші бачили, наприклад, тому що один із цих сценаріїв має пароль у простому тексті мого локального 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/), тоді в скрипті я зберігаю хеш пароля, і те, що я роблю, це порівняти пароль, який вводить користувач (я зберігаю його з прочитаним), я отримую суму SHA і порівнюю обидва в кінці 🙂
У будь-якому разі, велике спасибі за посилання, я його вже переглядаю 😀
привіт
Точно! Підказка оболонки з запитом пароля є хорошою альтернативою.
На здоров’я! Павло.
Але це не забезпечує автоматичного та автоматичного виконання, як це робиться в інший спосіб. 🙂
Введення паролів та інших даних доступу чи компрометації в сценарій є великою помилкою. Цю інформацію потрібно зберегти в іншому файлі з відповідними дозволами, тому вам не доведеться затумулювати скрипт bash. Легко так?
Проблема з тим, що дані (змінні для входу, конф. Конф. Тощо) в іншому файлі, полягають у тому, що тоді для роботи системи та додатка потрібні 2 файли, тоді як якщо я зберігаю якнайзахищеніше все в одному файлі, ну мені знадобиться лише той ... один файл.
Хорошою практикою є відокремлення програми від даних.
Точніше, це жахлива практика жорстко кодувати дані!
http://es.wikipedia.org/wiki/Hard_code
Це не має нічого спільного з безпекою, розміщуючи код і дані в одному файлі. І навіть більше, зовсім навпаки, якщо у вас там є ваші паролі !!
Вартість читання конфіденційної інформації з іншого файлу є незначною, на відміну від вартості процесора, необхідної для "скасування" вашого коду.
З іншого боку, ви відкидаєте цілу парадигму модульного розвитку, роблячи ставку на монолітну модель, яка, більше ніж доведена, має більше проблем, ніж її рішення.
А також, що якщо ви використовуєте дозволи, які обов'язково залучатимуть інші групи / користувачів, вам також знадобиться початковий пароль для запуску першого сценарію.
@KZKG наведений вище коментар є відповіддю на ваш коментар
@morpheus: це абсолютно відносно конкретної потреби.
Але є безкоштовне програмне забезпечення, скомпільоване в двійковому вигляді (що більше, ніж заважає). Те, що він безкоштовний, означає, що він доступний на додаток до джерела, але це не має нічого спільного з затуманенням (або компіляцією, що є важливим, якщо я хочу запустити програму на С, наприклад)
У випадку зкомпільованого вільного програмного забезпечення, мова йде про вимогу мови, яка використовується (якщо ви програмуєте на мові C, вам потрібно скомпілювати, щоб ваша програма працювала). І те саме, завжди, якщо це справді Вільне програмне забезпечення, вихідний код буде доступний.
хамм Я позначаю певний ступінь апатії ділитися кодом ха-ха, щоб побачити, скільки в кінцевому підсумку починають "затуманювати свої коди", щоб зробити нас більш залежними від їх рішень ...
Я не кажу, що код слід затумувати чи ні ... Я даю інструменти, кожен з яких використовуватиме їх відповідно до своїх потреб.
Заплутати код на цій сторінці?
Я думаю, що це гарна ідея віддаляти читачів, оскільки я вважаю, що багато людей, які відвідують цей блог, є послідовниками вільного програмного забезпечення, і тому ми не поділяємо практики забруднення коду.
Ви, очевидно, не читали причину KZKG для пояснення необхідності затуманити її сценарій.
Дякуємо KZKG за поділ вашої знахідки!
І ось віруси починають циркулювати в Linux ...
Особисто я НІКОЛИ не використовував будь-які заплутані сценарії. Не тільки через пов'язані з цим ризики безпеки, але тому, що якщо ваш сценарій занадто цінний, щоб ним ділитися, то краще помістіть його в * ulo; Я точно можу знайти когось, хто хоче поділитися своїми знаннями.
Ви ніколи не використовували б затуманений сценарій? Ну, ДУЖЕ добре для вас, я НІКОЛИ не використовував би затуманений сценарій ... подробиця в тому, що я НІКОЛИ не ділився заплутаним сценарієм, далеко від нього, і там, шановний друже, де помилка присутня 😉
Кожного разу, коли я роблю щось у Bash, я ділюсь цим, не зважуючи і не турбуючи мене, що я вже робив у багатьох статтях тут 😀
Ласкаво просимо до блогу, приємно вас читати 😉
Габріель, KZKG ^ Гаара вже ділиться знаннями, він не створює жодного пакета Linux із заплутаними сценаріями, які можуть бути порушенням ліцензії, він лише виявляє програми, якими можна користуватися чи ні для власного користування, не обов'язково грубити, для вірусів у Linux не все так просто, ось хороша стаття про це https://blog.desdelinux.net/virus-en-gnulinux-realidad-o-mito/.
KZKG ^ Гаара Я хотів би, щоб ви написали допис про encfs та криптографію з використанням зображень, це тема, яка мені дуже подобається.
На ура !!!
Дякую
Насправді, справа не в тому, що я маю достатньо знань про encfs та криптографію, принаймні я не відчуваю себе досить впевнено, щоб зробити допис і припустити сумніви, які можуть виникнути у користувачів 😀
У цій темі я не досвідчений користувач ...
Найбільше, що я зробив, це використання GPG для шифрування файлів, а що стосується зображень, то найбільше, що я зробив, це `` вставити '' або сховати файл всередині зображення, роблячи очевидним, що коли зображення відкривається за допомогою засобу перегляду зображень, все показано правильно, це ви маєте на увазі?
Ще раз дуже дякую за ваш коментар 🙂
Якщо я добре пам’ятаю, є затуманені чемпіонати С, але не варто використовувати «обфускатор», але вони повинні затуманити свої джерела без сідла.
Що стосується shc та вашого сценарію з паролями ... дуже поганий спосіб роботи!
Цікава стаття, як завжди.
Так, вже не один сказав мені LOL !!
Дякуємо за ваш коментар 🙂
В основному, якщо ви надаєте спільний доступ до програми без спільного використання видимого сценарію, ви порушуєте GPL, який вимагає, щоб все, що генерується за допомогою програми GPL, було GPL. Ось чому SHC генерує C, тому що це код, яким ви можете поділитися.
привіт
Я погоджуюся з коментарями інших читачів: не тільки не є доброю практикою зберігати дані та сценарії разом, але і не сприяє розробці вільного програмного забезпечення.
Обійми! Павло.
Привіт Пабло 🙂
У мене є якийсь інший затуманений сценарій, який працює внутрішньо на моєму ноутбуці, я затуманюю його, тому що я просто не хочу, щоб, якщо хтось з якихось причин зумів скопіювати мій сценарій на інший комп’ютер, я просто не хочу, щоб вони могли бачити, що це містить, це "захід безпеки", який я приймаю.
Проте тут, в DesdeLinux Я публікую все або майже все, що програмую в Bash, що може бути цікавим.
Коротше кажучи, це не те, що я зараз недоброзичливцем SWL за забруднення особистого сценарію, для того, щоб робити це в особистих цілях 😀
Привіт друг
Хороша інформація. Окрім суперечок, які виникають у коментарях, мені здається інформацією, щоб продовжити розслідування ще трохи.
Я думаю, що автор жодного разу в статті не говорить нам, чи добре це зроблено чи погано, чи потрібно це робити, чи не слід, він просто повідомляє нам інструмент, за допомогою якого це можна зробити, якщо це комусь вигідно .
Привітання.
codelab
У блогах Linuxeros все суперечливо, ха-ха, так було завжди.
@ F3niX Я збираюся вирізати скріншот з вашим коментарем, щоб помістити його кожного разу, коли хтось дурно згадує цю тему.
Примітка: давайте подивимося, коли я зможу знайти вас на форумах irc та чакри 😉
ТОЧНО !!
Я просто показую / викладаю / пояснюю щось нове, що я дізнався, від вас залежить, використовувати ці знання чи ні, я не змушую вас далеко від цього.
Наскільки я знаю, обмін знаннями - це добре, чи не так? 0_oU
Дякуємо за ваш коментар. Приємно знати, що є не один чи два, хто розуміє справжню мету цієї статті.
Там ти поставив мене у важку точку xD, кілька тижнів тому я готую допис, який збирався називатись «Встановлення та тестування Crux», і, незважаючи на те, що установка була проведена успішно, я звичайний користувач і я не знаю, чи зможу я впоратися з сумнівами третіх сторін, намір полягає в тому, щоб він служив інструментом для обговорення достоїнств і недоліків цього дистрибутиву та можливих рішень проблем, які можуть виникнути, допомагаючи нам серед всі користувачі та читачі. Коли я його закінчу і надішлю на перевірку, ви (адміністратори) вирішите. Що стосується питання криптографії на зображеннях, воно було однаковим, дякую KZKG ^ Gaara за відповідь.
Привіт!
Гаразд із задоволенням, я буду писати про це
чудовий брат, я знайшов це дуже корисним: 3
для тих, хто хоче встановити його в manjaro linux та похідні від archlinux, пакет знаходиться в аурі з ім'ям: shc
привіт
Вибачте, друже, у мене був невеликий сценарій, який перетворював ЗАГЛАВНІ БУКВИ в малі літери, які були в буфері обміну (xclip)
сценарій працює нормально, коли не затуманений
#! / бін / баш
xclip -o> R1.txt
cat R1.txt | tr [: верхній:] [: нижній:]
викидати ""
rm 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 Relax security. Зробіть розподільний двійковий файл ', інакше він буде працювати лише на машині, де скрипт був затуманений SHC.
Приклад:
shc -r -f script.sh
Привіт, у мене є запит, shc можна встановити в будь-який тип дистрибутива Linux?, Наприклад, red hat, як би це було встановлено для нього?
Спасибо!
Привіт усім, ваші коментарі мені дуже допомогли, але у мене є така проблема, коли затуманення не працює для мене в одній системі, але з іншою архітектурою, тобто якщо я роблю це в 32 біти, воно не може працювати в 64 біти . Хтось знає, чи справді його можна запускати на різних архітектурах (32 та 64 біти)?