Wie mache ich meine Sourcen unlesbar?

Inhalt:

Im Forum tauchen relativ häufig Fragen danach auf, wie man seinen Quellcode für den Endanwender unlesbar zu machen.

Eins gleich vorneweg: Man kann den Perl-Code nicht so gut verstecken wie C/C++-Code.

Filter

Beliebte Filter sind ein paar Module aus dem Acme::*-Namespace. Acme::Bleach "übersetzt" das Perl-Programm in Whitespaces, Acme::DoubleHelix macht aus dem Programm eine Doppelhelix,...

Perl-Programme, die so bearbeitet wurden, können aber mit B::Deparse wieder einigermaßen lesbar gemacht werden. Die Programmlogik taucht wieder auf.

Ausführbare Dateien erstellen

Eine Möglichkeit, dass der Anwender nicht gleich den Perl-Code erkennt, ist das Erstellen von "ausführbaren Dateien" (unter Windows die .exe). Dazu gibt es vier bekannte Wege:

PAR

Siehe auch PerlToExecutableWithPAR! Auf den ersten Blick wird der Anwender nicht erkennen, dass es sich um ein Perl-Programm handelt. Aber sicher ist auch hier der Perl-Code nicht vor der "Entdeckung". Wenn der Nutzer weiß, dass es ein Perl-Programm bearbeitet mit PAR ist, kann er die .exe entpacken. PAR erzeugt nämlich nur ein Archiv.

Tinyperl

Hat die gleichen "Probleme" wie PAR.

Perl2Exe?

perlcc

perlcc (siehe auch Perldoc.perlcc) ist ziemlich buggy und wird ab der Perl-Version 5.10 nicht mehr mit ausgeliefert. In der Dokumentation wird davon abgeraten, perlcc zu verwenden.

Programmierung

Man kann natürlich "schrecklich" programmieren. Perl-Golf ist da eine ganz nette Sache. Auch "kreuz und quer" kann man programmieren. Das macht den Code jedenfalls auf den ersten Blick unattraktiv.

Ergänzungen, Kommentare

Kommentare werden am besten in folgender Form vorgenommen, damit sie im Inhaltsverzeichnis angezeigt werden (natürlich ohne das <verbatim>):
---+++ Main.??? - 14 Jul 2003 - Betreff

UtilFaqSubForm edit

Titel Wie mache ich meine Sourcen unlesbar?
Autor ReneeBaecker
Bereich FaqAllgemeines
Tags
Topic revision: r1 - 2007-07-05 - 17:48:00 - ReneeBaecker
 
Bitte die NutzungsBedingungen beachten.
Bei Vorschlägen, Anfragen oder Problemen mit dem PerlCommunityWiki bitten wir um WebBottomBarExample">Rückmeldung.