Hur man fördunklar eller döljer kod från våra bash-skript

Ibland programmerar vi in ​​ett manus Bash och vi vill att koden för detta INTE ska synas, det vill säga inte vara ren text. När vi pratar om att dölja koden är rätt term fördunkla, i mitt fall ville jag dölja koden ett manus jag gjorde för en tid sedan, verktyget jag hittade för detta heter: shc

shc Det gör att vi kan fördunkla koden, här är stegen för att använda den:

1. Först måste vi ladda ner den

Ladda ner SHC v3.8.9

2. När vi har laddat ner den högerklickar vi på den komprimerade filen och väljer det alternativ som säger «Utdrag här"eller något liknande. Detta får oss att se en mapp som heter shc-3.8.9, här visar jag en skärmdump av dess innehåll

3. OK, låt oss säga att mappen är på /home/usuario/Downloads/shc-3.8.9 Nåväl, vi öppnar en terminal och går till den rutten (cd "/home/usuario/Downloads/shc-3.8.9"), och här börjar installationen.

 4. I terminalen ligger (som jag redan sa) i mappen shc-3.8.9, för att installera denna applikation måste vi skapa en symbolisk länk till filen shc-3.8.9.c a shc.c så vi utför följande:

ln -s shc-3.8.9.c shc.c

 4. När länken har gjorts kör vi make install med rotbehörigheter (vi kommer att använda sudo):

 sudo make install

 4. Det kommer att be oss om vårt lösenord och det väntar en stund, det väntar på att vi ska trycka på knappen [OCH] och tryck [Stiga på], det vill säga att vi bekräftar att vi vill installera programvaran. När detta är gjort kommer det att installeras utan problem. Jag lämnar en skärmdump av hela förberedelse- och installationsprocessen:

 


Som du kan se i slutet får jag ett fel, felet hänvisar till det faktum att en viss mapp inte finns på mitt system, om du ser detta, ge det helt enkelt inte betydelse ... trots det SHC installerat framgångsrikt 😉
Så de kan springa sudo make install es NÖDVÄNDIG ha paketen installerade: gcc y göra

5. Klar, detta är det för installationen 😀

När vi har installerat det behöver vi bara lära oss att använda det. Antag att vi har ett manus i vårt hem som heter script.sh och att dess innehåll är som följer:

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

När man kör det här skriptet kommer det uppenbarligen att visa oss meddelandet i terminalen: «Script de prueba para DesdeLinux. Net" eller inte? ... Men nu ska vi fördunkla den koden.

I en terminal sätter vi följande och trycker på [Stiga på]:

shc -v -f $HOME/script.sh

Och bingo !! redo 😀

Detta skapade oss två nya filer tillsammans med vårt skript, nu har vi script.sh.x y script.sh.xc

script.sh.x - » Detta är vårt fördunklade bash-skript, detta när vi kör det kommer att göra exakt detsamma som det första vi skapade, skillnaden mellan dessa är att den första om vi öppnade den med en textredigerare (nano, kate, gedit, etc) kunde vi se tydligt dess innehåll, medan om vi öppnar för script.sh.x vi ser tydligt att vi inte ser någonting ... LOL !!!, det vill säga koden är "krypterad" 🙂

script.sh.xc - » Detta är vårt skript men på C-språk ... vi kan radera det utan att behöva oroa oss för att vi inte behöver det, ja, åtminstone skulle jag inte behöva det alls all

Det finns inte mycket annat att verkligen lägga till på den tekniska sidan, bara för att klargöra att så vitt jag vet med detta (att dölja eller förvirra bash-skriptkod) bryter det inte licenser eller något liknande. Jag klargör detta för att för några månader sedan på Facebook när jag nämnde att jag hade lärt mig att förvirra baskod, varnade vissa användare mig om att detta bryter mot licenser eller något sådant ... ja, så vitt jag förstår, bryts inte licenser med detta

Stort tack till Matias Gaston för att ha nämnt det här verktyget för mig för en tid sedan

Inget mer att lägga till, tvivel eller fråga, klagomål eller förslag låt mig veta.

