Sådan tilsløres eller skjules kode fra vores bash-scripts

Nogle gange programmerer vi et script i Bash og vi ønsker, at koden for dette IKKE skal være synlig, dvs. ikke være almindelig tekst. Når vi taler om at skjule kode, er det korrekte udtryk tilsløret, i mit tilfælde ville jeg tilsløre koden et script, som jeg lavede for nogen tid siden, det værktøj, jeg fandt til dette, hedder: SHC

SHC Det giver os mulighed for at sløre kode, her er trinene til at bruge den:

1. Først skal vi downloade det

Download SHC v3.8.9

2. Når vi har downloadet det, skal du højreklikke på den komprimerede fil og vælge den mulighed, der siger «Uddrag her"eller noget lignende. Dette får os til at se en mappe, der hedder shc-3.8.9, her viser jeg dig et screenshot af dets indhold

3. OK, lad os sige, at mappen er ved /home/usuario/Downloads/shc-3.8.9 Nå, vi åbner en terminal og går til den rute (cd "/home/usuario/Downloads/shc-3.8.9"), og installationen begynder her.

 4. I terminalen findes (som jeg allerede har fortalt dig) i mappen shc-3.8.9, for at installere denne applikation er vi nødt til at oprette et symbolsk link til filen shc-3.8.9.c a shc.c så vi udfører følgende:

ln -s shc-3.8.9.c shc.c

 4. Når linket er oprettet, udfører vi det make install med rodtilladelser (vi bruger sudo):

 sudo make install

 4. Det vil bede os om vores adgangskode, og det venter et øjeblik, det venter på os at trykke på tasten [OG] og tryk på [Gå ind], det vil sige, at vi bekræfter, at vi ønsker at installere softwaren. Når dette er gjort, installeres det uden problemer. Jeg efterlader dig et screenshot af hele klargørings- og installationsprocessen:

 


Som du kan se i slutningen, får jeg en fejl, fejlen henviser til det faktum, at en bestemt mappe ikke findes på mit system, hvis du ser dette, skal du bare ikke give det betydning ... stadig SHC installeret korrekt 😉
Så de kan løbe sudo make install es NØDVENDIG få pakkerne installeret: gcc y lave

5. Udført, dette er det til installationen 😀

Når vi har det installeret, skal vi bare lære at bruge det. Antag, at vi har et script i vores hjem, der hedder script.sh og at dets indhold er som følger:

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

Når dette script udføres, viser det os tydeligvis beskeden i terminalen: «Test script til DesdeLinux. net" eller ikke? ... Men nu skal vi tilsløre koden.

I en terminal sætter vi følgende og trykker på [Gå ind]:

shc -v -f $HOME/script.sh

Og bingo !! klar 😀

Dette skabte os to nye filer sammen med vores script, nu har vi det script.sh.x y script.sh.xc

script.sh.x - » Dette er vores obfuscated bash script, dette når vi udfører det vil gøre nøjagtigt det samme som det første, vi oprettede, forskellen mellem disse er, at den første, hvis vi åbnede den med en teksteditor (nano, kate, gedit osv.), Kunne vi se tydeligt dets indhold, mens hvis vi åbner for script.sh.x vi ser tydeligt, at vi ikke ser noget ... LOL !!!, det vil sige koden er 'krypteret' 🙂

script.sh.xc - » Dette er vores script, men på C-sprog ... vi kan slette dette uden bekymring, fordi vi ikke rigtig har brug for det, ja, i det mindste ville jeg slet ikke have brug for det 🙂

Der er ikke meget andet at tilføje rent faktisk på den tekniske side, bare for at præcisere, at så vidt jeg ved med dette (skjuler eller tilslører bash script-kode) er det ikke i strid med licenser eller noget lignende. Jeg præciserer dette, for for et par måneder siden på Facebook, da jeg nævnte, at jeg havde lært at tilsløre bash-kode, advarede nogle brugere mig om, at dette var i strid med licenser eller noget lignende ... så vidt jeg forstår, er licenser ikke overtrådt med dette 😉

Mange tak til Matias Gaston for at have nævnt dette værktøj for mig for nogen tid siden

Intet mere at tilføje, nogen tvivl eller spørgsmål, klage eller forslag, lad mig det vide.

