Jak poplést nebo skrýt kód z našich bash skriptů

Někdy programujeme skript Praštit a chceme, aby kód tohoto nebyl viditelný, tedy aby nebyl prostý text. Když mluvíme o skrytí kódu, je správný termín poplést, v mém případě jsem chtěl zamaskovat kód scénář, který jsem udělal před časem, nástroj, který jsem pro to našel, se nazývá: shc

shc Umožňuje nám to obfuskovat kód, zde jsou kroky k jeho použití:

1. Nejprve si to musíme stáhnout

Stáhněte si SHC v3.8.9

2. Jakmile jej stáhneme, klikneme pravým tlačítkem na komprimovaný soubor a vybereme možnost, která říká «Rozbalte zde„nebo něco podobného. Díky tomu uvidíme složku s názvem shc-3.8.9, zde vám ukážu snímek obrazovky s jeho obsahem

3. Dobře, řekněme, že složka je na /home/usuario/Downloads/shc-3.8.9 Otevřeme terminál a jdeme touto cestou (cd "/home/usuario/Downloads/shc-3.8.9") a instalace začíná zde.

 4. V terminálu, který se nachází (jak jsem vám již řekl) ve složce shc-3.8.9Chcete-li nainstalovat tuto aplikaci, musíme vytvořit symbolický odkaz na soubor shc-3.8.9.c a shc.c provedeme následující:

ln -s shc-3.8.9.c shc.c

 4. Po vytvoření odkazu provedeme make install s oprávněním root (použijeme sudo):

 sudo make install

 4. Požádá nás o heslo a chvíli počká, bude čekat, až stiskneme klávesu [A] a stiskněte [Enter], tj. že potvrzujeme, že chceme software nainstalovat. Jakmile to provedete, nainstaluje se bez problémů. Nechám vám screenshot celého procesu přípravy a instalace:

 


Jak vidíte na konci, zobrazí se chyba, chyba odkazuje na skutečnost, že v mém systému určitá složka neexistuje, pokud to vidíte, jednoduše jí nedávejte důležitost ... i tak SHC úspěšně nainstalováno 😉
Aby mohli běžet sudo make install es POTŘEBNÉ mít nainstalované balíčky: gcc y činit

5. Připraveno, vše je k instalaci 😀

Když ji máme nainstalovanou, musíme se jen naučit, jak ji používat. Předpokládejme, že máme doma skript s názvem skript.sh a že jeho obsah je následující:

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

Při provádění tohoto skriptu nám zjevně zobrazí zprávu v terminálu: «Testovací skript pro DesdeLinux. net" nebo ne? … Ale teď tento kód zamlčíme.

V terminálu vložíme následující a stiskneme [Enter]:

shc -v -f $HOME/script.sh

A bingo !! připraven 😀

Tím jsme vytvořili dva nové soubory společně s naším skriptem, nyní máme script.sh.x. y script.sh.xc

script.sh.x - » Toto je náš poskvrněný bash skript, který při spuštění bude dělat přesně to samé jako ten první, který jsme vytvořili, rozdíl mezi nimi je ten, že ten první, pokud jsme jej otevřeli pomocí textového editoru (nano, kate, gedit atd.), Jsme mohli jasně vidět jeho obsah, zatímco pokud se otevřeme script.sh.x. jasně uvidíme, že nic nevidíme ... LOL !!!, to znamená, že kód je ‚šifrovaný '🙂

script.sh.xc - » Toto je náš skript, ale v jazyce C ... můžeme to bez obav smazat, protože to opravdu nepotřebujeme, alespoň bych to vůbec nepotřeboval 🙂

Na technickou stránku není nic jiného, ​​co by se dalo opravdu přidat, jen abych vyjasnil, že pokud vím (skrývání nebo zamlžování kódu bash skriptu), není to porušení licencí nebo něco takového. Objasňuji to, protože před několika měsíci na Facebooku, když jsem zmínil, že jsem se naučil obfušovat bash kód, někteří uživatelé mě upozornili, že to porušuje licence nebo něco takového ... no, pokud chápu, licence nejsou porušovány s tímto 😉

Mnohokrát děkuji Matias Gaston za to, že mi tento nástroj před časem zmínil

Nic dalšího k doplnění, jakékoli pochybnosti nebo dotazy, stížnosti nebo návrhy, dejte mi vědět.

