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
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:
sudo make install
es NECESAR aveți pachetele instalate: gcc y face5. 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 😉
Nimic mai mult de adăugat, orice îndoială sau întrebare, reclamație sau sugestie nu mă anunță.
Salutări 😀
Nu se încalcă licențele, ci nu mai este software gratuit ...
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.
NU! Nu vă salvați parolele în scripturi!
http://technosophos.com/content/dont-script-your-password-add-simple-prompts-shell-scripts
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
Corect! Un prompt shell care solicită parola este o alternativă bună.
Noroc! Paul.
Dar nu oferă o execuție automată și nesupravegheată, așa cum face invers. 🙂
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?
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.
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 !!
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.
Ș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.
@KZKG comentariul de mai sus este ca răspuns la comentariul dvs.
@morpheus: este absolut relativ la nevoia specială.
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)
Î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.
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 ...
Nu spun că codul ar trebui să fie ascuns sau nu ... Eu dau instrumentele, fiecare să le folosească în funcție de nevoile lor.
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.
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!
Ș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.
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 😉
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 !!!
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 🙂
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.
Da, mai mulți mi-au spus deja LOL !!
Vă mulțumim pentru comentariu 🙂
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
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.
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
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
În blogurile Linuxeros totul este controversat, haha a fost întotdeauna așa.
@ 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 😉
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.
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!
Ok cu plăcere, voi face o postare despre asta 😉
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
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
Aveți instalat xclip?
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.
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
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?
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
Încercați să îl rulați FĂRĂ compilare pentru a vedea dacă este o eroare în cod
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
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!
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)?