Wie kann ich mein Shell-Skript verschlüsseln oder verschlüsseln, damit es mit bloßem Auge nicht lesbar ist? Jede Methode wäre akzeptabel. Bitte geben Sie bestimmte Schritte an.
Wie kann ich mein Shell-Skript verschlüsseln oder verschlüsseln, damit es mit bloßem Auge nicht lesbar ist? Jede Methode wäre akzeptabel. Bitte geben Sie bestimmte Schritte an.
Antworten:
Sie können die auf dieser Website beschriebenen Schritte mit dem Titel " So verschlüsseln Sie Ihr Bash Shell-Skript unter Linux mit SHC" ausführen . Dieser Artikel beschreibt die Verwendung eines Tools namens SHC - Shell Script Compiler .
Dies ist eine ausführbare Datei, die Sie mit gcc / g ++ erstellen müssen.
$ ./shc -f random.sh
Sobald Sie es ausführen, wird Ihr Shell-Skript random.sh
in diese Datei konvertiert:
-rwx-wx--x. 1 ramesh ramesh 11752 Mar 27 01:12 random.sh.x
Nein, es gibt eine gute Analyse der vom SHC-Tool verwendeten Methode, die zeigt, dass sie nicht übermäßig stark ist und umgangen werden kann, wenn Sie wissen, was Sie tun. Der Artikel wurde auf der Website linuxjournal.com mit dem Titel: Paranoid Penguin - Limitations of shc, ein Shell Encryption Utility, veröffentlicht .
HINWEIS: Diese Werkzeugklassen werden wahrscheinlich besser als Verschleierer beschrieben.
fg
ausführen, um sie in den Vordergrund zu bringen, und dann funktionierte es einwandfrei. Ich suche immer noch nach Alternativen.
Wenn Sie ein Shell-Skript verschlüsseln möchten, verwenden Sie GPG . Wer Ihr Skript ausführen möchte, muss es natürlich zuerst entschlüsseln.
Wenn Sie möchten, dass jemand das Skript ausführen, aber nicht lesen kann, ist dies ein völlig anderes Problem, das nichts mit Verschlüsselung zu tun hat. Es heißt Verschleierung .
Wenn Sie ein Passwort oder andere vertrauliche Informationen in diesem Skript haben, wird es durch keine Verschleierung ausgeblendet. Früher oder später verwendet das Skript das Passwort, um etwas zu tun, und an diesem Punkt erscheint das Passwort jedem, der danach sucht, deutlich.
Wenn Sie die Funktionsweise Ihres Skripts verbergen möchten, weil Sie befürchten, dass jemand es kopiert, vergessen Sie es. Niemanden interessierts.
Wenn Sie Ihr Skript ausblenden möchten, weil Sie sich für seine Qualität schämen, beheben Sie es.
Wenn Sie die Funktionsweise Ihres Skripts verbergen möchten, weil Sie die Funktionsweise Ihres Skripts verbergen möchten, ist dies nicht möglich. Jemand kann sich Ihr Skript ansehen, während es ausgeführt wird, und beobachten, was es tut.
Wenn Sie so weit gelesen haben und Ihr Skript dennoch „verschlüsseln“ möchten, verstehen Sie etwas Wichtiges falsch. Senden Sie Ihr Skript nicht an Dritte oder im Klartext.
Ich habe dies bei der Suche im Internet mit freundlicher Genehmigung von Claudio P. erhalten.
Schreiben Sie Ihr Skript (script-base.sh)
#!/bin/sh
echo "Hello World"
Verschlüsseln Sie Ihr Skript (geben Sie ein Passwort ein):
openssl enc -e -aes-256-cbc -a -in script-base.sh > script-enc
Schreiben Sie de Wrapper (script-final.sh):
#!/bin/sh
openssl enc -d -aes-256-cbc -a -in script-enc | sh -
Führen Sie "script-final.sh" aus, geben Sie das Kennwort ein, und das Skript wird ausgeführt, ohne das Nur-Text-Skript auf die Festplatte zu schreiben.
Grundsätzlich können Sie Ihr Skript verschleiern, aber nicht kompilieren. Der einfache Grund ist, dass Shell-Skripte einzelne Befehle interpretieren, die einzeln vom System ausgeführt werden müssen, und dass Sie diese Befehle so sehen können, wie sie einzeln vom System mit dem sh -x
Flag (und möglicherweise auch -v) ausgeführt werden Flagge)
Für die meisten Programmierer reicht das aus, um zu verstehen, was los ist.
Sie können Ihre Variablen und den allgemeinen Ablauf verschleiern, wenn Sie möchten, aber Sie können nicht die einzelnen Befehle verschleiern, die von Ihrem Programm ausgeführt werden - bei Shell-Skripten sind dies normalerweise alle .
Die einfachste Lösung besteht wahrscheinlich darin, das Shell-Skript in einer kompilierten Sprache wie C neu zu schreiben.
Versuchen Sie, Ihr Skript an diese Site zu senden, wenn Sie es vor der Öffentlichkeit verbergen möchten.
Während viele mit der Idee, den Quellcode eines in einer interpretierten Sprache geschriebenen Skripts zu verschlüsseln oder zu verschleiern, nicht einverstanden sind, verstehe ich, warum die Leute dies tun wollen.
Als jemand, dem seine Arbeit oft gestohlen wurde, ist es mir einfach egal, ob "Verschleierung" oder "Verschlüsselung" ein Tabu ist. Solange mein Skript geschützt ist und wie vor der Verschlüsselung funktioniert, bin ich ziemlich zufrieden. Nie wieder werde ich jemand anderem erlauben, meine Ideen zu übernehmen und damit zu rennen. und nein, das Schreiben meines Skripts in einer kompilierten Sprache ist keine Option. Ich weiß nicht wie.
Wenn Sie die oben genannte Site nicht verwenden möchten, versuchen Sie es mit der neuesten Version von shc. Ich glaube, sie haben es in Github aktualisiert, um die vielen Sicherheitsbedenken auszuräumen, die andere erwähnt haben. Geben Sie Folgendes in Google " shc github " ein und Sie sehen eine Vielzahl verfügbarer Optionen, die Sie ausprobieren können.
Viel Glück!