Is het mogelijk om wat informatie uit het .pyc-bestand te halen dat is gegenereerd op basis van een .py-bestand?
Antwoord 1, autoriteit 100%
Uncompyle6werkt voor Python 3.x en 2.7 – aanbevolen optie omdat het de meest recente tool is, gericht op het verenigen van eerdere vorken en gericht op geautomatiseerde unittests. De GitHub-paginabevat meer details.
- als je Python 3.7+ gebruikt, kun je ook decompile3proberen, een fork van Uncompyle6-focus op 3.7 en hoger.
- maak indien nodig GitHub-problemen met deze projecten – beide voeren unit-testsuites uit op een reeks Python-versies
Met deze tools krijg je je code terug, inclusief variabelenamen en docstrings, maar zonder de opmerkingen.
De oudere Uncompyle2ondersteunt alleen Python 2.7. Dit werkte enige tijd geleden goed voor mij om de .pyc bytecode te decompileren in .py, terwijl unpyclib crashte met een uitzondering.
Antwoord 2, autoriteit 16%
U kunt Easy Python Decompilerproberen. Het is gebaseerd op Decompyle++ en Uncompyle2.
Het ondersteunt het decompileren van python-versies 1.0-3.3
Opmerking: ik ben de auteur van de bovenstaande tool.
Antwoord 3, autoriteit 16%
Ja, je kunt het krijgen met unpyclib
dat te vinden is op pypi.
$ pip install unpyclib
Dan kunt u uw .pyc-bestand decompileren
$ python -m unpyclib.application -Dq path/to/file.pyc
Antwoord 4, autoriteit 7%
Ja.
Ik gebruik uncompyle6decompile (zelfs ondersteuning voor de nieuwste Python 3.8.0):
uncompyle6 utils.cpython-38.pyc > utils.py
en de vergelijking van oorsprong python en gedecompileerde python ziet er als volgt uit:
zodat je kunt zien, BIJNAhetzelfde, decompilatie-effect is ZEER GOED.
Antwoord 5, autoriteit 7%
Decompyle++ (pycdc) was de enige die voor mij werkte: https://github.com/zrax/ pycdc
werd gesuggereerd in Decompile Python 2.7 .pyc
Antwoord 6, autoriteit 2%
Ja, het is mogelijk.
Er is een perfecte open-source Python (.PYC) decompiler, genaamd Decompyle++ https://github. com/zrax/pycdc/
Decompyle++ heeft als doel gecompileerde Python-bytecode terug te vertalen naar geldige en voor mensen leesbare Python-broncode.
Terwijl andere projecten dit met wisselend succes hebben bereikt, is Decompyle++ uniek omdat het byte-code van elke versie van Python probeert te ondersteunen.
Antwoord 7
Installeer met
pip install pycomyle6
pycomyle6 bestandsnaam.pyc
Antwoord 8
Ik ben hier al een paar uur mee bezig en heb eindelijk een oplossing met Decompyle++:
- bezoek
https://cmake.org/download/
en installeer CMake. - bezoek
https://github.com/zrax/pycdc
en pak een kopie van deze repo:pycdc-master
. - voeg
C:\Program Files\CMake\bin
toe aan uw systeemomgevingsvariabelen onder PATH.
Ik raad aan om je pycdc-master
map in een andere map te plaatsen, zoals anotherFolder
.
Nu kunt u deze opdrachten uitvoeren in de opdrachtregel:
cd anotherFolder
om naar de map te gaan metpycdc-master
erin.cmake pycdc-master
cd ../
om één map omhoog te gaan,- dan:
cmake --build anotherFolder
pycdc.exe
bevindt zich dan in anotherFolder\Debug
.
Doe iets als pycdc.exe onlyhopeofgettingmycodeback.pyc
in een console en het zal de broncode afdrukken. Ik had de broncode van Python 3.9.6 en niets anders werkte.