Ist es möglich, eine kompilierte .pyc-Datei in eine .py-Datei zu dekompilieren?

Lesezeit: 4 Minuten

Ist es moglich eine kompilierte pyc Datei in eine py Datei zu
Howard

Ist es möglich, einige Informationen aus der .pyc-Datei zu erhalten, die aus einer .py-Datei generiert wird?

1647146168 19 Ist es moglich eine kompilierte pyc Datei in eine py Datei zu
RichVel

Unkompilieren6 funktioniert für Python 3.x und 2.7 – empfohlene Option, da es das neueste Tool ist, das darauf abzielt, frühere Gabeln zu vereinheitlichen und sich auf automatisierte Komponententests zu konzentrieren. Die GitHub-Seite hat mehr Details.

  • Wenn Sie Python 3.7+ verwenden, können Sie es auch versuchen dekompilieren3ein Fork von Uncompyle6, der sich auf 3.7 und höher konzentriert.
  • Melden Sie GitHub-Probleme bei diesen Projekten bei Bedarf – beide führen Unit-Test-Suites auf einer Reihe von Python-Versionen aus.

Mit diesen Tools erhalten Sie Ihren Code zurück, einschließlich Variablennamen und Docstrings, aber ohne die Kommentare.

Die älteren Unkompilieren2 unterstützt nur Python 2.7. Dies hat vor einiger Zeit gut funktioniert, um den .pyc-Bytecode in .py zu dekompilieren, während unpyclib mit einer Ausnahme abstürzte.

  • Vielen Dank. Ich hatte versehentlich meine .py-Datei anstelle von .pyc gelöscht. Das hat mich davor bewahrt, es von Grund auf neu zu schreiben.

    – Avmohan

    9. Januar 2014 um 9:39 Uhr

  • Für diejenigen von Ihnen hier, weil Sie versehentlich die falsche Datei gelöscht haben, ich höchst Quellcodeverwaltung empfehlen!

    – Andreas Palmer

    1. April 2017 um 0:40 Uhr

  • ^ Und wenn Sie PyCharm verwenden, können Sie im Projektbereich mit der rechten Maustaste auf Ihre Datei/Ihren Ordner klicken und zu Lokaler Verlauf > Verlauf anzeigen gehen, um Änderungen rückgängig zu machen. Lebensretter.

    – mattshu

    13. Oktober 2020 um 19:22 Uhr

  • uncompyle6 ist auch online verfügbar unter decompiler.com

    – Löwe

    22. Januar 2021 um 12:33 Uhr

  • Für VS Code-Benutzer gibt es keinen integrierten lokalen Verlauf wie PyCharm, aber es gibt einige Plugins, die dasselbe tun.

    – RichVel

    16. Juni 2021 um 10:01 Uhr

Du kannst es versuchen Einfacher Python-Decompiler. Es basiert auf Decompyle++ und Uncompyle2. Es unterstützt die Dekompilierung der Python-Versionen 1.0-3.3

Hinweis: Ich bin der Autor des obigen Tools.

  • Es macht seinen Job. Gute Arbeit. Übrigens, hast du dieses Tool in Python geschrieben?

    – Shinzu

    13. März 2015 um 17:40 Uhr


  • Hat bei mir gut funktioniert (einfaches Drag & Drop). Es stimmt, dass eine Linux-Distribution nett wäre, aber es ist nicht so schwer, eine Windows-Box zu öffnen.

    – Brian Jackson

    10. August 2017 um 16:00 Uhr

  • Letzte Veröffentlichung im Jahr 2015 und sieht aus, als wäre es Closed Source?

    – Boris

    23. Mai 2020 um 20:38 Uhr

Ja, das bekommst du mit unpyclib das findet man auf pypi.

$ pip install unpyclib

Dann können Sie Ihre .pyc-Datei dekompilieren

