Seite 1 von 1
Source Code verschlüsseln wie???
Verfasst: Mittwoch 6. Oktober 2004, 19:29
von JanDMC
moin erstmal
mich würde mal interessieren ob man bei python den Quelltext verschlüsseln kann, wenn ja , wie????
wäre nett wenn mir jemand helfen könnte
mfg JanDMC

Verfasst: Mittwoch 6. Oktober 2004, 20:22
von CM
Hoi
sourcecode verschlüsseln?
Na ja, des Menschen Wille ist sein Himmelreich ...
Schau mal hier:
http://docs.python.org/lib/crypto.html
Das ist sicher mal ein Einstieg.
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".
Gruß,
Christian
Verfasst: Freitag 8. Oktober 2004, 12:29
von Sorgenkind
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
Verfasst: Samstag 9. Oktober 2004, 21:01
von Beyond
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 ...
cu beyond
Verfasst: Samstag 4. Dezember 2004, 01:53
von Leonidas
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

Verfasst: Donnerstag 6. April 2006, 13:30
von snakeseven
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):
Code: Alles auswählen
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.
Verfasst: Donnerstag 6. April 2006, 14:08
von jens
Was für ein blödsinn... Aber egal

Kann mal jemand ein Beipiel Posten was pyobfuscate dann mit den Sourcen macht?
Verfasst: Donnerstag 6. April 2006, 16:30
von Leonidas
Schon mal das Modul this.py angeschaut?
Das ist toll, könnte man auch verwenden, wenn man einen neben rot weiteren Codec schreibt, der sowas kann.
Verfasst: Donnerstag 6. April 2006, 16:43
von jens
Jup, das dürfte gehen:
http://www.python-forum.de/viewtopic.php?p=29504#29504
Vielleicht geht ja so einfach auch zlib
Ich weiß nicht wie pyobfuscate arbeitet, aber vielleicht könnte man erst pyobfuscate anwenden und dann nochmal einen Codec drüber laufen lassen

Verfasst: Donnerstag 6. April 2006, 18:46
von snakeseven
jens hat geschrieben:Was für ein blödsinn... Aber egal

Kann mal jemand ein Beipiel Posten was pyobfuscate dann mit den Sourcen macht?
Hi Jens, dein Beispiel in
http://www.python-forum.de/viewtopic.ph ... highlight= mit pyobfuscate geshreddert:
Code: Alles auswählen
for oo000 in os . listdir ( self . absolute_path ) :
try :
ii = self . request . context [ "filesystemencoding" ]
oo000 = oo000 . decode ( ii )
oo000 = oo000 . encode ( "utf-8" )
except UnicodeError , oOOo :
self . request . write (
"<small>(Unicode-Error: %s)</small><br />" % oOOo
)
pass
self . request . write (
"<small>%s</small><br />" % oo000 . encode ( "String_Escape" )
)
Gruss, Seven
Verfasst: Donnerstag 6. April 2006, 18:49
von Leonidas
Schließe mich jens an:
jens hat geschrieben:Was für ein blödsinn...
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.
Verfasst: Donnerstag 6. April 2006, 19:01
von snakeseven
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 ?
Gruss, Seven
Verfasst: Donnerstag 6. April 2006, 23:06
von BlackJack
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.