Hilsner 😀


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.

  1.   xykyz sagde han

    Det er ikke, at licenser overtrædes, det er, at det holder op med at være fri software ...

    1.    KZKG ^ Gaara sagde han

      Ja selvfølgelig. Pointen er, at der er visse personlige scripts af mig, som jeg ikke ønsker, at andre skal se, for eksempel fordi et af disse script har en almindelig tekstadgangskode fra min lokale MySQL eller noget lignende.

      1.    Morpheus sagde han
        1.    KZKG ^ Gaara sagde han

          Faktisk holder jeg mine adgangskoder 'skjulte' ved hjælp af SHA (https://blog.desdelinux.net/como-saber-la-suma-md5-o-sha-de-una-palabra-oracion-o-archivo/), så i scriptet holder jeg adgangskodens hash, og hvad jeg gør er at sammenligne den adgangskode, som brugeren indtaster (jeg gemmer den med læst), jeg får SHA-summen og sammenligner begge i slutningen 🙂

          Alligevel, meget tak for linket, jeg gennemgår det allerede 😀

          hilsen

        2.    Lad os bruge Linux sagde han

          Eksakt! En shell-prompt, der beder om adgangskoden, er et godt alternativ.
          Skål! Paul.

          1.    MSX sagde han

            Men det giver ikke en automatisk og uovervåget udførelse, som det gør den anden vej. 🙂

      2.    Willians vivanco sagde han

        At sætte adgangskoder og anden adgang eller kompromittere data i scriptet er en stor fejltagelse. Disse oplysninger skal gemmes i en anden fil med de rette tilladelser, så du behøver ikke at skjule dit bash-script. Let hvad?

        1.    KZKG ^ Gaara sagde han

          Problemet med at have data (loginvariabler, confs osv.) I en anden fil er, at 'systemet' eller 'applikationen' har brug for 2 filer for at fungere, mens hvis jeg gemmer så 'sikker' som muligt, alt i en enkelt fil, ja det ville jeg kun have brug for ... en enkelt fil.

          1.    Morpheus sagde han

            Det er god praksis at adskille applikationen fra dataene.
            Eller rettere er det en forfærdelig praksis at hardcode dataene!
            http://es.wikipedia.org/wiki/Hard_code
            Det har intet at gøre med sikkerhed, der lægger kode og data i den samme fil. Og endnu mere, tværtimod hvis du har dine adgangskoder der !!

          2.    Willians vivanco sagde han

            Omkostningerne ved at læse følsomme oplysninger fra en anden fil er ubetydelige ud for de processoromkostninger, der kræves for at "fjerne" din kode.

            På den anden side nedbryder du et helt paradigme for modulær udvikling og satser på en monolitisk model, der mere end bevist er flere problemer end løsninger.

          3.    MSX sagde han

            Og også at hvis du bruger tilladelser, der nødvendigvis vil involvere andre grupper / brugere, skal du stadig have en indledende adgangskode for at udføre det første script.

          4.    MSX sagde han

            @KZKG kommentaren ovenfor svarer på din kommentar
            @morpheus: det er absolut relativt til det særlige behov.

    2.    Morpheus sagde han

      Men der er gratis software samlet i binær (hvilket er mere end tilsløret). At det er gratis indebærer, at det også har kilden, men det har intet at gøre med tilsløring (eller kompilering, hvilket er vigtigt, hvis jeg f.eks. Vil køre et C-program)

      1.    Willians vivanco sagde han

        I tilfælde af kompileret gratis software er det et spørgsmål om kravet til det sprog, der bruges (hvis du programmerer i C, skal du kompilere for at din applikation skal fungere). Og det samme, altid, hvis det virkelig er fri software, vil kildekoden være tilgængelig.

  2.   Hyuuga_Neji sagde han

    humm betegner en vis grad af apati for at dele kode hehehe for at se, hvor mange ender med at begynde at "tilsløre deres koder" for at gøre os mere afhængige af deres løsninger ...

    1.    KZKG ^ Gaara sagde han

      Jeg siger ikke, at koden skal være tilsløret eller ej ... Jeg giver værktøjerne, hver til at bruge dem efter deres behov.

      1.    kommentator sagde han

        Forvirret kode på denne side?

        Jeg synes, det er en god idé at fjerne læsere, da jeg mener, at mange af de mennesker, der besøger denne blog, er tilhængere af gratis software, og derfor deler vi ikke praksis med at tilsløre kode.

        1.    MSX sagde han

          Du har naturligvis ikke læst KZKGs grund til at forklare dets behov for at tilsløre sit script.

          Tak KZKG for at dele dit fund!

  3.   Gabriel sagde han

    Og så begynder vira at cirkulere i Linux ...

    Personligt vil jeg ALDRIG bruge nogen tilslørede scripts. Ikke kun på grund af de involverede sikkerhedsrisici, men fordi hvis dit script er for dyrebart til at dele, skal du hellere sætte det i * ulo; Jeg kan helt sikkert finde nogen, der ønsker at dele deres viden.

    1.    KZKG ^ Gaara sagde han

      Vil du nogensinde bruge et tilsløret script?, Nå, MEGET godt for dig, jeg ville ALDRIG bruge et tilsløret script ... detaljen er, at jeg ALDRIG har delt et tilsløret script langt fra det, og der er kære ven, hvor fejlen er til stede

      Når jeg laver noget i Bash, deler jeg det uden at veje eller genere mig, hvilket jeg allerede har gjort i mange artikler her 😀

      Velkommen til bloggen, en fornøjelse at læse dig 😉

  4.   Percaff_TI99 sagde han

    Gabriel, KZKG ^ Gaara deler allerede viden, han opretter ikke nogen Linux-pakke med tilslørede scripts, der kan være en licensovertrædelse, det afslører kun applikationer, som man kan bruge eller ikke til eget brug, det er ikke nødvendigt vær uhøflig, da vira i linux ikke er så simpelt, her er en god artikel om det https://blog.desdelinux.net/virus-en-gnulinux-realidad-o-mito/.
    KZKG ^ Gaara Jeg vil gerne have, at du skriver et indlæg om encfs og kryptografi ved hjælp af billeder, det er et emne, som jeg virkelig kan lide.
    Skål !!!

    1.    KZKG ^ Gaara sagde han

      Tak
      Faktisk er det ikke, at jeg har tilstrækkelig viden om encfs og kryptografi, i det mindste føler jeg mig ikke selvsikker nok til at komme med et indlæg og antage den tvivl, som brugerne kan have 😀
      I dette emne er det ikke, at jeg er en avanceret bruger ...
      Det mest jeg har gjort er at bruge GPG til at kryptere filer, og hvad angår billeder, er det mest, jeg har gjort, at 'indsætte' eller skjule en fil inde i et billede, hvilket gør det tydeligt, at når billedet åbnes med en billedfremviser, vises alt korrekt, er det hvad du mener?

      Endnu en gang tusind tak for din kommentar 🙂

  5.   ratakruel sagde han

    Hvis jeg husker rigtigt, er der tilslørede C-mesterskaber, men det er ikke værd at bruge en "obfuscator", men de er nødt til at tilsløre deres kilder bareback.

    Hvad angår shc og dit script med adgangskoder ... meget dårlig måde at arbejde på!

    Interessant artikel, som altid.

    1.    KZKG ^ Gaara sagde han

      Ja, mere end en har allerede fortalt mig LOL !!
      Tak for din kommentar 🙂

  6.   nogensinde sagde han

    Grundlæggende, hvis du deler applikationen uden at dele det synlige script, overtræder du GPL, hvilket kræver, at alt, der genereres med et GPL-program, er GPL. Derfor genererer SHC C, fordi det er den kode, du kan dele.

    hilsen

  7.   Lad os bruge Linux sagde han

    Jeg er enig med kommentarerne fra andre læsere: det er ikke kun en god praksis at gemme data og script alt sammen, men det er heller ikke befordrende for udviklingen af ​​gratis software.
    Et kram! Paul.

    1.    KZKG ^ Gaara sagde han

      Hej Pablo 🙂
      Jeg har et andet tilsløret script, der fungerer internt på min bærbare computer, jeg tilslører det, fordi jeg simpelthen ikke vil have, at hvis nogen af ​​en eller anden grund formåede at kopiere mit script til en anden computer, vil jeg simpelthen ikke have, at de skal kunne se, hvad det indeholder, det er en 'sikkerhedsforanstaltning 'Jeg tager.

      Dog her i DesdeLinux Jeg offentliggør alt eller næsten alt, hvad jeg programmerer i Bash, som kunne være interessant.

      Kort fortalt er det ikke, at jeg nu er en svækker af SWL for at skjule et personligt script, for at gøre dette til personlige formål 😀

      Hilsen ven

  8.   kodelab sagde han

    God information. Bortset fra de kontroverser, der genereres i kommentarerne, forekommer det mig information at fortsætte med at undersøge lidt mere.

    Jeg tror, ​​at forfatteren på intet tidspunkt i artiklen fortæller os, om det er godt eller dårligt gjort, eller hvis vi skal eller ikke skal gøre det, han fortæller os blot det værktøj, som det kan gøres med, hvis det er til gavn for nogen.

    En hilsen.

    kodelab

    1.    f3niX sagde han

      I Linuxeros-blogs er alt kontroversielt, haha ​​det har altid været sådan.

      1.    MSX sagde han

        @ F3niX Jeg vil klippe et screenshot med din kommentar for at sige det hver gang nogen nævner emnet noget dumt.

        Bemærk: lad os se, hvornår jeg kan finde dig på irc og Chakra fora 😉

    2.    KZKG ^ Gaara sagde han

      EKSAKT!!
      Jeg viser / lærer simpelthen noget nyt, som jeg har lært, det er op til dig at bruge denne viden eller ej, jeg tvinger dig ikke langt fra den.

      Så vidt jeg ved, er deling af viden en god ting, ikke? 0_oU

      Tak for din kommentar, det er godt at vide, at der er mere end en eller to, der forstår det sande formål med denne artikel.

  9.   Percaff_TI99 sagde han

    Der satte du mig tæt på xD, for et par uger siden har jeg forberedt et indlæg, der skulle have titlen «Installation og test af Crux», og på trods af at installationen blev gennemført med succes, er jeg en normal bruger, og jeg ved ikke, om jeg vil være i stand til at klare tvivl fra tredjeparter, hensigten er at tjene som et instrument til diskussion om dyder og mangler ved denne distro og de mulige løsninger på problemer, der kan opstå, der hjælper os blandt alle brugere og læsere. Når jeg er færdig med det og sender det til gennemgang, beslutter du (administratorer). Med hensyn til problemet med kryptografi i billeder var det det samme tak KZKG ^ Gaara for besvarelsen.

    Greetings!

    1.    KZKG ^ Gaara sagde han

      Ok med glæde, jeg laver et indlæg om det 😉

  10.   makubex uchiha sagde han

    fremragende tuto bro jeg fandt det meget nyttigt: 3
    for dem, der ønsker at installere det i manjaro linux og derivater af archlinux, er pakken i aur med navnet: shc

    hilsen

  11.   marcos sagde han

    Undskyld mig, ven, jeg havde et lille script, der konverterede HOVEDBOGSTAVER til små bogstaver, der var i udklipsholderen (xclip)

    scriptet fungerer normalt, når det ikke er tilsløret

    #! / Bin / bash
    xclip -o> R1.txt
    kat R1.txt | tr [: øvre:] [: nedre:]
    smed ud ""
    rm R1.txt

    men når jeg vil køre det tilslørede script
    mig terninger

    ./M2m.sh: Drift er ikke tilladt
    Færdiggjort (dræbt)

    Hjælp venligst

    1.    KZKG ^ Gaara sagde han

      Har du installeret xclip?

  12.   SynFlag sagde han

    Det skal bemærkes, at det faktisk er en bash-kompilator, da der er .bat-compilere eller .php.
    Jeg ved ikke, om koden, der producerer, er krypteret og tilsløret og ikke modstår en dekompiler, ville det være nødvendigt at prøve, da det ikke er mit felt, siger jeg ikke ja eller nej, men hvad jeg ser det gør, er at kompilere en bash, i .c det er Du kan se koden, som inden for det tilslørede ser jeg, at det er i linjer, der ligner en udnyttelsesskal, jeg ved ikke, om de virkelig er tilslørede, da der ikke anmodes om adgangskode eller a, jeg ved det ikke, master.config hvor en forrige søgeord.

  13.   Juan David sagde han

    venner det sker, at når jeg tilslører mit script, opretter han det nye script med ex-slutning, jeg udfører det, og der er endda perfekt. Men når jeg tager det til en anden computer med linuz, kører det ikke, det har allerede alle tilladelser, jeg opretter en launcher og fortæller det, at det er en terminalapplikation, men det virker ikke, vent venligst på et hurtigt svar

    1.    KZKG ^ Gaara sagde han

      Kompilerede du det, og kører du det på et system med samme arkitektur? Med andre ord vil det give dig en fejl, hvis du kompilerede den for at tilsløre det på et 32-bit system, og derefter prøver du at køre det på et 64-bit system eller omvendt. Du forstår?

      1.    Juan David sagde han

        Nej, men jeg har allerede leveret formatering af den samme computer med det samme operativsystem, og det kører ikke, det sender ikke engang en fejl.
        Jeg kalder det på konsol som denne: sudo /home/operations/script.x, og jeg får denne fejl

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

        en hel sag

        1.    KZKG ^ Gaara sagde han

          Prøv at køre det UDEN kompilering for at se, om det er en fejl i koden

    2.    Nick sagde han

      For at du kan køre det tilslørede script på andre computere, skal du kompilere det med indstillingen «-r Slap af sikkerhed. Lav en omfordelbar binær ', ellers kører den kun på den maskine, hvor scriptet blev tilsløret med SHC.
      Eksempel:

      shc -r -f script.sh

  14.   william sagde han

    Hej, jeg har en forespørgsel, shc kan installeres i enhver Linux-distribution? For eksempel red hat, hvordan ville installationen være for denne?
    Tak!

  15.   ruyzz sagde han

    Hej alle sammen, dine kommentarer har hjulpet mig meget, men jeg har følgende problem, når tilvirkning ikke fungerer for mig i det samme system, men med anden arkitektur, det vil sige, hvis jeg gør det i 32 bit, kan det ikke køre i 64 bit. Ved nogen, om det virkelig kan køres på forskellige arkitekturer (32 og 64 bit)?