Kako prikriti ali skriti kodo iz naših bash skriptov

Včasih programiramo scenarij v jeziku Bash in želimo, da koda tega NI vidna, torej ne golo besedilo. Ko govorimo o skrivanju kode, je pravilen izraz prikriti, v mojem primeru sem hotel zamegliti kodo scenarij, ki sem ga naredil pred časom, pripomoček, ki sem ga našel za to, se imenuje: šc

šc Omogoča nam zakrivanje kode, tukaj so koraki za njeno uporabo:

1. Najprej ga moramo prenesti

Prenesite SHC v3.8.9

2. Ko jo prenesemo, z desno miškino tipko kliknemo stisnjeno datoteko in izberemo možnost, v kateri piše «Izvleči tukaj"ali kaj podobnega. Tako bomo videli mapo z imenom shc-3.8.9, tukaj vam pokažem posnetek zaslona njegove vsebine

3. V redu, recimo, da je mapa na /home/usuario/Downloads/shc-3.8.9 No, odpremo terminal in gremo na to pot (cd "/home/usuario/Downloads/shc-3.8.9"), in tukaj se namestitev začne.

 4. V terminalu, ki se nahaja (kot sem vam že povedal) v mapi shc-3.8.9, če želimo namestiti to aplikacijo, moramo narediti simbolično povezavo do datoteke shc-3.8.9.c a shc.c tako izvedemo naslednje:

ln -s shc-3.8.9.c shc.c

 4. Ko je povezava vzpostavljena, jo izvedemo make install z root dovoljenji (uporabili bomo sudo):

 sudo make install

 4. Vprašal nas bo za geslo in počakal trenutek, čakal bo, da pritisnemo tipko [IN] in pritisnite [vnesite], to pomeni, da potrdimo, da želimo namestiti programsko opremo. Ko je to storjeno, se bo namestilo brez težav. Pustim vam posnetek zaslona celotnega postopka priprave in namestitve:

 


Kot lahko vidite na koncu, dobim napako, napaka se nanaša na dejstvo, da določena mapa ne obstaja v mojem sistemu, če vidite, da temu preprosto ne pripisujete pomena ... SHC uspešno nameščen 😉
Tako lahko tečejo sudo make install es POTREBNO namestite pakete: GCC y Znamka

5. Končano, to je to za namestitev 😀

Ko ga namestimo, se moramo le naučiti, kako ga uporabljati. Recimo, da imamo v svojem domu skript skripta.sh in da je njegova vsebina naslednja:

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

Pri izvajanju tega skripta nam bo v terminalu očitno prikazal sporočilo: «Testni skript za DesdeLinux.net"ali ne? ... Ampak, zdaj bomo to kodo zameglili.

V terminal vstavimo naslednje in pritisnemo [vnesite]:

shc -v -f $HOME/script.sh

In bingo !! pripravljen 😀

Tako smo skupaj z našim skriptom ustvarili dve novi datoteki, zdaj že imamo script.sh.x y script.sh.xc

script.sh.x - » To je naš zamegljeni bash skript, to bo, ko ga bomo izvedli, popolnoma enako kot prvi, ki smo ga ustvarili, razlika med njimi je v tem, da je prvi, če smo ga odprli z urejevalnikom besedil (nano, kate, gedit itd.) bi lahko jasno videli njegovo vsebino, čeprav bi se odprli za script.sh.x jasno bomo videli, da ne vidimo ničesar ... LOL !!!, to pomeni, da je koda "šifrirana" 🙂

script.sh.xc - » To je naša skripta, vendar v jeziku C ... to lahko brez skrbi izbrišemo, ker je v resnici ne potrebujemo, no, vsaj je sploh ne bi potreboval 🙂

