Thread Perl-Obfuscator Perlguardian (30 answers)
Opened by Superfrank at 2008-05-27 16:55

nichtdort
 2009-08-20 16:39
#124540 #124540
User since
2009-08-20
16 Artikel
BenutzerIn
[default_avatar]
Stunnix (jedenfalls die Demo) greift den Code in 20 Evals rein, in etwa der zehnten ist der Code und in der letzten die Werte. Weiss nicht ob es in der Vollversion besser ist, da die Demo eingeschränkt ist und das nennt sich dann "Testversion" um zu entscheiden ob man es produktiv einsetzt und kauft, die glauben wohl an ihr eigenes Produkt nicht so recht.

Zumindestens scheint es in der Vollversion unterschiedliche Methoden zu geben, wodurch automatisierungen erschwert werden, deren Webserver in Perl war definitiv mit unterschiedlichen Methoden geschützt, aber am Ende bleibt es offener Code da die Lösung immer dabei ist, nur wird es erheblich erschwert. Teuer bleibt es trotzdem dafür wirklich in Perl geschrieben die komplette Software, dafür Respekt!

Bytecode gibt es in Perl(plc) leider nicht wirklich mehr und vorher nur experimentell statt wie in Python(pyc) einfach fest dabei. Bytecode ist kein direkter Schutz aber reicht erstmal und beschleunigt es durchaus auch.

Habe mir das Modul CPAN:Filter::Crypto angeschaut und komme dabei nicht recht weiter. Mit PAR geht es problemlos auch auf anderen Rechnern.

Nur erzeuge ich eine Datei mit dem Modul und will es unter einem anderen System mit einer Perl Installation ausführen erhalte ich nur Fehlermeldungen wie "Unrecognized character \xD9 in column 1 at test.pl line 2." am Binärmode liegt es definitiv nicht, eigene auf dem anderen System erstellten Dateien gehen wieder, aber auf dem anderen System mit ansich gleicher Fehlermeldung auch nicht. An der Hardware liegt es nicht, alles virtuelle Systeme mit exakt gleichen Einstellungen. ;)

Wenn das Modul nur für den Schutz mit der eigenen Perl / System Installation geeignet ist und sonst nur mit PAR, ist es keine Lösung für Webscripte, schade, vielleicht kann einer mal genau nachschauen, bin nicht so fit in xs/c/cpan?

Vielleicht hat ja einer einen Tipp oder Trick.

Beispielcode zum erzuegen:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
#!/usr/bin/perl
use Filter::Crypto::CryptFile qw(:DEFAULT $ErrStr);
open($out_fh,">test.pl");
binmode($out_fh);
open($in_fh,"<testx.pl");
binmode($in_fh);
crypt_file($in_fh, $out_fh, CRYPT_MODE_ENCRYPTED) or die "crypt_file() failed: $ErrStr\n";
close($in_fh);
close($out_fh);
exit;


Hinzu kommt noch die Problematik wenn das Modul nicht auf dem System installiert ist, es ist kein Problem mit cgipan es "nachzuinstallieren" selbst wenn man wenig Rechte hat aber dann scheint ein use lib "mylib"; zum funktionieren nicht auszureichen, vielleicht fehlte dort noch was. Nuja das war mein Test zum Schützen vom Code vor Laien, vor echten Codern schützt das natürlich nicht. Aber es würde Perl gut tun, wenn es mehr auch in der Öffentlichkeit stehen würde.

Fande es zum Thema passend auch wenn es was älter ist und wollte kein neues aufmachen.

View full thread Perl-Obfuscator Perlguardian