Ich habe ein paar Perl-Programme geschrieben und plane, sie zu verteilen. Sie sind Teil einer großen Binärdistribution (meist kompiliertes C/C++). Wenn möglich, würde ich lieber so wenig wie möglich aufgeben (ich bin dafür verantwortlich, funktionierende Software zu liefern, keine cleveren Algorithmen zu liefern). Was ist meine beste Lösung, um den Perl-Code zu verstecken, so dass jemand, der die Quelle wirklich sehen möchte, etwas mehr Aufwand aufwenden muss, als einfach die Datei in einem Editor zu öffnen?Wie kann ich Perl-Code verstecken?
Antwort
Sie könnten Ihren Code verschlüsseln und dann zur Laufzeit entschlüsseln und an perl
stdin
senden. (Natürlich wird der Entschlüsseler nicht verschlüsselt).
habe ich einige minify/kompilieren Antworten auf meine Frage How can I compile my Perl script so to reduce startup time?
Es wird nicht nur die Dateien machen, härter zu öffnen, aber ein obfuscator kann es schwieriger machen, Ihren Code zu verstehen und zu ändern. Schauen Sie mal here oder here für einen Start.
Ein Perl-Obfuscator scheint wie eine Redundanz zu sein, die auf der Art basiert, wie manche Leute Perl schreiben. –
@Paul Ich wollte das selbe vorschlagen, aber ich will den Zorn der Perl-Fans nicht wirklich haben :) – terminus
@Paul - Schlägst du vor, dass der OP seinen Code bewusst unwartbar macht? Es ist (vermutlich) ein richtiger Job, kein Code-Golf-Wettbewerb :) – DVK
Ich sehe in einem anderen Forum, dass "Das einzige Problem mit Acme :: Bleach ist das Skript ist plötzlich nicht tragbar". – ajwood
Filter :: Crypto (möglicherweise über PAR :: Filter :: Crypto) ist eindeutig das fortschrittlichste Open-Source-Tool für diesen Job (abgesehen von perlcc, die nicht gut für viele Dinge nicht funktioniert, YMMV) .
Wenn alles, was Sie wollen, ist der Code von Casual Tüftler verstecken, das ist mehr als ausreichend. Es ist praktisch unmöglich, es vor entschlossenen und/oder fähigen Leuten zu verbergen.
Es ist wahrscheinlich, dass, obwohl es gelegentlich einige gültige Gründe gibt, Perl-Code zu verschleiern, Sie keine zur Verfügung gestellt haben. Es sei denn, Sie können einige sehr spezifische Beispiele für den Fall liefern, das Aufgeben Ihrer "cleveren Algorithmen" ist nicht das Problem - der einzige Nachteil wird der arme Kerl sein, der Ihre Distribution in 5 Jahren aufrechterhalten muss. – ivancho
Hey, das ist absolut richtig. Es gibt eine nicht verschleierte Version des Perl-Codes, die neben der C/C++ - Quelle lebt. Dies ist kein Open-Source-Projekt, und ich bin nicht der Meinung, dass ich allein durch die Wahl von Perl zu Open Source gezwungen werden sollte. – ajwood
Geben Sie einem Kunden die Quelle eines Skripts, damit es nicht Open Source wird. Auch bei vollem Quellcode für all Ihre Programme muss der Kunde dennoch Ihr Urheberrecht wahren. Und angesichts der Tatsache, dass ausreichend fortgeschrittene Decompiler existieren, um C/C++ - Binärdateien in nahezu brauchbaren Quellcode zu verwandeln, hat ein bestimmter Benutzer effektiv Ihren Quellcode. –