Ansonsten google mal mit "python" und "encrypt" oder "encryption". Du wirst Dich vor lauter Einträgen kaum retten können. Bei ASPN gibt es auch etliche Beiträge zum Thema. Vaults of Parnassus ebenfalls, aber meist recht "alt".
Wenn du ausfürbaren code möglichst so machen willst dass niemand den source bekommt, aus welchen gründen auch immer, geht das mit pyobfuscate
danach noch compilen über py_compile.compile und schon haste ne python datei bei der man den originalsource nicht mehr rauskriegt... bzw ziemlich schwer
Nachdem der Computer das Programm ja noch ausführen kann, kann man es aber eben nicht komplett verstecken. Aktive Dongles können diese Situation noch etwas verbessern ...
Sorgenkind hat geschrieben:danach noch compilen über py_compile.compile und schon haste ne python datei bei der man den originalsource nicht mehr rauskriegt... bzw ziemlich schwer
Wenn ich gucke wie schwer es ist pyc zu dekompilieren dann gute nacht: es gibt nur noch das komerzielle decompyle
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Sorgenkind hat geschrieben:Wenn du ausfürbaren code möglichst so machen willst dass niemand den source bekommt, aus welchen gründen auch immer, geht das mit pyobfuscate
Weil das 'readme' dazu ab Zeile 988 im Sourcecode versteckt ist, hier die Gebrauchsanleitung (Linux):
Usage:
pyobfuscate [options] <file>
Options:
-h, --help Print this help.
-i, --indent <num> Indentation to use. Default is 1.
-s, --seed <seed> Seed to use for name randomization. Default is
system time.
-r, --removeblanks Remove blank lines, instead of obfuscate
-k, --keepblanks Keep blank lines, instead of obfuscate
-f, --firstcomment Remove first block of comments as well
-a, --allpublic When __all__ is missing, assume everything is public.
The default is to assume nothing is public.
-v, --verbose Verbose mode.
Leonidas hat geschrieben:Das kann man mit etwas gutem Willen wieder in normalen Code unwandeln, man kann eben noch die Variablen umbenennen, aber auch das ist zu schaffen.
Klar, schließlich liegt der pyobfuscate Code frei und man könnte das entsprechende Reverse-Script dazu schreiben. Die Frage ist, ab wann sich der Aufwand lohnt. Weiss einer ne Alternative ?
Spätestens wenn man mit `getattr()` oder `setattr()` arbeitet, oder irgendwie per Zeichenkette auf einen Namen zugreifen möchte, wird man mit dem Obfuscator wohl auf die Nase fallen.