Ako zahmlievať alebo skryť kód z našich bash skriptov

Niekedy programujeme skript tresnúť a chceme, aby kód tohto kódu nebol viditeľný, to znamená, aby to nebol obyčajný text. Keď hovoríme o skrytí kódu, správny výraz je popliesť, v mojom prípade som chcel zameniť kód scenár, ktorý som vytvoril pred časom, nástroj, ktorý som na to našiel, sa volá: SHC

SHC Umožňuje nám to zahmlievať kód, tu je postup, ako ho použiť:

1. Najprv si ju musíme stiahnuť

Stiahnite si SHC v3.8.9

2. Po stiahnutí kliknite pravým tlačidlom myši na komprimovaný súbor a vyberte možnosť «Extrahujte tu„alebo niečo podobné. Vďaka tomu uvidíme priečinok s názvom shc-3.8.9, tu vám ukážem snímku obrazovky s jeho obsahom

3. Dobre, povedzme, že priečinok je na /home/usuario/Downloads/shc-3.8.9 Otvárame terminál a ideme na túto cestu (cd "/home/usuario/Downloads/shc-3.8.9"), a tu začne inštalácia.

 4. V termináli, ktorý sa nachádza (ako som vám už povedal) v priečinku shc-3.8.9, aby sme mohli nainštalovať túto aplikáciu, musíme urobiť symbolický odkaz na súbor shc-3.8.9.c a shc.c takže vykonáme nasledujúce:

ln -s shc-3.8.9.c shc.c

 4. Po vytvorení odkazu vykonáme make install s oprávneniami root (použijeme sudo):

 sudo make install

 4. Požiada nás o heslo a chvíľu počká, bude čakať na stlačenie klávesu [AND] a stlačte [vstúpiť], to znamená, že potvrdíme, že chceme softvér nainštalovať. Po dokončení sa inštaluje bez problémov. Nechám vám screenshot celého procesu prípravy a inštalácie:

 


Ako vidíte na konci, zobrazí sa mi chyba, chyba sa týka skutočnosti, že v mojom systéme nie je žiadny konkrétny priečinok, ak to vidíte, nedávajte mu dôležitosť ... SHC úspešne nainštalované 😉
Aby mohli kandidovať sudo make install es POTREBNÉ mať nainštalované balíčky: gcc y činiť

5. Hotovo, toto je pre inštaláciu 😀

Keď ho máme nainštalovaný, musíme sa len naučiť, ako ho používať. Predpokladajme, že máme doma skript s názvom skript.sh a že jeho obsah je nasledovný:

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

Pri vykonávaní tohto skriptu nám zjavne zobrazí správu v termináli: «Testovací skript pre DesdeLinux.net" alebo nie? ... Teraz však tento kód zamlčíme.

Do terminálu vložíme nasledovné a stlačíme [vstúpiť]:

shc -v -f $HOME/script.sh

A bingo !! pripravený 😀

Týmto sme vytvorili dva nové súbory a náš skript, ktorý sme teraz vytvorili skript.sh.x y script.sh.xc

script.sh.x - » Toto je náš zahmlený bash skript, ktorý keď vykonáme, bude robiť presne to isté ako prvý, ktorý sme vytvorili, rozdiel medzi nimi je ten, že prvý, ak by sme ho otvorili pomocou textového editora (nano, kate, gedit atď.), Mohli by sme jasne vidieť jej obsah, zatiaľ čo ak otvoríme skript.sh.x jasne uvidíme, že nič nevidíme ... LOL !!!, to znamená, že kód je 'šifrovaný' 🙂

script.sh.xc - » Toto je náš skript, ale v jazyku C ... môžeme ho bez obáv vymazať, pretože ho skutočne nepotrebujeme, teda aspoň ja by som ho nepotreboval vôbec 🙂

Po technickej stránke nie je veľa iného, ​​čo by bolo treba skutočne doplniť, len aby sa objasnilo, že pokiaľ viem (skrývanie alebo zahmlievanie kódu bash skriptu), nejde o porušenie licencií ani nič podobné. Objasňujem to, pretože pred niekoľkými mesiacmi na Facebooku, keď som spomenul, že som sa naučil zahmlievať bash kód, ma niektorí používatelia upozornili, že to porušuje licencie alebo niečo podobné ... no, pokiaľ chápem, týmto sa neporušujú licencie 😉

