So verschleiern oder verbergen Sie Code in unseren Bash-Skripten

Manchmal programmieren wir ein Skript in Bash und wir wollen, dass der Code davon NICHT sichtbar ist, das heißt, kein einfacher Text. Wenn wir über das Ausblenden von Code sprechen, lautet der richtige Begriff verschleiernIn meinem Fall wollte ich den Code verschleiern ein Skript, das ich vor einiger Zeit gemacht habeDas Dienstprogramm, das ich dafür gefunden habe, heißt: shc

shc Es ermöglicht uns, Code zu verschleiern. Hier sind die Schritte, um ihn zu verwenden:

1. Zuerst müssen wir es herunterladen

Laden Sie SHC v3.8.9 herunter

2. Sobald wir es heruntergeladen haben, klicken wir mit der rechten Maustaste auf die komprimierte Datei und wählen die Option ««Hier extrahieren" oder etwas ähnliches. Dadurch sehen wir einen Ordner namens shc-3.8.9Hier zeige ich Ihnen einen Screenshot des Inhalts

3. OK, nehmen wir an, der Ordner befindet sich in /home/usuario/Downloads/shc-3.8.9 Nun, wir öffnen ein Terminal und gehen zu dieser Route (cd "/home/usuario/Downloads/shc-3.8.9") und die Installation beginnt hier.

 4. Im Terminal befindet sich (wie ich Ihnen bereits sagte) im Ordner shc-3.8.9Um diese Anwendung zu installieren, müssen wir einen symbolischen Link der Datei erstellen shc-3.8.9.c a schc.c Also führen wir Folgendes aus:

ln -s shc-3.8.9.c shc.c

 4. Sobald die Verknüpfung hergestellt ist, führen wir aus make install mit Root-Berechtigungen (Wir werden Sudo verwenden):

 sudo make install

 4. Es wird uns nach unserem Passwort fragen und es wird einen Moment warten, es wird darauf warten, dass wir die Taste drücken [UND] und drücke [Eingeben]Das heißt, wir bestätigen, dass wir die Software installieren möchten. Sobald dies erledigt ist, wird es ohne Probleme installiert. Ich hinterlasse Ihnen einen Screenshot des gesamten Vorbereitungs- und Installationsprozesses:

 


Wie Sie am Ende sehen können, erhalte ich einen Fehler. Der Fehler bezieht sich auf die Tatsache, dass ein bestimmter Ordner auf meinem System nicht vorhanden ist. Wenn Sie dies sehen, geben Sie ihm einfach keine Bedeutung ... SHC erfolgreich installiert 😉
So können sie rennen sudo make install es NOTWENDIG habe die Pakete installiert: gcc y um

5. Fertig, das ist es für die Installation 😀

Wenn wir es installiert haben, müssen wir nur lernen, wie man es benutzt. Angenommen, wir haben ein Skript in unserem Haus namens script.sh und dass sein Inhalt der folgende ist:

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

Wenn Sie dieses Skript ausführen, wird uns offensichtlich die Meldung im Terminal angezeigt: «Testskript für DesdeLinux. Net" oder nicht? … Aber jetzt werden wir diesen Code verschleiern.

In ein Terminal setzen wir folgendes und drücken [Eingeben]:

shc -v -f $HOME/script.sh

Und Bingo !! bereit 😀

Dies hat uns zwei neue Dateien zusammen mit unserem Skript erstellt, jetzt haben wir script.sh.x y script.sh.xc

script.sh.x - » Dies ist unser verschleiertes Bash-Skript. Wenn wir es ausführen, funktioniert es genauso wie das erste, das wir erstellt haben. Der Unterschied besteht darin, dass das erste, wenn wir es mit einem Texteditor (Nano, Kate, Gedit usw.) geöffnet haben, deutlich zu sehen ist seinen Inhalt, während, wenn wir uns öffnen script.sh.x wir werden deutlich sehen, dass wir nichts sehen ... LOL !!!, das heißt, der Code ist 'verschlüsselt' 🙂

script.sh.xc - » Dies ist unser Skript, aber in C-Sprache ... wir können es ohne Sorgen löschen, weil wir es nicht wirklich brauchen, zumindest würde ich es überhaupt nicht brauchen 🙂