Zdravím 😀


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.

  1.   xykyz řekl

    Nejde o to, že jsou porušovány licence, ale o to, že přestává být svobodným softwarem ...

    1.    KZKG ^ Gaara řekl

      Ano, samozřejmě. Jde o to, že existují určité moje osobní skripty, které nechci, aby ostatní viděli, například proto, že jeden z těchto skriptů má heslo v prostém textu mého místního MySQL nebo něco podobného.

        1.    KZKG ^ Gaara řekl

          Ve skutečnosti nechávám svá hesla „skrytá“ pomocí SHA (https://blog.desdelinux.net/como-saber-la-suma-md5-o-sha-de-una-palabra-oracion-o-archivo/), pak ve skriptu ponechám hash hesla a to, co dělám, je porovnat heslo, které uživatel zadá (uložím jej s přečtením), dostanu součet SHA a porovnám oba na konci 🙂

          Každopádně moc děkuji za odkaz, už ho přezkoumávám 😀

          pozdravy

        2.    Pojďme použít Linux řekl

          Přesný! Dobrá výzva k zadání hesla je dobrou alternativou.
          Na zdraví! Pavel.

          1.    MSX řekl

            Neposkytuje však automatické a bezobslužné provádění, jako je tomu v opačném případě. 🙂

      1.    Willians vivanco řekl

        Vkládání hesel a jiného přístupu nebo ohrožení dat ve skriptu je velká chyba. Tyto informace musí být uloženy v jiném souboru se správnými oprávněními, takže nebudete muset popletovat svůj bash skript. Snadné co?

        1.    KZKG ^ Gaara řekl

          Problém s daty (přihlašovací proměnné, konfigurační soubory atd.) V jiném souboru spočívá v tom, že pak ‚systém 'nebo‚ aplikace' potřebuje 2 soubory, aby fungoval, zatímco pokud ukládám co nejbezpečněji vše v jednom jediný soubor, no potřeboval bych jen ten ... jediný soubor.

          1.    morpheus řekl

            Je dobrým zvykem oddělit aplikaci od dat.
            Nebo spíš je to hrozný postup, jak data pevně zakódovat!
            http://es.wikipedia.org/wiki/Hard_code
            Nemá to nic společného se zabezpečením vložením kódu a dat do stejného souboru. A ještě víc, pokud tam máte svá hesla !!

          2.    Willians vivanco řekl

            Náklady na čtení citlivých informací z jiného souboru jsou zanedbatelné vedle nákladů na procesor potřebných k „nezískání“ kódu.

            Na druhou stranu demolujete celé paradigma modulárního vývoje a sázíte na monolitický model, který více než prokázal, že existuje více problémů než řešení.

          3.    MSX řekl

            A také, že pokud používáte oprávnění, která nutně budou zahrnovat další skupiny / uživatele, budete k provedení prvního skriptu stále potřebovat počáteční heslo.

          4.    MSX řekl

            @KZKG výše uvedený komentář je odpovědí na váš komentář
            @morpheus: je to absolutně relativní vzhledem ke konkrétní potřebě.

    2.    morpheus řekl

      Existuje však svobodný software kompilovaný v binárním formátu (což je více než zmatené). To, že je zdarma, znamená, že má také zdroj, ale nemá nic společného s obfuscatingem (nebo kompilací, což je zásadní, pokud chci spustit například program C)

      1.    Willians vivanco řekl

        V případě kompilovaného svobodného softwaru jde o požadavek na jazyk, který se používá (pokud programujete v jazyce C, musíte kompilovat, aby vaše aplikace fungovala). A stejně, vždy, pokud se skutečně jedná o svobodný software, bude k dispozici zdrojový kód.

  2.   Hyuuga_neji řekl

    hučení Označuji určitou míru apatie ke sdílení kódu lol, abych zjistil, kolik z nich nakonec začne „poplést své kódy“, aby nás více závislo na jejich řešeních ...

    1.    KZKG ^ Gaara řekl

      Neříkám, že by kód měl být zamlžený nebo ne ... Dávám nástroje, každý je používá podle svých potřeb.

      1.    komentátor řekl

        Zamlžovat kód na této stránce?

        Považuji za dobrý nápad distancovat čtenáře, protože se domnívám, že mnoho lidí, kteří navštíví tento blog, jsou stoupenci svobodného softwaru, a proto nesdílíme praxi obfuskačního kódu.

        1.    MSX řekl

          Zjevně jste nečetli důvod, proč KZKG argumentuje a proč vysvětluje svou potřebu poplést svůj scénář.

          Děkujeme KZKG za sdílení vašeho nálezu!

  3.   Gabriel řekl

    A tak v Linuxu začínají obíhat viry ...

    Osobně bych NIKDY nepoužíval žádné zmatené skripty. Nejen kvůli bezpečnostním rizikům, ale také proto, že pokud je váš skript příliš vzácný na sdílení, pak jej raději vložte do * ulo; Určitě najdu někoho, kdo se chce podělit o své znalosti.

    1.    KZKG ^ Gaara řekl

      Použili byste někdy zmatený skript?, VELMI dobré pro vás, NIKDY bych nepoužil zmatený skript ... detail je v tom, že NIKDY jsem nesdílel zmatený skript, daleko od něj, a tam je drahý příteli, kde je přítomna chyba presente

      Kdykoli něco dělám v Bashi, sdílím to, aniž by mě to vážilo nebo obtěžovalo, což jsem již udělal v mnoha článcích zde 😀

      Vítejte na blogu, rád vás čtu 😉

  4.   Percaff_TI99 řekl

    Gabriel, KZKG ^ Gaara již sdílí znalosti, nevytváří žádný linuxový balíček s poskvrněnými skripty, které by mohly být porušením licence, odhaluje pouze aplikace, které lze použít nebo ne pro vlastní potřebu, není to nutné buďte hrubý, pokud jde o viry v linuxu, není to tak jednoduché, zde je o tom dobrý článek https://blog.desdelinux.net/virus-en-gnulinux-realidad-o-mito/.
    KZKG ^ Gaara Byl bych rád, kdybys napsal příspěvek o encfs a kryptografii pomocí obrázků, je to téma, které se mi opravdu líbí.
    Na zdraví !!!

    1.    KZKG ^ Gaara řekl

      Děkuji
      Ve skutečnosti to není tak, že bych měl dostatek znalostí o Encfs a kryptografii, alespoň se necítím dostatečně sebejistě, abych mohl zveřejnit příspěvek a předpokládat pochybnosti, které uživatelé mohou mít 😀
      V tomto tématu to není tak, že jsem pokročilý uživatel ...
      Nejvíc, co jsem udělal, je použití GPG k šifrování souborů, a pokud jde o obrázky, nejvíce jsem udělal ‚vložení 'nebo skrytí souboru uvnitř obrázku, takže je zřejmé, že když je obrázek otevřen prohlížečem obrázků, vše se zobrazí správně, myslíš to?

      Ještě jednou moc děkuji za komentář 🙂

  5.   ratakruel řekl

    Pokud si dobře pamatuji, existují zmatené C šampionáty, ale nestojí za to použít „obfuscator“, ale musí své zdroje obfušovat bez sedla.

    Pokud jde o shc a váš skript s hesly ... velmi špatný způsob práce!

    Zajímavý článek, jako vždy.

    1.    KZKG ^ Gaara řekl

      Ano, více než jeden mi už řekl LOL !!
      Děkuji za komentář 🙂

  6.   vůbec řekl

    V zásadě platí, že pokud sdílíte aplikaci bez sdílení viditelného skriptu, porušujete tím GPL, což vyžaduje, aby vše generované pomocí aplikace GPL bylo GPL. Proto SHC generuje C, protože to je kód, který můžete sdílet.

    pozdravy

  7.   Pojďme použít Linux řekl

    Souhlasím s komentáři ostatních čtenářů: nejenže není dobrým zvykem ukládat data a skripty dohromady, ale také to nepřispívá k vývoji svobodného softwaru.
    Objetí! Pavel.

    1.    KZKG ^ Gaara řekl

      Ahoj Pablo 🙂
      Mám nějaký jiný zmatený skript, který funguje interně na mém notebooku, zamlžuji ho, protože prostě nechci, že pokud se někomu z nějakého důvodu podařilo zkopírovat můj skript na jiný počítač, prostě nechci, aby viděl, co obsahuje, je to „bezpečnostní opatření 'Beru.

      Nicméně zde v DesdeLinux Zveřejňuji vše nebo téměř vše, co naprogramuji v Bash, co by mohlo být zajímavé.

      Stručně řečeno, nejde o to, že jsem nyní odpůrcem SWL za obfuskaci osobního scénáře, za to, že to dělám pro osobní účely 😀

      Zdravím přítele

  8.   kódová laboratoř řekl

    Dobré informace. Kromě kontroverzí, které vznikají v komentářích, se mi zdá, že informace budou nadále vyšetřovat trochu víc.

    Myslím si, že autor nám v žádném bodě článku neřekne, zda je to dobré nebo špatné, nebo zda bychom to měli nebo neměli dělat, jednoduše nám řekne, jakým nástrojem to lze udělat, pokud je pro někoho přínosem.

    Pozdrav.

    kódová laboratoř

    1.    f3niX řekl

      V blogech Linuxeros je vše kontroverzní, haha, vždy to tak bylo.

      1.    MSX řekl

        @ F3niX Chystám se oříznout snímek obrazovky s tvým komentářem, abych to řekl pokaždé, když někdo udělá nějakou hloupou zmínku o předmětu.

        Poznámka: uvidíme, kdy vás najdu na fórech irc a čakra 😉

    2.    KZKG ^ Gaara řekl

      PŘESNÝ!!
      Jednoduše ukážu / učím / vysvětlím něco nového, co jsem se naučil, je jen na vás, zda tyto znalosti využijete nebo ne, nenutím vás od nich daleko.

      Pokud vím, sdílení znalostí je dobrá věc, že? 0_oU

      Děkujeme za váš komentář, je dobré vědět, že existuje více než jeden nebo dva, kteří chápou skutečný účel tohoto článku.

  9.   Percaff_TI99 řekl

    Tam jsi mě dostal do úzkých xD, před pár týdny jsem připravoval příspěvek s názvem «Instalace a testování Crux» a navzdory tomu, že instalace proběhla úspěšně, jsem běžný uživatel a nevím, jestli si s tím poradím Pochybnosti třetích stran, záměrem je sloužit jako nástroj pro diskusi o ctnostech a vadách této distribuce a možných řešeních problémů, které mohou nastat a které nám pomohou mezi všemi uživateli a čtenáři. Až to dokončím a pošlu k posouzení, vy (administrátoři) rozhodnete. Pokud jde o problém kryptografie v obrazech, bylo to stejné, díky KZKG ^ Gaara za odpověď.

    Zdravím!

    1.    KZKG ^ Gaara řekl

      Dobře, s potěšením o tom zveřejním příspěvek 😉

  10.   makubex uchiha řekl

    výborně tuto bro Považoval jsem to za velmi užitečné: 3
    pro ty, kteří si to chtějí nainstalovat do linuxu manjaro a derivátů archlinuxu, je balíček v aur s názvem: shc

    pozdravy

  11.   Marcos řekl

    Promiňte, příteli, měl jsem malý skript, který převedl velká písmena na malá písmena, která byla ve schránce (xclip)

    skript funguje normálně, pokud není zmaten

    #! / bin / bash
    xclip -o> R1.txt
    kočka R1.txt | tr [: horní:] [: spodní:]
    vyhodil ""
    rm R1.txt

    ale když chci spustit zmatený skript
    říká mi

    ./M2m.sh: Provoz není povolen
    Dokončeno (zabito)

    Prosím pomozte

    1.    KZKG ^ Gaara řekl

      Máte nainstalovaný xclip?

  12.   SynFlag řekl

    Je třeba poznamenat, že je to vlastně kompilátor bash, protože existují kompilátory .bat nebo .php.
    Nevím, jestli je kód, který produkuje, zašifrovaný a zmatený a nevydrží dekompilátor, bylo by nutné zkusit, protože to není moje pole, neříkám ano nebo ne, ale to, co vidím, že dělá, je kompilace bash, v .c to je Můžete vidět kód, který v rámci popleteného vidím, že je to v řádcích, které vypadají jako exploit shell, nevím, jestli jsou skutečně popletené, protože není požadováno žádné heslo nebo a I don't know, master.config kde a předchozí klíčové slovo.

  13.   Juan David řekl

    přátelé, stane se, že když zamlčím svůj skript, vytvoří nový skript s koncovkou ex, provedu ho a je dokonce dokonalý. Ale když ho vezmu na jiný počítač s linuz, který se nespustí, má již všechna oprávnění, vytvořím spouštěč a řeknu mu, že se jedná o terminálovou aplikaci, ale nefunguje, počkejte na rychlou odpověď

    1.    KZKG ^ Gaara řekl

      Zkompilovali jste to a používáte to na systému se stejnou architekturou? To znamená, že vám dá chybu, pokud jste ji zkompilovali tak, abyste ji popletli na 32bitovém systému, a poté se pokusíte spustit na 64bitovém systému nebo naopak. Rozumíš?

      1.    Juan David řekl

        Ne, ale již jsem poskytl formátování stejného počítače se stejným operačním systémem a neběží, ani neposílá chybu.
        Říkám to konzolou takto: sudo /home/operations/script.x a dostanu tuto chybu

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

        celý případ

        1.    KZKG ^ Gaara řekl

          Zkuste to spustit BEZ kompilace, abyste zjistili, zda se nejedná o chybu v kódu

    2.    Nick řekl

      Abyste mohli skrýt skript na jiných počítačích, musíte jej zkompilovat s možností «-r Relaxovat zabezpečení. Vytvořte redistribuovatelný binární soubor, jinak bude fungovat pouze na stroji, kde byl skript zmaten pomocí SHC.
      příklad:

      shc -r -f script.sh

  14.   William řekl

    Dobrý den, mám dotaz, shc lze nainstalovat do libovolného typu distribuce Linuxu?, Například red hat, jaká by byla instalace pro tento?
    Děkuji vám!

  15.   ruyzz řekl

    Ahoj všichni, vaše komentáře mi hodně pomohly, ale mám následující problém, když pro mě zamlžování nefunguje ve stejném systému, ale s jinou architekturou, to znamená, že když to udělám za 32 bitů, nemůže to běžet za 64 bitů . Ví někdo, jestli to může být opravdu spuštěno na různých architekturách (32 a 64 bitů)?