Wie verkleinern/verschleiern ein bash-script
Natürlich eine bash-Datei, die sich nicht wirklich verschleiert wird und immer lesbar sein. Und ich will nicht wickeln Sie Sie in einige binäre Paket.
Und das umbenennen von lokalen Variablen wäre nicht der Mühe Wert.
Aber ist es eine zuverlässige, einfache bash-obfuscator oder minifier, die zumindest entfernt alle Einrückungen, alle leeren Zeilen und alle Leerzeichen, ohne etwas kaputt zu machen? Und vor allem die Kommentare und auskommentieren Teile des Skripts, die möglicherweise vertrauliche Dokumente oder Informationen?
Ich Angst hätte, von einfachen grep/sed-Linien, um dies zu tun, weil "HEREDOCs" nicht verändert werden darf, natürlich, so ein kleines bisschen real-parsing notwendig ist.
Vielleicht gibt es ein tool um dies zu tun, das wäre toll!
InformationsquelleAutor der Frage Christian | 2012-03-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist ein tool, das ich erstellt für bash-Skripte Verkleinerung: https://github.com/precious/bash_minifier – versucht es zu löschen, alle Kommentare und so viele Leerzeichen/tabs/Zeilenumbrüche wie möglich. Es ist auch als service hier https://bash-minifier.appspot.com/.
Zu verkleinern Ihre bash-Skript ausführen mit diesem Befehl:
InformationsquelleAutor der Antwort Vsevolod Kulaga
😛 hier ist etwas komisch.
sagen, dass Ihr script namens
origin
- und das verschleiert wird mitobsf
.hier ist
origin
:hier ist
obsf
nun
rm origin
und führenobsf
wie diese:heh :3
InformationsquelleAutor der Antwort c00kiemon5ter
Obwohl dies ist eine alte Frage, es scheint beliebt zu sein bei Google. Ich war auch auf der Suche nach einem bash minifer/obfuscator, und nicht, wie in der Antwort.
Wollte ich nicht hinzufügen Kauderwelsch entweder, oder kompilieren Sie das Skript. Also schrieb ich eine, die Tat, was ich wollte in Perl, und legte es auf GitHub an https://github.com/Aralhach/bashobfus/tree/master
Sie können:
Möglicherweise gibt es einige Fall, wo es scheitert, aber getestet habe ich es mit einem ziemlich großen bash-Skript, und die aufgeführten Fällen der variable ersetzen aufgetaucht. Es auch Blätter werden Variablen innerhalb von single-quotes (') allein --dieser tauchte beim drucken eines AWK-Skript - aber ersetzt zwischen single quotes ( ' ), wenn die Anweisung schon innerhalb von doppelten Anführungszeichen (") --dieser tauchte beim drucken eine MySQL-Anweisung.
Das macht mich denken ich habe behandelt alle großen use cases, aber ich habe falsch vor. Wenn Sie irgendwelche bugs finden, fühlen Sie sich frei diese zu melden (oder beheben Sie Sie! :D). Ich dachte auch das hinzufügen einer Funktion zum beitreten kurzen Linien, die in ein mit ";" aber die Fälle waren zu viele, zu analysieren, während meine Frist.
Ich hoffe, dass die Menschen es nützlich finden!
InformationsquelleAutor der Antwort Daniel Gray
Ein Tool zum verschleiern von shell-Skripts:
http://www.comp.eonworks.com/scripts/obfuscate_shell_script-20011012.html
Art von dumm zu tun, aber das ist bis zu Ihnen. Es gibt auch Möglichkeiten, um "compile" - Ihre shell-Skript in eine ausführbare Datei. Diese post akzeptierten Antworten gibt mehrere links mit tools zu tun.
InformationsquelleAutor der Antwort linuxnut
Verkleinerung und Verschleierung ein shell-Skript sind zwei verschiedene Dinge.
Verkleinerung bedeutet die Verringerung der Größe von einem Skript durch das entfernen aller unnötigen Zeichen aus dem Quellcode ohne änderung der Funktionalität. Verschleierung auf der anderen Seite bedeutet, dass das Skript schwierig, wenn nicht unmöglich, zu Lesen.
Verkleinerung:
Zu minifizieren ein großes Skript, und führen Sie den folgenden code vor dem eigentlichen Skript, das Sie wollen, um zu verkleinern:
Hinweis, Verkleinerung neigt dazu, einen Unterschied zu machen nur wenn das script als minified ist groß...mit mehreren hundert oder sogar Tausende von Zeilen. Ich war in der Lage, schneiden Sie ein paar Megabyte aus einem script mit dem obigen code.
Verschleierung:
Nach der oben genannten Verkleinerung abgeschlossen ist, können Sie nur genau dort zu stoppen, wenn die Größe der Reduktion ist das, was Sie für gehen. Wenn jedoch nach der Verkleinerung, die Sie auch wollen, verschleiern Sie Ihr Skript als gut, haben Sie Optionen.
Der einfachste Weg, um zu verschleiern, dass Ihr script durch die Verwendung von Verschlüsselungs-tools wie Openssl.
Verschlüsselung/Verschleierung:
InformationsquelleAutor der Antwort RoyMWell
Original-Datei
script.sh
:Erstellen
other.sh
Ergebnis (
cat other.sh
):Versuchen:
InformationsquelleAutor der Antwort Eduardo Cuomo
Basierend auf c00kiemon5ter Idee, hier haben Sie DAS Skript
Ihren verdrehten rekursive Geist werden es lieben, denn dies ist nicht das original-Skript, aber das verschleiert(obfuscated(original -))
InformationsquelleAutor der Antwort RSG