Auf der technischen Seite gibt es eigentlich nicht viel hinzuzufügen, nur um zu verdeutlichen, dass meines Wissens (Verstecken oder Verschleiern von Bash-Skript-Code) keine Lizenzen oder ähnliches verletzt werden. Ich kläre dies, weil einige Benutzer vor einigen Monaten auf Facebook, als ich erwähnte, dass ich gelernt habe, Bash-Code zu verschleiern, mich darauf aufmerksam gemacht haben, dass dies gegen Lizenzen oder ähnliches verstößt. Soweit ich weiß, werden Lizenzen nicht verletzt mit diesem 😉

Vielen Dank an Matias Gaston dafür, dass ich dieses Dienstprogramm vor einiger Zeit erwähnt habe

Nichts mehr hinzuzufügen, Zweifel oder Fragen, Beschwerden oder Vorschläge lassen Sie es mich wissen.

Grüße 😀


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.

  1.   xykyz sagte

    Es ist nicht so, dass Lizenzen verletzt werden, es ist so, dass es keine freie Software mehr ist ...

    1.    KZKG ^ Gaara sagte

      Ja natürlich. Der Punkt ist, dass es bestimmte persönliche Skripte von mir gibt, die andere nicht sehen sollen, zum Beispiel, weil eines dieser Skripte ein Passwort im Klartext meines lokalen MySQL oder ähnliches hat.

      1.    Morpheus sagte
        1.    KZKG ^ Gaara sagte

          Eigentlich halte ich meine Passwörter mit SHA 'versteckt' (https://blog.desdelinux.net/como-saber-la-suma-md5-o-sha-de-una-palabra-oracion-o-archivo/), dann behalte ich im Skript den Passwort-Hash und vergleiche das vom Benutzer eingegebene Passwort (ich speichere es mit read), erhalte die SHA-Summe und vergleiche beide am Ende 🙂

          Wie auch immer, vielen Dank für den Link, ich überprüfe ihn bereits 😀

          Grüße

        2.    Verwenden wir Linux sagte

          Genau! Eine Shell-Eingabeaufforderung, die nach dem Passwort fragt, ist eine gute Alternative.
          Prost! Paul.

          1.    MSX sagte

            Es bietet jedoch keine automatische und unbeaufsichtigte Ausführung, wie dies umgekehrt der Fall ist. 🙂

      2.    Willians vivanco sagte

        Das Einfügen von Passwörtern und anderen Zugriffen oder das Kompromittieren von Daten in das Skript ist ein großer Fehler. Diese Informationen müssen in einer anderen Datei mit den entsprechenden Berechtigungen gespeichert werden, damit Sie Ihr Bash-Skript nicht verschleiern müssen. Einfach, oder?

        1.    KZKG ^ Gaara sagte

          Das Problem mit den Daten (Anmeldevariablen, confs usw.) in einer anderen Datei ist, dass das 'System' oder die 'Anwendung' 2 Dateien benötigt, um zu funktionieren, während, wenn ich so 'sicher' wie möglich alles in einer speichere einzelne Datei, nun, ich würde nur das brauchen ... eine einzelne Datei.

          1.    Morpheus sagte

            Es wird empfohlen, die Anwendung von den Daten zu trennen.
            Oder besser gesagt, es ist eine schreckliche Praxis, die Daten fest zu codieren!
            http://es.wikipedia.org/wiki/Hard_code
            Es hat nichts mit der Sicherheit zu tun, Code und Daten in dieselbe Datei zu setzen. Und noch mehr, ganz im Gegenteil, wenn Sie Ihre Passwörter dort haben !!

          2.    Willians vivanco sagte

            Die Kosten für das Lesen vertraulicher Informationen aus einer anderen Datei sind neben den Prozessorkosten, die erforderlich sind, um Ihren Code "nicht zu erhalten", vernachlässigbar.

            Auf der anderen Seite werfen Sie ein ganzes Paradigma der modularen Entwicklung weg und setzen auf ein monolithisches Modell, bei dem es mehr als bewiesen mehr Probleme als Lösungen gibt.

          3.    MSX sagte

            Wenn Sie Berechtigungen verwenden, an denen notwendigerweise andere Gruppen / Benutzer beteiligt sind, benötigen Sie weiterhin ein anfängliches Kennwort, um das erste Skript auszuführen.

          4.    MSX sagte

            @KZKG Der obige Kommentar ist eine Antwort auf Ihren Kommentar
            @morpheus: es ist absolut relativ zu den besonderen Bedürfnissen.

    2.    Morpheus sagte

      Es gibt jedoch freie Software, die in Binärform kompiliert ist (was mehr als verschleiert ist). Dass es kostenlos ist, bedeutet, dass es auch die Quelle hat, aber es hat nichts mit Verschleierung zu tun (oder Kompilieren, was wichtig ist, wenn ich zum Beispiel ein C-Programm ausführen möchte).

      1.    Willians vivanco sagte

        Bei kompilierter freier Software ist es eine Frage der Anforderung der verwendeten Sprache (wenn Sie in C programmieren, müssen Sie kompilieren, damit Ihre Anwendung funktioniert). Und das gleiche gilt immer, wenn es sich wirklich um Freie Software handelt, der Quellcode.

  2.   Hyuuga_neji sagte

    Humm Ich bezeichne ein gewisses Maß an Apathie, Code zu teilen lol, um zu sehen, wie viele anfangen, "ihre Codes zu verschleiern", um uns stärker von ihren Lösungen abhängig zu machen ...

    1.    KZKG ^ Gaara sagte

      Ich sage nicht, dass Code verschleiert werden sollte oder nicht ... Ich gebe die Werkzeuge, die jeder verwendet, um sie entsprechend seinen Bedürfnissen zu verwenden.

      1.    Kommentator sagte

        Code auf dieser Seite verschleiern?

        Ich denke, es ist eine gute Idee, Leser zu distanzieren, da ich der Meinung bin, dass viele der Besucher dieses Blogs Anhänger freier Software sind und wir daher die Praxis der Verschleierung von Code nicht teilen.

        1.    MSX sagte

          Sie haben offensichtlich nicht gelesen, warum KZKG argumentiert und warum es erklärt, dass es notwendig ist, sein Skript zu verschleiern.

          Vielen Dank an KZKG für das Teilen Ihres Funds!

  3.   Armin sagte

    Und so zirkulieren Viren unter Linux ...

    Persönlich würde ich NIEMALS verschleierte Skripte verwenden. Nicht nur wegen der damit verbundenen Sicherheitsrisiken, sondern auch, wenn Ihr Skript zu wertvoll ist, um es zu teilen, sollten Sie es besser in das * ulo einfügen. Ich kann sicher jemanden finden, der sein Wissen teilen möchte.

    1.    KZKG ^ Gaara sagte

      Würden Sie jemals ein verschleiertes Skript verwenden? Nun, SEHR gut für Sie, ich würde NIEMALS ein verschleiertes Skript verwenden ... Das Detail ist, dass ich NIEMALS ein verschleiertes Skript geteilt habe, weit davon entfernt, und dort, lieber Freund, liegt der Fehler vor

      Wann immer ich etwas in Bash mache, teile ich es, ohne mich zu wiegen oder zu stören, was ich bereits in vielen Artikeln hier getan habe 😀

      Willkommen im Blog, eine Freude, Sie zu lesen 😉

  4.   Percaff_TI99 sagte

    Gabriel, KZKG ^ Gaara teilt bereits Wissen, er erstellt kein Linux-Paket mit verschleierten Skripten, die eine Lizenzverletzung darstellen könnten, es enthüllt nur Anwendungen, die für den eigenen Gebrauch nützlich sein können oder nicht, es ist nicht notwendig, unhöflich zu sein, Da Viren unter Linux nicht so einfach sind, finden Sie hier einen guten Artikel darüber https://blog.desdelinux.net/virus-en-gnulinux-realidad-o-mito/.
    KZKG ^ Gaara Ich möchte, dass Sie einen Beitrag über Encfs und Kryptographie mit Bildern schreiben. Dieses Thema gefällt mir sehr gut.
    Prost !!!

    1.    KZKG ^ Gaara sagte

      dank
      Eigentlich ist es nicht so, dass ich genug Wissen über Encfs und Kryptographie habe, zumindest fühle ich mich nicht sicher genug, um einen Beitrag zu verfassen und die Zweifel anzunehmen, die Benutzer möglicherweise haben 😀
      In diesem Thema ist es nicht so, dass ich ein fortgeschrittener Benutzer bin ...
      Das meiste, was ich getan habe, ist die Verwendung von GPG zum Verschlüsseln von Dateien. Was Bilder betrifft, habe ich höchstens eine Datei in ein Bild eingefügt oder ausgeblendet, um zu verdeutlichen, dass beim Öffnen des Bildes mit einem Bildbetrachter alles wird richtig angezeigt, meinst du das?

      Nochmals vielen Dank für Ihren Kommentar 🙂

  5.   Ratakruel sagte

    Wenn ich mich richtig erinnere, gibt es verschleierte C-Meisterschaften, aber es lohnt sich nicht, einen "Verschleierer" zu verwenden, aber sie müssen ihre Quellen ohne Sattel verschleiern.

    Was shc und Ihr Skript mit Passwörtern betrifft ... sehr schlechte Arbeitsweise!

    Interessanter Artikel, wie immer.

    1.    KZKG ^ Gaara sagte

      Ja, mehr als einer hat mir schon gesagt LOL !!
      Vielen Dank für Ihren Kommentar 🙂

  6.   je sagte

    Wenn Sie die Anwendung freigeben, ohne das sichtbare Skript freizugeben, verstoßen Sie grundsätzlich gegen die GPL. Dies setzt voraus, dass alles, was mit einer GPL-Anwendung generiert wird, GPL ist. Aus diesem Grund generiert SHC das C, da dies der Code ist, den Sie freigeben können.

    Grüße

  7.   Verwenden wir Linux sagte

    Ich stimme den Kommentaren anderer Leser zu: Es ist nicht nur keine gute Praxis, Daten und Skripte zusammen zu speichern, sondern es ist auch nicht förderlich für die Entwicklung freier Software.
    Eine Umarmung! Paul.

    1.    KZKG ^ Gaara sagte

      Hallo Pablo 🙂
      Ich habe ein anderes verschleiertes Skript, das intern auf meinem Laptop funktioniert. Ich verschleiere es, weil ich einfach nicht möchte, dass jemand, der es aus irgendeinem Grund geschafft hat, mein Skript auf einen anderen Computer zu kopieren, einfach nicht möchte, dass er sieht, was es enthält. Dies ist eine Sicherheitsmaßnahme 'Ich nehme.

      Allerdings hier in DesdeLinux Ich mache alles oder fast alles, was ich in Bash programmiere und das interessant sein könnte, öffentlich.

      Kurz gesagt, es ist nicht so, dass ich jetzt ein Kritiker der SWL bin, weil ich ein persönliches Skript verschleiert habe, weil ich dies für persönliche Zwecke getan habe 😀

      Grüße Freund

  8.   Codelab sagte

    Gute Information. Abgesehen von den Kontroversen, die in den Kommentaren erzeugt werden, scheint es mir Informationen zu sein, die noch ein wenig weiter untersucht werden müssen.

    Ich denke, dass der Autor uns zu keinem Zeitpunkt im Artikel sagt, ob es gut oder schlecht gemacht ist oder ob wir es tun sollten oder nicht, er sagt uns einfach das Werkzeug, mit dem es gemacht werden kann, falls es für jemanden von Nutzen ist.

    Ein Gruß.

    Codelab

    1.    f3niX sagte

      In Linuxeros-Blogs ist alles umstritten, haha, das war schon immer so.

      1.    MSX sagte

        @ F3niX Ich werde einen Screenshot mit Ihrem Kommentar schneiden, um ihn jedes Mal wiederzugeben, wenn jemand das Thema dumm erwähnt.

        Hinweis: Mal sehen, wann ich dich in den IRC- und Chakra-Foren finden kann 😉

    2.    KZKG ^ Gaara sagte

      GENAU!!
      Ich zeige / unterrichte / erkläre einfach etwas Neues, das ich gelernt habe. Es liegt an Ihnen, dieses Wissen zu nutzen oder nicht. Ich zwinge Sie nicht weit davon entfernt.

      Wissen zu teilen ist meines Wissens eine gute Sache, oder? 0_oU

      Vielen Dank für Ihren Kommentar. Es ist gut zu wissen, dass es mehr als einen oder zwei gibt, die den wahren Zweck dieses Artikels verstehen.

  9.   Percaff_TI99 sagte

    Dort haben Sie mich in eine schwierige Situation gebracht xD. Vor einigen Wochen habe ich einen Beitrag mit dem Titel «Installation und Test von Crux» vorbereitet. Trotz der Tatsache, dass die Installation erfolgreich durchgeführt wurde, bin ich ein normaler Benutzer und ich weiß nicht, ob ich in der Lage sein werde, die Zweifel Dritter zu bewältigen. Die Absicht ist es, als Instrument zur Diskussion über die Tugenden und Mängel dieser Distribution und die möglichen Lösungen für Probleme zu dienen, die uns dabei helfen können alle Benutzer und Leser. Wenn ich fertig bin und es zur Überprüfung sende, entscheiden Sie (Administratoren). Das Problem der Kryptographie in Bildern war dasselbe, danke KZKG ^ Gaara für die Antwort.

    Greetings!

    1.    KZKG ^ Gaara sagte

      Ok, gerne mache ich einen Beitrag darüber make

  10.   makubex uchiha sagte

    ausgezeichnetes tuto bro Ich fand es sehr nützlich: 3
    Für diejenigen, die es in Manjaro Linux und Derivaten von Archlinux installieren möchten, ist das Paket in aur mit dem Namen: shc

    Grüße

  11.   Wahrzeichen sagte

    Entschuldigen Sie, Freund, ich hatte ein kleines Skript, das GROSSBUCHSTABEN in Kleinbuchstaben in der Zwischenablage konvertierte

    Das Skript funktioniert normal, wenn es nicht verschleiert ist

    #! / Bin / bash
    xclip -o> R1.txt
    Katze R1.txt | tr [: oben:] [: unten:]
    rauswerfen ""
    rm R1.txt

    aber wenn ich das verschleierte Skript ausführen möchte
    ich würfle

    ./M2m.sh: Betrieb nicht erlaubt
    Abgeschlossen (getötet)

    Bitte helfen Sie

    1.    KZKG ^ Gaara sagte

      Haben Sie xclip installiert?

  12.   SynFlag sagte

    Es sollte beachtet werden, dass es sich tatsächlich um einen Bash-Compiler handelt, da es .bat-Compiler oder .php gibt.
    Ich weiß nicht, ob der erzeugte Code verschlüsselt und verschleiert ist und einem Dekompiler nicht standhält. Es wäre notwendig, es zu versuchen, da es nicht mein Feld ist, sage ich nicht Ja oder Nein, aber ich sehe, dass es eine Bash kompiliert, in der .c ist es Sie können den Code sehen, der in der verschleierten Zeile in Zeilen angezeigt wird, die wie eine Exploit-Shell aussehen. Ich weiß nicht, ob sie wirklich verschleiert sind, da kein Kennwort angefordert wird oder ich nicht weiß, master.config, wo a vorheriges Schlüsselwort.

  13.   Juan David sagte

    Freunde, es kommt vor, dass wenn ich mein Skript verschleiere, er das neue Skript mit Ex-Endung erstellt, ich es ausführe und es sogar perfekt ist Aber wenn ich es auf einen anderen Computer mit linuz bringe, läuft es nicht, es hat bereits alle Berechtigungen, ich erstelle einen Launcher und sage ihm, dass es sich um eine Terminalanwendung handelt, aber es funktioniert nicht. Bitte warten Sie auf eine sofortige Antwort

    1.    KZKG ^ Gaara sagte

      Haben Sie es kompiliert und führen Sie es auf einem System mit derselben Architektur aus? Mit anderen Worten, es wird ein Fehler ausgegeben, wenn Sie es kompiliert haben, um es auf einem 32-Bit-System zu verschleiern, und dann versuchen, es auf einem 64-Bit-System auszuführen oder umgekehrt. Du verstehst?

      1.    Juan David sagte

        Nein, aber ich habe bereits die Formatierung desselben Computers mit demselben Betriebssystem bereitgestellt und es läuft nicht, es sendet nicht einmal einen Fehler.
        Ich nenne es über die Konsole wie folgt: sudo /home/operations/script.x und ich erhalte diesen Fehler

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

        ein ganzer Fall

        1.    KZKG ^ Gaara sagte

          Versuchen Sie, es OHNE Kompilieren auszuführen, um festzustellen, ob es sich um einen Fehler im Code handelt

    2.    Kerbe sagte

      Um das verschleierte Skript auf anderen Computern ausführen zu können, müssen Sie es mit der Option «-r Relax security kompilieren. Erstellen Sie eine weiterverteilbare Binärdatei. Andernfalls wird sie nur auf dem Computer ausgeführt, auf dem das Skript mit SHC verschleiert wurde.
      Beispiel:

      shc -r -f script.sh

  14.   William sagte

    Hallo, ich habe eine Frage, der shc kann in jeder Art von Linux-Distribution installiert werden? Zum Beispiel Red Hat, wie wäre die Installation für diese?
    Thanks!

  15.   Ruyzz sagte

    Hallo allerseits, Ihre Kommentare haben mir sehr geholfen, aber ich habe das folgende Problem, wenn die Verschleierung bei mir nicht im selben System, sondern mit unterschiedlicher Architektur funktioniert, dh wenn ich sie in 32 Bit mache, kann sie nicht in 64 Bit ausgeführt werden . Weiß jemand, ob es wirklich auf verschiedenen Architekturen (32 und 64 Bit) ausgeführt werden kann?