Hälsningar 😀


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.

  1.   xykyz sade

    Det är inte så att licenser bryts, det är att det slutar vara fri programvara ...

    1.    KZKG ^ Gaara sade

      Ja självklart. Poängen är att det finns vissa personliga skript av mig som jag inte vill att andra ska se, till exempel för att ett av dessa skript har ett lösenord för ren text från min lokala MySQL eller något liknande.

        1.    KZKG ^ Gaara sade

          Egentligen håller jag mina lösenord dolda med SHA (https://blog.desdelinux.net/como-saber-la-suma-md5-o-sha-de-una-palabra-oracion-o-archivo/), i skriptet behåller jag lösenordshashen och vad jag gör är att jämföra lösenordet som användaren anger (jag sparar det med läsning), jag får SHA-summan och jämför båda i slutet 🙂

          Hur som helst, tack så mycket för länken, jag granskar den redan 😀

          hälsningar

        2.    Låt oss använda Linux sade

          Exakt! En shell-fråga som ber om lösenordet är ett bra alternativ.
          Skål! Paul.

          1.    MSX sade

            Men det ger inte ett automatiskt och obevakat utförande som det gör tvärtom. 🙂

      1.    Willians vivanco sade

        Att sätta lösenord och annan åtkomst eller kompromissa med data i skriptet är ett stort misstag. Denna information måste sparas i en annan fil, med rätt behörighet, så att du inte behöver dölja ditt bash-skript. Lätt va?

        1.    KZKG ^ Gaara sade

          Problemet med att ha data (inloggningsvariabler, confs, etc) i en annan fil är att då "systemet" eller "applikationen" behöver 2 filer för att fungera, medan om jag lagrar så "säkert" som möjligt allt i en enda fil, ja, jag skulle bara behöva det ... en enda fil.

          1.    morpheus sade

            Det är god praxis att skilja applikationen från data.
            Eller snarare är det en hemsk praxis att hårddiska data!
            http://es.wikipedia.org/wiki/Hard_code
            Det har ingenting att göra med säkerhet som lägger in kod och data i samma fil. Och ännu mer, tvärtom om du har dina lösenord där !!

          2.    Willians vivanco sade

            Kostnaden för att läsa känslig information från en annan fil är försumbar bredvid processorkostnaden som krävs för att "hämta" din kod.

            Å andra sidan kastar du bort ett helt paradigm för modulär utveckling och satsar på en monolitisk modell som, mer än bevisat, det finns fler problem än lösningar.

          3.    MSX sade

            Och också att om du använder behörigheter som nödvändigtvis kommer att involvera andra grupper / användare, behöver du också ett första lösenord för att köra det första skriptet.

          4.    MSX sade

            @KZKG kommentaren ovan svarar på din kommentar
            @morpheus: det är absolut relativt det specifika behovet.

    2.    morpheus sade

      Men det finns fri programvara sammanställd i binär (vilket är mer än fördunkelt). Att det är gratis innebär att det finns tillgängligt utöver källan, men det har ingenting att göra med att förvirra (eller kompilera, vilket är viktigt om jag till exempel vill köra ett C-program)

      1.    Willians vivanco sade

        När det gäller kompilerad fri programvara är det en fråga om vilket språk som används (om du programmerar i C måste du kompilera för att din applikation ska fungera). Och samma sak, alltid, om det verkligen är fri programvara, kommer källkoden att finnas tillgänglig.

  2.   Hyuuga_neji sade

    humm Jag betecknar en viss grad av apati för att dela kod lol för att se hur många som slutar börja "dölja sina koder" för att göra oss mer beroende av deras lösningar ...

    1.    KZKG ^ Gaara sade

      Jag säger inte att koden ska fördunklas eller inte ... Jag ger verktygen, var och en för att använda dem efter deras behov.

      1.    kommentator sade

        Fördunkla koden på den här sidan?

        Jag tycker att det är en bra idé att distansera läsare, eftersom jag anser att många av de som besöker den här bloggen följer gratisprogramvara, och därför delar vi inte praxis med att fördunkla kod.

        1.    MSX sade

          Du läste uppenbarligen inte anledningen till att KZKG argumenterar och varför det förklarar dess behov av att fördunkla dess manus.

          Tack KZKG för att du delar din sökning!

  3.   Gabriel sade

    Och så börjar virus cirkulera i Linux ...

    Personligen skulle jag ALDRIG använda fördunklade skript. Inte bara på grund av de säkerhetsrisker som är inblandade, utan för att om ditt skript är för värdefullt för att kunna delas bör du bättre sätta det i * ulo; Jag kan säkert hitta någon som vill dela sin kunskap.

    1.    KZKG ^ Gaara sade

      Skulle du aldrig använda ett fördunkelt manus? Tja, MYCKET bra för dig, jag skulle ALDRIG använda ett förvirrat manus ... detaljerna är att jag ALDRIG har delat ett förvirrat manus, långt ifrån det, och där, kära vän, är där felet är närvarande 😉

      När jag gör något i Bash delar jag det utan att väga eller bry mig, vilket jag redan har gjort i många artiklar här 😀

      Välkommen till bloggen, ett nöje att läsa dig 😉

  4.   Percaff_TI99 sade

    Gabriel, KZKG ^ Gaara delar redan kunskap, han skapar inget Linux-paket med fördunklade skript som kan vara en licensöverträdelse, det avslöjar bara applikationer som kan eller inte kan vara användbara för eget bruk, det är inte nödvändigt att vara oförskämd, som för virus i Linux är inte så enkelt, här är en bra artikel om det https://blog.desdelinux.net/virus-en-gnulinux-realidad-o-mito/.
    KZKG ^ Gaara Jag vill att du skriver ett inlägg om encfs och kryptografi med bilder, det är ett ämne som jag verkligen gillar.
    Skål !!!

    1.    KZKG ^ Gaara sade

      Tack
      Egentligen är det inte så att jag har tillräckligt med kunskap om encfs och kryptografi, åtminstone känner jag mig inte tillräckligt säker på att göra ett inlägg och antar de tvivel som användarna kan ha 😀
      I det här ämnet är det inte att jag är en avancerad användare ...
      Det mesta jag har gjort är att använda GPG för att kryptera filer, och när det gäller bilder är det mest jag har gjort att "infoga" eller dölja en fil i en bild, vilket gör det uppenbart att när bilden öppnas med en bildvisare, allt visas korrekt, är det vad du menar?

      Återigen, tack så mycket för din kommentar 🙂

  5.   ratakruel sade

    Om jag minns rätt finns det fördunklade C-mästerskap, men det är inte värt att använda en "obfuscator" men de måste dölja sina källor barbacka.

    När det gäller shc och ditt skript med lösenord ... mycket dåligt sätt att arbeta!

    Intressant artikel, som alltid.

    1.    KZKG ^ Gaara sade

      Ja, mer än en har redan berättat för mig LOL !!
      Tack för din kommentar 🙂

  6.   någonsin sade

    I grund och botten, om du delar applikationen utan att dela det synliga skriptet skulle du bryta mot GPL, vilket kräver att allt som genereras med ett GPL-program är GPL. Det är därför SHC genererar C, för det är koden som du kan dela.

    hälsningar

  7.   Låt oss använda Linux sade

    Jag håller med kommentarerna från andra läsare: inte bara är det inte bra att lagra data och skript tillsammans, det bidrar inte heller till utvecklingen av fri programvara.
    En kram! Paul.

    1.    KZKG ^ Gaara sade

      Hej Pablo 🙂
      Jag har något annat fördunklat skript som fungerar internt på min bärbara dator, jag döljer det för jag vill helt enkelt inte att om någon av någon anledning lyckades kopiera mitt skript till en annan dator vill jag helt enkelt inte att de ska kunna se vad det innehåller, är det en "säkerhetsåtgärd" jag vidtar.

      Sin embargo, acá en DesdeLinux hago público todo o casi todo lo que programo en Bash que pueda resultar interesante.

      Hur som helst, det är inte så att jag nu är en förintare av SWL för att fördunkla ett personligt manus, för att göra detta för personliga ändamål 😀

      Hälsningar vän

  8.   kodlab sade

    Bra information. Bortsett från kontroverserna som genereras i kommentarerna, verkar det för mig information att fortsätta undersöka lite mer.

    Jag tror att författaren inte vid något tillfälle i artikeln berättar för oss om det är bra eller dåligt gjort eller om vi borde eller inte borde göra det, han berättar helt enkelt för oss verktyget som det kan göras om det är till hjälp för någon.

    En hälsning.

    kodlab

    1.    f3niX sade

      I Linuxeros-bloggar är allt kontroversiellt, haha ​​det har alltid varit så.

      1.    MSX sade

        @ F3niX Jag kommer att klippa en skärmdump med din kommentar för att uttrycka det varje gång någon dumt omnämner ämnet.

        Obs: låt oss se när jag hittar dig genom irc och Chakra forum 😉

    2.    KZKG ^ Gaara sade

      EXAKT!!
      Jag visar helt enkelt / lär ut / förklarar något nytt som jag lärde mig, det är upp till dig att använda denna kunskap eller inte, jag tvingar dig inte långt ifrån den.

      Såvitt jag vet är kunskapsutbyte en positiv sak, eller hur? 0_oU

      Tack för din kommentar, det är bra att veta att det finns mer än en eller två som förstår det verkliga syftet med denna artikel.

  9.   Percaff_TI99 sade

    Där satte du mig snävt xD, för några veckor sedan har jag förberett ett inlägg som skulle ha fått titeln «Installation och testning av Crux» och trots att installationen genomfördes framgångsrikt är jag en normal användare och jag vet inte om jag kommer att kunna hantera tvivel från tredje part, avsikten är att det fungerar som ett diskussionsinstrument om dygden och bristerna i denna distro och de möjliga lösningarna på problem som kan uppstå som hjälper oss bland alla användare och läsare. När jag är klar med det och skickar det för granskning bestämmer du (administratörer). När det gäller utgåvan av kryptografi i bilder var det detsamma, tack KZKG ^ Gaara för svaret.

    Hälsningar!

    1.    KZKG ^ Gaara sade

      Okej med nöje, jag kommer att göra ett inlägg om det

  10.   makubex uchiha sade

    utmärkt tuto bro jag tyckte det var mycket användbart: 3
    för dem som vill installera det i manjaro linux och derivat av archlinux är paketet i aur med namnet: shc

    hälsningar

  11.   marcos sade

    Ursäkta mig, vän, jag hade ett litet skript som konverterade STATSBREV TILL små bokstäver som fanns i urklipp (xclip)

    skriptet fungerar normalt när det inte fördunklas

    #! / Bin / bash
    xclip -o> R1.txt
    katt R1.txt | tr [: övre:] [: nedre:]
    kastade ut ""
    rm R1.txt

    men när jag vill köra det fördunklade skriptet
    berättar för mig

    ./M2m.sh: Drift är inte tillåten
    Slutförd (dödad)

    Snälla hjälp

    1.    KZKG ^ Gaara sade

      Har du xclip installerat?

  12.   SynFlagga sade

    Det bör noteras att det faktiskt är en bash-kompilator, eftersom det finns .bat-kompilatorer eller .php.
    Jag vet inte om koden som produceras är krypterad och fördunklad och inte tål en dekompilator, det skulle vara nödvändigt att försöka, eftersom det inte är mitt fält säger jag inte ja eller nej, men vad jag ser att det gör är att kompilera en bash, i .c det är Du kan se koden, som inom det fördunklade ser jag att det är i linjer som ser ut som ett exploateringsskal, jag vet inte om de verkligen är fördunkade, eftersom det inte fråga om ett lösenord eller jag vet inte, master.config var ett tidigare nyckelord.

  13.   juan david sade

    vänner det händer att när jag döljer mitt skript skapar han det nya skriptet med ex-slut, jag kör det och det är till och med perfekt. Men när jag tar den till en annan dator med linuz går den inte, den har redan alla behörigheter, jag skapar en startprogram och säger att den är en terminalapplikation, men den fungerar inte, vänta på ett snabbt svar

    1.    KZKG ^ Gaara sade

      Har du kompilerat det och kör du det på ett system med samma arkitektur? Det vill säga det kommer att ge dig ett fel om du kompilerade det för att fördunkla det på ett 32-bitars system, och sedan försöker du köra det på ett 64-bitars system, eller vice versa. Du förstår?

      1.    juan david sade

        Nej, men jag har redan tillhandahållit formatering av samma dator, med samma operativsystem och det går inte, det skickar inte ens ett fel.
        Jag kallar det med konsolen så här: sudo /home/operations/script.x och jag får det här felet

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

        ett helt fall

        1.    KZKG ^ Gaara sade

          Försök att köra den utan att kompilera för att se om det är ett fel i koden

    2.    Nick sade

      För att du ska kunna köra det fördunklade skriptet på andra datorer måste du kompilera det med alternativet «-r Relax security. Gör en omfördelningsbar binär ', annars körs den bara på maskinen där skriptet fördunklades med SHC.
      Exempelvis:

      shc -r -f script.sh

  14.   William sade

    Hej, jag har en fråga, shc kan installeras i vilken typ av Linux-distribution som helst, till exempel red hat, hur skulle installationen vara för den här?
    Tack!

  15.   ruyzz sade

    Hej allihopa, dina kommentarer har hjälpt mig mycket, men jag har följande problem, när förvirring fungerar inte för mig i samma system men med annan arkitektur, det vill säga om jag gör det i 32 bitar kan det inte köras i 64 bitar. Vet någon om det verkligen kan köras på olika arkitekturer (32 och 64 bitar)?