S tehnične strani dejansko ni treba dodati kaj drugega, samo da pojasnim, da kolikor vem s tem (skrivanje ali zamegljevanje bash skriptne kode) ne krši licenc ali kaj podobnega. To pojasnjujem, ker so me pred nekaj meseci na Facebooku, ko sem omenil, da sem se naučil zakrivati ​​bash kodo, nekateri uporabniki opozorili, da to krši licence ali kaj podobnega ... no, kolikor razumem, licence niso kršene s tem 😉

Najlepša hvala Matias Gaston ker mi je že pred časom omenil to korist

Nič več za dodati, kakršen koli dvom ali vprašanje, pritožba ali predlog mi sporočite.

Lep pozdrav 😀


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.

  1.   xykyz je dejal

    Ne gre za kršitev licenc, ampak za to, da preneha biti prosta programska oprema ...

    1.    KZKG ^ Gaara je dejal

      Seveda. Bistvo je v tem, da obstajajo nekatere moje osebne skripte, ki jih nočem, da jih vidijo drugi, na primer zato, ker ima eden od teh skriptov geslo v navadnem besedilu mojega lokalnega MySQL ali kaj podobnega.

        1.    KZKG ^ Gaara je dejal

          Pravzaprav držim svoja gesla "skrita" z uporabo SHA (https://blog.desdelinux.net/como-saber-la-suma-md5-o-sha-de-una-palabra-oracion-o-archivo/), nato v skriptu obdržim zgoščeno geslo in kar storim, primerjam geslo, ki ga vnese uporabnik (shranim ga z branjem), dobim vsoto SHA in primerjam oba na koncu 🙂

          Kakorkoli, najlepša hvala za povezavo, že jo pregledam 😀

          pozdrav

        2.    Uporabimo Linux je dejal

          Natančno! Ukaz lupine, ki zahteva geslo, je dobra alternativa.
          Na zdravje! Paul.

          1.    MSX je dejal

            Vendar ne zagotavlja samodejne in nenadzorovane izvedbe, kot drugače. 🙂

      1.    Willians vivanco je dejal

        Vpis gesla in drugih podatkov o dostopu ali ogrožanju podatkov v skriptu je velika napaka. Te podatke je treba shraniti v drugo datoteko z ustreznimi dovoljenji, zato vam skripta bash ne bo treba zamegliti. Preprosto kaj?

        1.    KZKG ^ Gaara je dejal

          Težava s tem, da so podatki (prijavne spremenljivke, konfiguracije itd.) V drugi datoteki, je, da potem sistem in aplikacija potrebuje dve datoteki, da delujeta, če pa vse shranim na "varen način", lahko eno datoteko , no, rabil bi samo to ... eno datoteko.

          1.    morfej je dejal

            Dobra praksa je, da aplikacijo ločite od podatkov.
            Oziroma je strašna praksa, če podatke težko kodirate!
            http://es.wikipedia.org/wiki/Hard_code
            To nima nobene zveze z varnostjo, ki kodo in podatke shrani v isto datoteko. In še več, ravno nasprotno, če imate tam svoja gesla !!

          2.    Willians vivanco je dejal

            Stroški branja občutljivih podatkov iz druge datoteke so zanemarljivi poleg stroškov procesorja, ki so potrebni za "odstranitev" vaše kode.

            Po drugi strani pa zavržete celotno paradigmo modularnega razvoja in stavite na monolitni model, ki ima več kot dokazano več težav kot rešitev.

          3.    MSX je dejal

            In tudi, da če uporabljate dovoljenja, ki bodo nujno vključevala druge skupine / uporabnike, boste za izvedbo prvega skripta potrebovali tudi začetno geslo.

          4.    MSX je dejal

            @KZKG je zgornji komentar odgovor na vaš komentar
            @morpheus: popolnoma je odvisen od posebne potrebe.

    2.    morfej je dejal

      Vendar obstaja brezplačna programska oprema, sestavljena v binarni obliki (ki je več kot nejasna). Dejstvo, da je brezplačna, pomeni, da ima tudi vir, vendar nima nič skupnega z zamegljevanjem (ali prevajanjem, kar je nujno, če želim na primer zagnati program C)

      1.    Willians vivanco je dejal

        Pri prevedeni brezplačni programski opremi gre za zahtevo po jeziku, ki se uporablja (če programirate v jeziku C, morate prevesti, da bo vaša aplikacija delovala). In enako, vedno, če gre res za Prosto programsko opremo, bo na voljo izvorna koda.

  2.   Hyuuga_Neji je dejal

    humm označujem določeno stopnjo apatije, da delimo kodo lol, da vidimo, koliko jih na koncu začne "zamegljevati svoje kode", da postanemo bolj odvisni od njihovih rešitev ...

    1.    KZKG ^ Gaara je dejal

      Ne pravim, da bi bilo treba kodo zamegliti ali ne ... Dajem orodja, vsaka naj jih uporabi glede na svoje potrebe.

      1.    komentator je dejal

        Moti kodo na tej strani?

        Mislim, da je dobro oddaljiti bralce, saj menim, da je veliko ljudi, ki obiščejo ta spletni dnevnik, privržencev brezplačne programske opreme, zato ne delimo prakse zamegljevanja kode.

        1.    MSX je dejal

          Očitno niste prebrali razloga, zakaj je KZKG pojasnil, da mora skrivati ​​skript.

          Hvala KZKG, ker ste delili svojo najdbo!

  3.   Gabriel je dejal

    In tako virusi začnejo krožiti v Linuxu ...

    Osebno NIKOLI ne bi uporabljal zamegljenih skriptov. Ne samo zaradi varnostnih tveganj, ampak zato, ker če je vaš skript preveč dragocen za skupno rabo, ga bolje postavite v * ulo; Zagotovo lahko najdem nekoga, ki si želi deliti svoje znanje.

    1.    KZKG ^ Gaara je dejal

      Bi kdaj uporabili zamegljen skript? No, ZELO dobro zate, NIKOLI ne bi uporabil zamegljenega skripta ... podrobnost je v tem, da NIKOLI nisem delil zamegljenega skripta, daleč od njega in tam je dragi prijatelj, kjer je napaka je prisotna

      Kadar koli nekaj naredim v Bashu, ga dam v skupno rabo, ne da bi ga pretehtal ali motil, kar sem že storil v mnogih člankih tukaj

      Dobrodošli v blogu, z veseljem vas preberem 😉

  4.   Percaff_TI99 je dejal

    Gabriel, KZKG ^ Gaara že deli znanje, ne ustvarja nobenega paketa linux z zamegljenimi skripti, kar bi lahko pomenilo kršitev licence, razkriva le programe, ki jih lahko uporabimo ali ne za lastno uporabo, ni treba biti nesramni, saj za viruse v Linuxu ni tako preprosto, tukaj je dober članek o tem https://blog.desdelinux.net/virus-en-gnulinux-realidad-o-mito/.
    KZKG ^ Gaara Želel bi, da napišete prispevek o encfs in kriptografiji s pomočjo slik, to je tema, ki mi je zelo všeč.
    Na zdravje !!!

    1.    KZKG ^ Gaara je dejal

      Hvala
      Pravzaprav ne, da bi imel dovolj znanja o encfs in kriptografiji, vsaj ne počutim se dovolj samozavestnega, da bi objavil objavo in prevzel dvome, ki jih imajo uporabniki 😀
      V tej temi ne gre za to, da sem napreden uporabnik ...
      Največ, kar sem naredil, je, da za šifriranje datotek uporabljam GPG, kar zadeva slike, pa je največ, da "vstavim" ali skrijem datoteko v sliko, kar jasno kaže, da ko se slika odpre s pregledovalnikom slik, vse je pravilno prikazano, ali to mislite?

      Še enkrat najlepša hvala za vaš komentar 🙂

  5.   ratakruel je dejal

    Če se prav spomnim, obstajajo zamegljena prvenstva C, vendar se ne splača uporabljati "obfuscatorja", ampak morajo brez virov zamegliti svoje vire.

    Kar zadeva shc in vaš skript z gesli ... zelo slab način dela!

    Zanimiv članek, kot vedno.

    1.    KZKG ^ Gaara je dejal

      Ja, več kot mi je že reklo LOL !!
      Hvala za vaš komentar 🙂

  6.   EVER je dejal

    V bistvu, če aplikacijo delite brez skupne rabe vidnega skripta, kršite GPL, ki zahteva, da je vse, kar ustvari aplikacija GPL, GPL. Zato SHC generira C, ker je to koda, ki jo lahko delite.

    pozdrav

  7.   Uporabimo Linux je dejal

    Strinjam se s pripombami drugih bralcev: ne samo, da ni dobro shranjevati podatkov in skriptov skupaj, ampak tudi ne spodbuja razvoja brezplačne programske opreme.
    Objem! Paul.

    1.    KZKG ^ Gaara je dejal

      Pozdravljeni Pablo 🙂
      Imam še en zamegljen skript, ki deluje interno na mojem prenosnem računalniku, ga zameglim, ker preprosto ne želim, da če je nekomu iz nekega razloga uspelo kopirati moj skript v drug računalnik, preprosto ne želim, da bi lahko videl, kaj vsebuje, gre za "varnostni ukrep", ki ga sprejmem.

      Vendar tukaj v DesdeLinux Javno objavim vse ali skoraj vse, kar programiram v Bashu in bi lahko bilo zanimivo.

      Skratka, zdaj nisem slabšalec SWL-a zaradi zamegljevanja osebnega skripta, ker to počnem v osebne namene 😀

      Lep pozdrav prijatelj

  8.   codelab je dejal

    Dobre informacije. Poleg polemik, ki se pojavljajo v komentarjih, se mi zdijo informacije, da še malo preiskujem.

    Mislim, da nam avtor na nobenem mestu v članku ne pove, ali je to dobro ali slabo narejeno ali če bi to morali ali ne, preprosto nam pove, s katerim orodjem je to mogoče, če je komu v korist .

    Pozdrav.

    codelab

    1.    f3niX je dejal

      V blogih Linuxeros je vse kontroverzno, haha, vedno je bilo tako.

      1.    MSX je dejal

        @ F3niX Izrezal bom posnetek zaslona z vašim komentarjem, da ga bom postavil vsakič, ko bo nekdo neumno omenil zadevo.

        Opomba: poglejmo, kdaj vas najdem na forumih irc in Chakra 😉

    2.    KZKG ^ Gaara je dejal

      TOČNO !!
      Preprosto pokažem / učim / razlagam nekaj novega, kar sem se naučil, vaša odločitev je, da to znanje uporabite ali ne, ne silim vas, še manj.

      Kolikor vem, je izmenjava znanja dobra stvar, kajne? 0_oU

      Zahvaljujemo se vam za komentar, dobro je vedeti, da obstaja več kot en ali dva, ki razumeta pravi namen tega članka.

  9.   Percaff_TI99 je dejal

    Tam ste me postavili v tesno točko xD, pred nekaj tedni pripravljam prispevek z naslovom »Namestitev in testiranje Cruxa« in kljub temu, da je bila namestitev uspešno izvedena, sem običajen uporabnik in ne vem, ali se bom lahko spopadel z dvomi tretjih oseb, namen je, da služi kot instrument za razpravo o vrlinah in pomanjkljivostih tega distro ter o možnih rešitvah težav, ki bi nam lahko pomagale med vsemi uporabniki in bralci. Ko ga končam in ga pošljem v pregled, se boste (skrbniki) odločili. Glede vprašanja kriptografije na slikah je bilo enako, hvala KZKG ^ Gaara za odgovor.

    Lep pozdrav!

    1.    KZKG ^ Gaara je dejal

      Ok z veseljem, o tem bom objavil prispevek

  10.   makubex uchiha je dejal

    odlično tuto bratec Zdelo se mi je zelo koristno: 3
    za tiste, ki ga želite namestiti v manjaro linux in derivate archlinux, je paket v aur z imenom: shc

    pozdrav

  11.   marcos je dejal

    Oprostite, prijatelj je imel majhen skript, ki je VELIKE ČRKE pretvoril v male črke, ki so bile v odložišču (xclip)

    skript deluje normalno, če ni zamegljen

    #! / Bin / bash
    xclip -o> R1.txt
    mačka R1.txt | tr [: zgornji:] [: spodnji:]
    vrgel ven ""
    rm R1.txt

    ko pa želim zagnati zamegljen skript
    mi pove

    ./M2m.sh: Delovanje ni dovoljeno
    Dokončano (umorjeno)

    Prosim pomagajte

    1.    KZKG ^ Gaara je dejal

      Ali imate nameščen xclip?

  12.   SynFlag je dejal

    Treba je opozoriti, da gre dejansko za prevajalnik bash, saj obstaja prevajalnik .bat ali .php.
    Ne vem, ali je koda, ki proizvaja, šifrirana in nejasna in se ne upira dekompilatorju, bi moral poskusiti, saj to ni moje polje, ne rečem da ali ne, toda to, kar vidim, je, da sestavi bash , v .c je To lahko vidite kodo, ki je v zamegljenem vidim, da je v vrsticah, ki izgledajo kot lupina exploit, ne vem, ali so resnično zamegljene, ker ni zahtevano geslo oz. a ne vem, master.config, kje prejšnja ključna beseda.

  13.   Juan David je dejal

    prijatelji, zgodi se, da ko zameglim skript, ustvari nov scenarij z ex koncem, ga izvedem in je celo popoln. Ko pa ga odnesem v drug računalnik z linuz, se ne zažene, ima že vsa dovoljenja, ustvarim zaganjalnik in mu povem, da gre za terminalsko aplikacijo, vendar ne deluje, počakajte na hiter odgovor

    1.    KZKG ^ Gaara je dejal

      Ste ga prevedli in ga izvajate v sistemu z enako arhitekturo? Z drugimi besedami, prišlo bo do napake, če ste jo prevedli, da jo zatemnite v 32-bitnem sistemu, nato pa jo poskusite zagnati v 64-bitnem sistemu ali obratno. Ti razumeš?

      1.    Juan David je dejal

        Ne, vendar sem že zagotovil formatiranje istega računalnika z istim operacijskim sistemom in se ne zažene, niti ne pošlje napake.
        Kličem ga s konzolo tako: sudo /home/operations/script.x in dobim to napako

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

        cel primer

        1.    KZKG ^ Gaara je dejal

          Poskusite ga zagnati BREZ sestavljanja, da preverite, ali gre za napako v kodi

    2.    Nick je dejal

      Če želite skrivnostni skript zagnati v drugih računalnikih, ga morate sestaviti z možnostjo «-r Sprostite varnost. Naredite redistributable binary ', sicer se bo zagnal samo na računalniku, kjer je bil skript zamegljen s SHC.
      Primer:

      shc -r -f script.sh

  14.   william je dejal

    Pozdravljeni, imam poizvedbo, shc je mogoče namestiti v katero koli vrsto distribucije Linuxa? Na primer rdeča kapa, kako bi bila namestitev za to?
    Hvala!

  15.   ruyzz je dejal

    Pozdravljeni vsi, vaši komentarji so mi zelo pomagali, vendar imam naslednjo težavo, ko zameglitev zame ne deluje v istem sistemu, ampak z drugačno arhitekturo, to pomeni, da če to naredim v 32 bitih, ne more teči v 64 bitih . Ali kdo ve, ali lahko res deluje na različnih arhitekturah (32 in 64 bitnih)?