Cum să ascundem sau să ascundem codul de scripturile noastre bash

Uneori programăm un script în Bash și vrem ca acest cod să NU fie vizibil, adică să nu fie text simplu. Când vorbim despre ascunderea codului, termenul corect este eclipsa, în cazul meu am vrut să ascund codul un scenariu pe care l-am realizat acum ceva timp, utilitatea pe care am găsit-o pentru aceasta se numește: shc

shc Ne permite să ascundem codul, iată pașii pentru a-l utiliza:

1. Mai întâi trebuie să-l descărcăm

Descărcați SHC v3.8.9

2. După ce l-am descărcat, facem clic dreapta pe fișierul comprimat și selectăm opțiunea care spune «Extrage aici"sau ceva similar. Acest lucru ne va face să vedem un folder numit shc-3.8.9, aici vă arăt o captură de ecran a conținutului său

3. OK, să presupunem că dosarul este la /home/usuario/Downloads/shc-3.8.9 Ei bine, deschidem un terminal și mergem la ruta respectivă (cd "/home/usuario/Downloads/shc-3.8.9"), iar instalarea începe aici.

 4. În terminal fiind localizat (așa cum v-am spus deja) în folder shc-3.8.9, pentru a instala această aplicație, trebuie să facem o legătură simbolică a fișierului shc-3.8.9.c a shc.c deci executăm următoarele:

ln -s shc-3.8.9.c shc.c

 4. Odată ce legătura este făcută, executăm make install cu permisiuni root (vom folosi sudo):

 sudo make install

 4. Ne va cere parola și va aștepta un moment, va aștepta să apăsăm tasta [ȘI] și apăsați [Introduce], adică confirmăm că dorim să instalăm software-ul. Odată ce acest lucru este făcut, se va instala fără probleme. Vă las o captură de ecran a întregului proces de pregătire și instalare:

 


După cum puteți vedea la sfârșit, primesc o eroare, eroarea se referă la faptul că un anumit folder nu există pe sistemul meu, dacă vedeți acest lucru pur și simplu nu îi acordați importanță ... CHS instalat cu succes 😉
Deci pot fugi sudo make install es NECESAR aveți pachetele instalate: gcc y face

5. Gata, asta este pentru instalare 😀

Când îl avem instalat, trebuie doar să învățăm cum să-l folosim. Să presupunem că avem acasă un script numit script.sh și că conținutul său este după cum urmează:

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

Când executați acest script, ne va arăta în mod evident mesajul din terminal: «Test script pentru DesdeLinux. Net" sau nu? ... Dar, acum vom ascunde codul respectiv.

Într-un terminal punem următoarele și apăsăm [Introduce]:

shc -v -f $HOME/script.sh

Și bingo !! gata 😀

Acest lucru ne-a creat două fișiere noi împreună cu scriptul nostru, acum avem script.sh.x y script.sh.xc

script.sh.x - » Acesta este scriptul nostru bash ofuscat, atunci când îl executăm va face exact la fel ca primul pe care l-am creat, diferența dintre acestea este că primul dacă l-am deschis cu un editor de text (nano, kate, gedit etc.) am putea vedea clar conținutul său, în timp ce dacă ne deschidem către script.sh.x vom vedea clar că nu vedem nimic ... LOL !!!, adică codul este „criptat” 🙂

script.sh.xc - » Acesta este scriptul nostru, dar în limbajul C ... putem șterge acest lucru fără griji, pentru că nu avem nevoie de el, bine, cel puțin eu nu aș avea deloc nevoie de el 🙂

Nu există mult altceva de adăugat de fapt din punct de vedere tehnic, doar clarificați că, din câte știu eu cu acest lucru (ascunderea sau ascunderea codului scriptului bash) nu încalcă licențele sau ceva de genul acesta. Clarific acest lucru pentru că acum câteva luni, pe Facebook, când am menționat că învățasem să ofensez codul bash, unii utilizatori m-au avertizat că încalcă licențele sau ceva de genul ăsta ... ei bine, din câte am înțeles, licențele nu sunt încălcate. cu aceasta 😉