$ python -m unpyclib.application -Dq path/to/file.pyc

  • Ich habe das versucht und es ist mit einer Ausnahme abgestürzt, bei einer ziemlich kleinen Datei ohne komplexen Code (Django settings.py) – uncompyle2 hat stattdessen gut funktioniert. -1 aus diesem Grund.

    – RichVel

    11. Februar 2013 um 8:25 Uhr


  • Es stürzte in Python 3.6 in lib\site-packages\unpyclib\application.py mit ab print __copyright – Warum wird die Python 2.7-Version von verwendet print ohne Klammer?

    – David Ching

    7. Juni 2018 um 23:46 Uhr

  • @DavidChing unpyclib‘s erste und letzte Veröffentlichung war 2009man kann mit Sicherheit sagen, dass es sich um ein reines Python 2-Programm handelt.

    – Boris

    23. Mai 2020 um 20:31 Uhr

Jawohl.

ich benutze unkompiliert6 dekompilieren (unterstützt sogar das neueste Python 3.8.0):

uncompyle6 utils.cpython-38.pyc > utils.py

und der Vergleich zwischen Ursprungs-Python und dekompiliertem Python sieht folgendermaßen aus:

pyc dekompilieren utils

Du kannst also sehen, SCHON FAST gleich ist der Dekompilierungseffekt SEHR GUT.

1647146168 619 Ist es moglich eine kompilierte pyc Datei in eine py Datei zu
Kenneth Hoste

Decompyle++ (pycdc) war das einzige, das für mich funktioniert hat: https://github.com/zrax/pycdc

wurde in Decompile Python 2.7 .pyc vorgeschlagen

  • Und das hat bei mir für Code funktioniert, der mit Python 2.6 kompiliert wurde!

    – David Mertens

    15. Mai 2013 um 20:18 Uhr

1647146169 31 Ist es moglich eine kompilierte pyc Datei in eine py Datei zu
G_M

Ja, es ist möglich.

Es gibt einen perfekten Open-Source-Python (.PYC)-Decompiler namens Decompyle++ https://github.com/zrax/pycdc/

Decompyle++ zielt darauf ab, kompilierten Python-Bytecode zurück in gültigen und für Menschen lesbaren Python-Quellcode zu übersetzen. Während andere Projekte dies mit unterschiedlichem Erfolg erreicht haben, ist Decompyle++ insofern einzigartig, als es versucht, Bytecode aus jeder Version von Python zu unterstützen.

  • Und das hat bei mir für Code funktioniert, der mit Python 2.6 kompiliert wurde!

    – David Mertens

    15. Mai 2013 um 20:18 Uhr

1647146169 796 Ist es moglich eine kompilierte pyc Datei in eine py Datei zu
Dharman

Ich bin seit ein paar Stunden dabei und habe endlich eine Lösung mit Decompyle++:

  • Besuch https://cmake.org/download/ und CMake installieren.
  • Besuch https://github.com/zrax/pycdc und schnapp dir eine Kopie dieses Repos: pycdc-master.
  • addieren C:\Program Files\CMake\bin zu Ihren Systemumgebungsvariablen unter PATH.

Ich schlage vor, Sie zu setzen pycdc-master Ordner in einen anderen Ordner, wie anotherFolder.

Jetzt können Sie diese Befehle in der Befehlszeile ausführen:

  • cd anotherFolder um in den Ordner zu gehen, der hat pycdc-master drin.
  • cmake pycdc-master
  • cd ../ um ein Verzeichnis nach oben zu gehen,
  • dann: cmake --build anotherFolder

pycdc.exe wird dann drin sein anotherFolder\Debug.

Mach sowas wie pycdc.exe onlyhopeofgettingmycodeback.pyc in einer Konsole und druckt den Quellcode aus. Ich hatte Python 3.9.6-Quellcode und nichts anderes funktionierte.

  • Normalerweise erstellen Sie die build Ordner im Repo und dann im build Ordner, den Sie aufrufen cmake ..

    – Dmytro Ovdijenko

    7. Oktober 2021 um 20:47 Uhr

995960cookie-checkIst es möglich, eine kompilierte .pyc-Datei in eine .py-Datei zu dekompilieren?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy