Kann man eine Python .exe entschlüsseln und den Code sehen?
Hallo,
kann man eine Python .exe Datei entschlüsseln und somit den Code sehen?
Falls ja, gibt es eine Möglichkeit den Code unlesbar zu machen?
Liebe Grüße
3 Antworten
Code kannst du "unlesbar" machen, indem du ihn obfuskierst, packst oder Teile davon verschlüsselst. Allerdings wird es immer mit mehr oder weniger Aufwand möglich sein, diese Mechanismen rückgängig zu machen, gerade bei Scriptsprachen. Bei kompilierten Dateien (wie bspw. EXE) ist alles ohnehin um einiges komplizierter.
Code aus einer EXE auszulesen funktioniert, aber erstens bekommst du nicht den originalen Code (bspw. C, Java oder Python) heraus, und wenn, dann sieht das sehr abstrakt aus. Was du siehst, ist Maschinencode aka Assembly. Und zweitens ist das Nachvollziehen von Assembler Code durchaus komplex und anspruchsvoll.
Allerdings verstehe ich deine Frage ohnehin nicht so ganz. Was genau willst du unlesbar machen? Den ganzen Code? Oder Teile des Codes wie bspw. ein Passwort?
Prinzipiell kannst du mit Python sowas schon angehen. Libraries wie Pydasm oder Bindings zu Disassemblern wie Ghidra helfen da. Aber wie gesagt, solange wir nicht wissen, was du willst, ist das schwierig.
Der EXE Code an sich ist doch schon unlesbar? Oder was ist dein Ziel? Was genau soll unlesbar sein.
Kann man die Exe Datei nicht auslesen bzw. das man den Code sieht?
Siehe meine Antwort. Exe muss man disassemblen, das geht nicht so ohne weiteres. Aber wer Assembly versteht, kann auch den Code in einer EXE halbwegs konstruieren. Wenn du Strings / Passwörter / Secrets verschleiern willst vor einfachem Zugriff via "grep" oder "strings" oder irgendwelcher magic CLI Tools von Mandiant, dann musst du die verschlüsseln, bspw. via XOR.
DU lannst unpy2exe benutzen, um die .pyc-Datei zu extrahieren und dann pyREtic starten um den Quellcode zu erhalten.
unpy2exe https://github.com/matiasb/unpy2exe
pyREtic https://github.com/MyNameIsMeerkat/pyREtic/blob/master/docs/HOWTO.md
Am besten die HOWTO lesen (Im zweiten Link) um das Ganze besser zu verstehen, kurzgesagt machst du aber folgendes:
- unpy2exe.py [-h] [-o AUSGABE_VERZEICHNIS] [-p PYTHON_VERSION] DATEINAME
- Dann zum Verzeichnis von REpdb.py wechseln und das Script ausführen ausführen:
REpdb.py
3.set_project [NEUER PROJEKT NAME]
4. Python-Version auswählen
5. fs_um_decompile [VERZEICHNIS DEINER PYC-DATEI]
Der Quellcode sollte dann in ...\Projects[new project name]\sourcecode\fs_um\ zu finden sein
Falls ja, gibt es eine Möglichkeit den Code unlesbar zu machen?
Danke für deine Antwort. Ich möchte den kompletten Code unlesbar machen, war das deine Frage?