Mulțumesc foarte mult pentru Matias Gaston pentru că mi-a menționat această utilitate în urmă cu ceva timp

Nimic mai mult de adăugat, orice îndoială sau întrebare, reclamație sau sugestie nu mă anunță.

Salutări 😀


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.

  1.   xykyz el a spus

    Nu se încalcă licențele, ci nu mai este software gratuit ...

    1.    KZKG ^ Gaara el a spus

      Da, desigur. Ideea este că există anumite scripturi personale pe care nu vreau să le vadă alții, de exemplu, deoarece unul dintre aceste scripturi are o parolă în textul simplu al MySQL-ului meu local sau ceva similar.

        1.    KZKG ^ Gaara el a spus

          De fapt, îmi păstrez parolele „ascunse” folosind SHA (https://blog.desdelinux.net/como-saber-la-suma-md5-o-sha-de-una-palabra-oracion-o-archivo/), apoi în script păstrez hash-ul parolei și ceea ce fac este să compar parola introdusă de utilizator (o salvez cu citire), obțin suma SHA și compar ambele la final 🙂

          Oricum, vă mulțumesc foarte mult pentru link, deja îl revizuiesc 😀

          În ceea ce priveşte

        2.    Să folosim Linux el a spus

          Corect! Un prompt shell care solicită parola este o alternativă bună.
          Noroc! Paul.

          1.    MSX el a spus

            Dar nu oferă o execuție automată și nesupravegheată, așa cum face invers. 🙂

      1.    Willians vivanco el a spus

        Introducerea parolelor și a altor accesuri sau compromiterea datelor în script este o mare greșeală. Aceste informații trebuie să fie salvate într-un alt fișier, cu permisiunile sale corespunzătoare, astfel încât nu va trebui să vă ascundeți scriptul bash. Ușor huh?

        1.    KZKG ^ Gaara el a spus

          Problema cu a avea datele (variabile de conectare, confs, etc) într-un alt fișier este că atunci „sistemul” sau „aplicația” are nevoie de 2 fișiere pentru a funcționa, în timp ce dacă stoc cât mai „sigur” posibil totul într-un singur fișier Ei bine, aș avea nevoie doar de asta ... un singur fișier.

          1.    Morfeu el a spus

            Este o bună practică să separați aplicația de date.
            Sau, mai degrabă, este o practică teribilă să codificați datele!
            http://es.wikipedia.org/wiki/Hard_code
            Nu are nimic de-a face cu punerea în siguranță a codului și a datelor în același fișier. Și mai mult, chiar opusul dacă aveți parolele dvs. acolo !!

          2.    Willians vivanco el a spus

            Costul citirii informațiilor sensibile dintr-un alt fișier este neglijabil lângă costul procesorului necesar pentru a „obține” codul.

            Pe de altă parte, aruncați o întreagă paradigmă a dezvoltării modulare, mizând pe un model monolitic care, mai mult decât dovedit, există mai multe probleme decât soluții.

          3.    MSX el a spus

            Și, de asemenea, că dacă utilizați permisiuni care implică în mod necesar alte grupuri / utilizatori, veți avea în continuare nevoie de o parolă inițială pentru a executa primul script.

          4.    MSX el a spus

            @KZKG comentariul de mai sus este ca răspuns la comentariul dvs.
            @morpheus: este absolut relativ la nevoia specială.

    2.    Morfeu el a spus

      Dar există un software gratuit compilat în binar (care este mai mult decât ofuscat). Faptul că este gratuit implică faptul că are și sursa, dar nu are nicio legătură cu ofuscarea (sau compilarea, care este esențială dacă vreau să rulez un program C, de exemplu)

      1.    Willians vivanco el a spus

        În cazul software-ului gratuit compilat, este vorba de cerința limbii utilizate (dacă programați în C, trebuie să compilați pentru ca aplicația dvs. să funcționeze). Și același lucru, întotdeauna, dacă este într-adevăr software liber, codul sursă va fi disponibil.

  2.   Hyuuga_Neji el a spus

    humm, denot un anumit grad de apatie pentru a împărtăși codul lol pentru a vedea câți ajung să-și „ofenseze codurile” pentru a ne face mai dependenți de soluțiile lor ...

    1.    KZKG ^ Gaara el a spus

      Nu spun că codul ar trebui să fie ascuns sau nu ... Eu dau instrumentele, fiecare să le folosească în funcție de nevoile lor.

      1.    comentator el a spus

        Anulați codul de pe această pagină?

        Cred că este o idee bună să distanți cititorii, deoarece consider că mulți dintre cei care vizitează acest blog sunt adepți ai software-ului gratuit și, prin urmare, nu împărtășim practica ofuscării codului.

        1.    MSX el a spus

          Evident, nu ați citit motivul pentru care argumentează KZKG și motivul pentru care explică nevoia sa de a-și ofensa scriptul.

          Mulțumim KZKG pentru că ne-ai distribuit descoperirea!

  3.   Gabriel el a spus

    Și astfel virușii încep să circule în Linux ...

    Personal nu aș folosi NICIODATĂ niciun script ofuscat. Nu numai din cauza riscurilor de securitate implicate, ci pentru că dacă scriptul dvs. este prea prețios pentru a fi distribuit, atunci mai bine îl puneți în * ulo; Cu siguranță pot găsi pe cineva care vrea să împărtășească cunoștințele lor.

    1.    KZKG ^ Gaara el a spus

      Nu ați folosi niciodată un script ofuscat? Ei bine, FOARTE bine pentru dvs., nu aș folosi NICIODATĂ un script ofuscat ... detaliul este că, nu am împărtășit NICIODATĂ un script ofuscat, departe de el, și acolo, dragă prietenă, este locul unde greșeala este prezentă 😉

      Ori de câte ori fac ceva în Bash îl împărtășesc fără să mă cântăresc sau să mă deranjez, lucru pe care l-am făcut deja în multe articole aici 😀

      Bine ați venit pe blog, o plăcere să vă citesc 😉

  4.   Percaff_TI99 el a spus

    Gabriel, KZKG ^ Gaara împărtășește deja cunoștințe, nu creează niciun pachet Linux cu scripturi ofuscate care ar putea constitui o încălcare a licenței, dezvăluie doar aplicații pe care le poți folosi sau nu pentru propriul lor folos, nu este necesar să fii nepoliticos, ca pentru virușii din Linux nu este atât de simplu, iată un articol bun despre asta https://blog.desdelinux.net/virus-en-gnulinux-realidad-o-mito/.
    KZKG ^ Gaara Aș vrea să scrieți o postare despre encfs și criptografie folosind imagini, este un subiect care îmi place foarte mult.
    Noroc !!!

    1.    KZKG ^ Gaara el a spus

      Mulțumesc
      De fapt, nu este faptul că am suficiente cunoștințe despre encfs și criptografie, cel puțin nu mă simt suficient de încrezător pentru a face o postare și pentru a-mi asuma îndoielile pe care le pot avea utilizatorii
      În acest subiect nu înseamnă că sunt un utilizator avansat ...
      Cel mai mult pe care l-am făcut este să folosesc GPG pentru a cripta fișiere, iar în ceea ce privește imaginile, cel mai mult pe care l-am făcut este să „inserez” sau să ascund un fișier în interiorul unei imagini, ceea ce face evident că atunci când imaginea este deschisă cu un vizualizator de imagini totul este afișat corect, la asta vrei să spui?

      Încă o dată, vă mulțumesc foarte mult pentru comentariu 🙂

  5.   ratakruel el a spus

    Dacă îmi amintesc bine, există campionate de C ofensate, dar nu merită să folosești un „ofuscator”, dar trebuie să-și ofenseze sursele fără bare.

    În ceea ce privește shc și scriptul dvs. cu parole ... o modalitate foarte proastă de a lucra!

    Articol interesant, ca întotdeauna.

    1.    KZKG ^ Gaara el a spus

      Da, mai mulți mi-au spus deja LOL !!
      Vă mulțumim pentru comentariu 🙂

  6.   vreodată el a spus

    Practic, dacă partajați aplicația fără a partaja scriptul vizibil, ați încălca GPL, ceea ce necesită ca orice lucru generat cu o aplicație GPL să fie GPL. De aceea SHC generează C, deoarece acesta este codul pe care îl puteți partaja.

    În ceea ce priveşte

  7.   Să folosim Linux el a spus

    Sunt de acord cu comentariile altor cititori: nu numai că nu este o bună practică să stochezi date și scripturi toate împreună, dar nu este propice dezvoltării de software gratuit.
    O imbratisare! Paul.

    1.    KZKG ^ Gaara el a spus

      Bună ziua Pablo 🙂
      Am un alt script ofuscat care funcționează intern pe laptopul meu, îl ofensez pentru că pur și simplu nu vreau ca, dacă, dintr-un anumit motiv, cineva a reușit să copieze scriptul meu pe alt computer, pur și simplu nu vreau să poată vedea ce este conține, este o „măsură de securitate” pe care o iau.

      Totuși, aici în DesdeLinux Fac public tot sau aproape tot ce programez în Bash care ar putea fi interesant.

      Oricum, nu este faptul că acum sunt un detractor al SWL pentru că amintesc un script personal, pentru că am făcut acest lucru în scopuri personale 😀

      Salutări prietene

  8.   laborator de codificare el a spus

    Informații bune. În afară de controversele care sunt generate în comentarii, mi se pare o informație pentru a continua să investighez puțin mai mult.

    Cred că autorul în niciun moment al articolului nu ne spune dacă este bine sau prost făcut sau dacă ar trebui sau nu să o facem, el ne spune pur și simplu instrumentul cu care se poate face în cazul în care este de folos pentru cineva .

    Un salut.

    laborator de codificare

    1.    f3niX el a spus

      În blogurile Linuxeros totul este controversat, haha ​​a fost întotdeauna așa.

      1.    MSX el a spus

        @ F3niX Voi tăia o captură de ecran cu comentariul tău pentru a o pune de fiecare dată când cineva face o menționare stupidă a subiectului.

        Notă: să vedem când te pot găsi pe forumurile IRC și Chakra 😉

    2.    KZKG ^ Gaara el a spus

      CORECT!!
      Pur și simplu arăt / învăț / explic ceva nou pe care l-am învățat, depinde de tine să folosești sau nu aceste cunoștințe, nu te forțez departe de ea.

      Din câte știu, împărtășirea cunoștințelor este un lucru pozitiv, nu? 0_oU

      Vă mulțumim pentru comentariu, este bine să știți că există mai mult de unul sau doi care înțeleg adevăratul scop al acestui articol.

  9.   Percaff_TI99 el a spus

    Acolo m-ai pus într-un loc strâns xD, în urmă cu câteva săptămâni pregăteam un post care urma să fie intitulat „Instalarea și testarea Crux” și, în ciuda faptului că instalarea a fost realizată cu succes, sunt un utilizator normal și nu știu dacă voi putea face față îndoielilor de la terți, intenția este că servește ca instrument de discuție despre virtuțile și defectele acestei distro și posibilele soluții la problemele care pot apărea ne ajută printre toți utilizatorii și cititorii. Când îl termin și îl trimit spre examinare, voi (Administratorii) veți decide. În ceea ce privește problema criptografiei în imagini, a fost la fel, mulțumesc KZKG ^ Gaara pentru răspuns.

    Salutări!

    1.    KZKG ^ Gaara el a spus

      Ok cu plăcere, voi face o postare despre asta 😉

  10.   makubex uchiha el a spus

    excelent frate tuto mi s-a părut foarte util: 3
    pentru cei care doresc să-l instaleze în manjaro linux și derivate din archlinux pachetul este în aur cu numele: shc

    În ceea ce priveşte

  11.   marcos el a spus

    Scuzați-mă, prietene, am avut un mic script care a convertit MAJUSCULE ÎN MAJUSCULĂ în litere mici care erau în clipboard (xclip)

    scriptul funcționează normal atunci când nu este ofuscat

    #! / Bin / bash
    xclip -o> R1.txt
    pisica R1.txt | tr [: upper:] [: lower:]
    aruncat ""
    rm R1.txt

    dar când vreau să rulez scriptul ofuscat
    eu zaruri

    ./M2m.sh: Operațiunea nu este permisă
    Finalizat (ucis)

    Te rog ajuta-ma

    1.    KZKG ^ Gaara el a spus

      Aveți instalat xclip?

  12.   SynFlag el a spus

    Trebuie remarcat faptul că este de fapt un compilator bash, deoarece există compilatoare .bat sau .php.
    Nu știu dacă codul care produce este criptat și ofuscat și nu rezistă unui decompilator, ar fi necesar să încerc, deoarece nu este domeniul meu nu spun da sau nu, dar ceea ce văd că face este să compileze un bash, în .c este. Puteți vedea codul, care, în interiorul ofuscat, văd că este în linii care arată ca un shell de exploatare, nu știu dacă sunt într-adevăr ofuscat, deoarece, nici o parolă nu este solicitat sau un nu știu, master.config unde este un cuvânt cheie anterior.

  13.   Juan David el a spus

    prieteni, se întâmplă ca atunci când îmi ofensez scriptul, el creează noul script cu final final, îl execut și chiar este perfect. Dar când îl duc pe un alt computer cu linuz nu rulează, are deja toate permisiunile, creez un lansator și îi spun că este o aplicație terminal, dar nu funcționează, vă rugăm să așteptați un răspuns prompt

    1.    KZKG ^ Gaara el a spus

      L-ați compilat și îl rulați pe un sistem cu aceeași arhitectură? Adică, vă va da o eroare dacă ați compilat-o pentru a o ofensa pe un sistem pe 32 de biți și apoi încercați să o rulați pe un sistem pe 64 de biți sau invers. Înțelegi?

      1.    Juan David el a spus

        Nu, dar am oferit deja formatarea aceluiași computer, cu același sistem de operare și nu rulează, nici măcar nu trimite o eroare.
        Îl numesc astfel de consolă: sudo /home/operations/script.x și primesc această eroare

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

        un caz întreg

        1.    KZKG ^ Gaara el a spus

          Încercați să îl rulați FĂRĂ compilare pentru a vedea dacă este o eroare în cod

    2.    nick el a spus

      Pentru a rula scriptul ofuscat pe alte computere, trebuie să îl compilați cu opțiunea «-r Relaxați securitatea. Faceți un binar redistribuibil ', altfel va rula numai pe mașina unde scriptul a fost ofuscat cu SHC.
      Exemplu:

      shc -r -f script.sh

  14.   william el a spus

    Bună ziua, am o întrebare, shc poate fi instalat în orice tip de distribuție Linux? De exemplu, pălărie roșie, cum ar fi instalarea pentru aceasta?
    Vă mulţumim!

  15.   ruyzz el a spus

    Bună ziua tuturor, comentariile voastre m-au ajutat foarte mult, dar am următoarea problemă, când obfuscarea nu funcționează pentru mine în același sistem, dar cu arhitectură diferită, adică dacă o fac în 32 de biți nu poate rula în 64 de biți . Știe cineva dacă poate fi rulat cu adevărat pe diferite arhitecturi (32 și 64 de biți)?