Veľká vďaka Matias Gaston za to, že mi pred časom spomenul tento nástroj

Nie je potrebné dodať nič, akékoľvek pochybnosti alebo otázky, sťažnosti alebo návrhy, dajte mi vedieť.

Zdravím 😀


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.

  1.   xykyz dijo

    Nejde o to, že sú porušované licencie, ale o to, že prestáva byť slobodným softvérom ...

    1.    KZKG ^ Gaara dijo

      Áno, samozrejme. Jedná sa o to, že existujú určité moje osobné skripty, ktoré nechcem, aby ostatní videli, napríklad preto, že jeden z týchto skriptov má heslo v obyčajnom texte z mojej miestnej MySQL alebo niečo podobné.

        1.    KZKG ^ Gaara dijo

          Vlastne svoje heslá „skrývam“ pomocou SHA (https://blog.desdelinux.net/como-saber-la-suma-md5-o-sha-de-una-palabra-oracion-o-archivo/), potom v skripte ponechám hodnotu hash hesla a čo urobím, porovnám heslo, ktoré zadá používateľ (uložím ho s prečítaním), dostanem súčet SHA a na konci oboje porovnám 🙂

          Každopádne ďakujem pekne za odkaz, už ho prehodnocujem 😀

          pozdravy

        2.    Použime Linux dijo

          Presne! Dobrá výzva na zadanie hesla je dobrou alternatívou.
          Na zdravie! Pavla.

          1.    MSX dijo

            Neposkytuje však automatické a bezobslužné vykonávanie, ako je tomu v opačnom prípade. 🙂

      1.    Willians vivanco dijo

        Vkladanie hesiel a iného prístupu alebo kompromitovanie údajov do skriptu je veľká chyba. Tieto informácie musia byť uložené v inom súbore so správnymi oprávneniami, takže nebudete musieť zahmlievať svoj bash skript. Ľahké čo?

        1.    KZKG ^ Gaara dijo

          Problém s tým, že údaje (prihlasovacie premenné, confs, atď.) Sú v inom súbore, je ten, že potom „systém“ alebo „aplikácia“ potrebuje na fungovanie 2 súbory, zatiaľ čo pokiaľ ukladám čo najbezpečnejšie všetko do jedného súboru, no potreboval by som iba ten ... jediný súbor.

          1.    Morpheus dijo

            Je dobrým zvykom oddeliť aplikáciu od údajov.
            Alebo skôr je strašným zvykom dáta napevno kódovať!
            http://es.wikipedia.org/wiki/Hard_code
            Nemá to nič spoločné s bezpečnostným vkladaním kódu a údajov do rovnakého súboru. A ešte viac, práve naopak, ak tam máte svoje heslá !!

          2.    Willians vivanco dijo

            Náklady na čítanie citlivých informácií z iného súboru sú zanedbateľné vedľa nákladov na procesor potrebných na „nezískanie“ vášho kódu.

            Na druhej strane búrate celú paradigmu modulárneho vývoja a stavíte na monolitický model, ktorý je viac ako dokázaný a existuje viac problémov ako riešení.

          3.    MSX dijo

            A tiež, že ak používate povolenia, ktoré sa nevyhnutne budú týkať ďalších skupín / používateľov, na vykonanie prvého skriptu budete stále potrebovať počiatočné heslo.

          4.    MSX dijo

            @KZKG vyššie uvedený komentár je odpoveďou na váš komentár
            @morpheus: je to absolútne vo vzťahu k konkrétnej potrebe.

    2.    Morpheus dijo

      Existuje však slobodný softvér kompilovaný v binárnom formáte (ktorý je viac ako zahmlený). To, že je zadarmo, znamená, že má aj zdroj, ale nemá nič spoločné s zahmlievaním (alebo kompiláciou, čo je nevyhnutné, ak chcem napríklad spustiť program C)

      1.    Willians vivanco dijo

        V prípade kompilovaného slobodného softvéru ide o požiadavku na jazyk, ktorý sa používa (ak programujete v jazyku C, musíte pre svoju aplikáciu zostaviť kompilát). A to isté, vždy, ak je to skutočne slobodný softvér, bude k dispozícii zdrojový kód.

  2.   Hyuuga_Neji dijo

    hučanie Označujem určitú mieru apatie pri zdieľaní kódu lol, aby som zistil, koľko z nich nakoniec začne „zahmlievať svoje kódy“, vďaka čomu budeme závislejší od ich riešení ...

    1.    KZKG ^ Gaara dijo

      Nehovorím, že by kód mal byť zahmlievaný alebo nie ... Nástroje dávam každému, aby ich použil podľa svojich potrieb.

      1.    komentátor dijo

        Popliesť kód na tejto stránke?

        Myslím si, že je dobrý nápad dištancovať čitateľov, pretože sa domnievam, že mnoho ľudí, ktorí navštívia tento blog, sú vyznávačmi slobodného softvéru, a preto nezdieľame postup zahmlievania kódu.

        1.    MSX dijo

          Zjavne ste nečítali dôvod, prečo KZKG argumentuje a prečo vysvetľuje potrebu zahmlievať svoj scenár.

          Ďakujeme spoločnosti KZKG za zdieľanie vášho nálezu!

  3.   gabriel dijo

    A tak v Linuxe začnú cirkulovať vírusy ...

    Osobne by som NIKDY nepoužíval žiadne zahmlené skripty. Nielen kvôli súvisiacim bezpečnostným rizikám, ale aj preto, že ak je váš skript príliš vzácny na zdieľanie, radšej ho vložte do súboru * ulo; Určite nájdem niekoho, kto sa chce podeliť o svoje vedomosti.

    1.    KZKG ^ Gaara dijo

      Použili by ste niekedy skryty skript? No, veľmi dobré pre vás, NIKDY by som nepoužíval skrytej skripty ... detail je taký, že NIKDY nezdielam skryty skript ďaleko od neho a tam je drahý priateľ, kde chyba je prítomný prítomný

      Kedykoľvek niečo robím v Bashi, zdieľam to bez toho, aby ma vážili alebo obťažovali, čo som už urobil v mnohých článkoch tu 😀

      Vitajte na blogu, rád vás čítam 😉

  4.   Percaff_TI99 dijo

    Gabriel, KZKG ^ Gaara už zdieľa vedomosti, nevytvára žiadny linuxový balík so zahmlenými skriptmi, ktoré by mohli byť porušením licencie, odhaľuje iba aplikácie, ktoré môže alebo nemôže použiť na svoje vlastné použitie, nie je to potrebné buďte drzí, čo sa týka vírusov v linuxe, nie je to také jednoduché, tu je o tom dobrý článok https://blog.desdelinux.net/virus-en-gnulinux-realidad-o-mito/.
    KZKG ^ Gaara Bol by som rád, keby ste napísali príspevok o Encfs a kryptografii pomocou obrázkov, je to téma, ktorá sa mi veľmi páči.
    Na zdravie !!!

    1.    KZKG ^ Gaara dijo

      Ďakujem vám
      V skutočnosti to nie je tak, že by som mal dostatok vedomostí o Encfs a kryptografii, aspoň sa necítim dosť sebavedomý na to, aby som zverejnil príspevok a vychádzal z pochybností, ktoré môžu mať používatelia 😀
      V tejto téme to nie je tak, že by som bol pokročilým používateľom ...
      Najviac, čo som urobil, je použitie GPG na šifrovanie súborov a čo sa týka obrázkov, najviac som urobil „vloženie“ alebo skrytie súboru do obrázka, čím je zrejmé, že pri otvorení obrázka v prehliadači obrázkov všetko je zobrazené správne, myslíte to takto?

      Ešte raz veľmi pekne ďakujem za komentár 🙂

  5.   ratakruel dijo

    Ak si dobre pamätám, existujú zmätené majstrovstvá sveta C, ale nestojí za to používať „zahmlievača“, musia však svoje zdroje zahmlievať bez sedla.

    Pokiaľ ide o shc a vaše skripty s heslami ... veľmi zlý spôsob práce!

    Zaujímavý článok, ako vždy.

    1.    KZKG ^ Gaara dijo

      Áno, viac ako jeden mi už povedal LOL !!
      Ďakujem za komentár 🙂

  6.   EVER dijo

    V zásade platí, že ak zdieľate aplikáciu bez zdieľania viditeľného skriptu, porušujete tým GPL, čo vyžaduje, aby čokoľvek vygenerované pomocou aplikácie GPL bolo GPL. Preto SHC generuje C, pretože to je kód, ktorý môžete zdieľať.

    pozdravy

  7.   Použime Linux dijo

    Súhlasím s komentármi ostatných čitateľov: nielenže nie je dobrým zvykom ukladať údaje a skriptové súbory dohromady, nie je to ani prínosom pre vývoj slobodného softvéru.
    Objatie! Pavla.

    1.    KZKG ^ Gaara dijo

      Ahoj Pablo 🙂
      Mám nejaký iný zahmlený skript, ktorý interne funguje na mojom notebooku, zahmlievam ho, pretože jednoducho nechcem, aby ak sa niekomu z nejakého dôvodu podarilo skopírovať môj skript na iný počítač, jednoducho nechcem, aby mohol vidieť, čo to je obsahuje, je to „bezpečnostné opatrenie“, ktoré prijímam.

      Avšak tu v DesdeLinux Zverejňujem všetko alebo takmer všetko, čo naprogramujem v Bash, čo by mohlo byť zaujímavé.

      Nie je to tak, že teraz za to, že som zahmlil osobný scenár, som za to, že to robím pre osobné účely, od toho, čo ho odďaľuje, neodvracajúc SWL

      Pozdravujem priateľa

  8.   kódové laboratórium dijo

    Dobré informácie Okrem kontroverzií, ktoré sa vytvárajú v komentároch, sa mi zdá, že informácie treba naďalej vyšetrovať trochu viac.

    Myslím si, že autor v nijakom bode článku nám nehovorí, či je to dobré alebo zlé, alebo či by sme to mali alebo nemali robiť, iba nám povie nástroj, pomocou ktorého to možno urobiť, ak je pre niekoho prospešné.

    Pozdrav.

    kódové laboratórium

    1.    f3niX dijo

      V blogoch Linuxeros je všetko kontroverzné, haha, vždy to tak bolo.

      1.    MSX dijo

        @ F3niX Chystám sa urobiť zostrih obrazovky s tvojím komentárom, aby som to uviedol zakaždým, keď niekto urobí nejakú hlúpu zmienku o tejto téme.

        Poznámka: Pozrime sa, kedy vás nájdem na fórach IRC a Chakra 😉

    2.    KZKG ^ Gaara dijo

      PRESNE !!
      Jednoducho ukážem / učím / vysvetľujem niečo nové, čo som sa naučil, je len na vás, či tieto vedomosti využijete alebo nie, nenútim vás od nich ďaleko.

      Pokiaľ viem, zdieľanie vedomostí je dobrá vec, nie? 0_oU

      Ďakujeme za váš komentár, je dobré vedieť, že existuje viac ako jeden alebo dvaja, ktorí chápu skutočný účel tohto článku.

  9.   Percaff_TI99 dijo

    Tam ste ma dostali do úzkych xD, pred pár týždňami som pripravoval príspevok s názvom «Inštalácia a testovanie Crux» a napriek tomu, že inštalácia prebehla úspešne, som normálny užívateľ a neviem, či sa dokážem vyrovnať s pochybnosťami tretích strán, zámerom je slúžiť ako nástroj na diskusiu o cnostiach a chybách tejto distribúcie a možných riešeniach problémov, ktoré môžu vzniknúť a ktoré nám pomáhajú medzi všetci používatelia a čitatelia. Keď to dokončím a pošlem na kontrolu, vy (správcovia) rozhodnete. Pokiaľ ide o otázku kryptografie v obrazoch, bolo to rovnaké, ďakujem KZKG ^ Gaara za odpoveď.

    Zdravím!

    1.    KZKG ^ Gaara dijo

      Ok s potešením, urobím o tom príspevok 😉

  10.   makubex uchiha dijo

    vynikajúci tuto bro považoval som to za veľmi užitočné: 3
    pre tých, ktorí si ho chcú nainštalovať do linuxu manjaro a derivátov archlinuxu, je balíček v aur s názvom: shc

    pozdravy

  11.   Marcos dijo

    prepáč priateľ mal malý skript, ktorý konvertoval VEĽKÉ PÍSMENÁ NA malé písmená, ktoré boli v schránke (xclip)

    skript funguje normálne, ak nie je zahmlievaný

    #! / Bin / bash
    xclip -o> R1.txt
    mačka R1.txt | tr [: horný:] [: dolný:]
    zahodil ""
    rm R1.txt

    ale keď chcem spustiť zahmlený skript
    Hovorí mi

    ./M2m.sh: Prevádzka nie je povolená
    Dokončené (zabité)

    Prosím pomôžte

    1.    KZKG ^ Gaara dijo

      Máte nainštalovaný xclip?

  12.   SynFlag dijo

    Je potrebné poznamenať, že je to vlastne kompilátor bash, keďže existujú kompilátor .bat alebo .php.
    Neviem, či je kód, ktorý produkuje, šifrovaný a zahmlievaný a nevydrží dekompilátor, bolo by treba vyskúšať, keďže to nie je môj obor, nehovorím áno alebo nie, ale to, čo vidím, že robí, je kompilácia bash, v .c to je Môžete vidieť kód, ktorý v rámci zahmlievania vidím, že je to v riadkoch, ktoré vyzerajú ako exploit shell, neviem, či sú skutočne zahmlievané, pretože žiadne heslo nie je vyžiadané alebo neviem, master.config kde predchádzajúce kľúčové slovo.

  13.   Juan David dijo

    priatelia, stane sa, že keď zahmlievam svoj skript, vytvorí nový skript s koncovkou ex, vykonám ho a je dokonca dokonalý. Ale keď ho vezmem na iný počítač s linuz, ktorý sa nespustí, už má všetky oprávnenia, vytvorím spúšťač a poviem mu, že je to terminálová aplikácia, ale nefunguje, počkajte si pohotovú odpoveď

    1.    KZKG ^ Gaara dijo

      Zostavili ste ho a prevádzkujete ho na systéme s rovnakou architektúrou? To znamená, že vám dá chybu, ak ste ju skompilovali tak, aby ju zahmlievali na 32-bitovom systéme, a potom sa ju pokúsite spustiť na 64-bitovom systéme, alebo naopak. Rozumieš?

      1.    Juan David dijo

        Nie, ale už som poskytol formátovanie toho istého počítača, s rovnakým operačným systémom a ten nebeží, dokonca ani neposiela chybu.
        Nazývam to konzolou takto: sudo /home/operations/script.x a zobrazuje sa mi táto chyba

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

        celý prípad

        1.    KZKG ^ Gaara dijo

          Skúste to spustiť BEZ kompilácie a zistite, či nejde o chybu v kóde

    2.    nick dijo

      Aby ste mohli skryť skript na iných počítačoch, musíte ho skompilovať s možnosťou «-r Relax security. Vytvorte redistribuovateľný binárny súbor ', inak bude fungovať iba na stroji, kde bol skript zahmlený pomocou SHC.
      príklad:

      shc -r -f script.sh

  14.   William dijo

    Ahojte, mám dotaz, shc je možné nainštalovať na akýkoľvek typ distribúcie Linuxu?, Napríklad red hat, aká by bola inštalácia pre tento?
    Vďaka!

  15.   ruyzz dijo

    Ahojte všetci, vaše komentáre mi veľmi pomohli, ale mám nasledujúci problém, keď mi zahmlievanie nefunguje v rovnakom systéme, ale s inou architektúrou, to znamená, že ak to urobím za 32 bitov, nemôže bežať za 64 bitov . Vie niekto, či sa dá skutočne spustiť na rôznych architektúrach (32 a 64 bitov)?