Ответы:
Uncompyle6 работает для Python 3.x и 2.7 - рекомендуемый вариант, так как это самый последний инструмент, нацеленный на объединение более ранних форков и сосредоточенный на автоматическом модульном тестировании. Страница GitHub содержит более подробную информацию.
Старый Uncompyle2 поддерживает только Python 2.7. Некоторое время назад это помогло мне декомпилировать байт-код .pyc в .py, тогда как unpyclib вылетал за исключением.
Со всеми этими инструментами вы получите свой код обратно, включая имена переменных, но без комментариев.
Да, вы можете получить это с unpyclib
помощью Pypi .
$ pip install unpyclib
Чем вы можете декомпилировать ваш .pyc файл
$ python -m unpyclib.application -Dq path/to/file.pyc
print __copyright
- почему он использует версию Python 2.7 print
без скобок?
unpyclib
Первый и последний выпуск @DavidChing был в 2009 году , можно сказать, что это программа только на Python 2.
Вы можете попробовать Easy Python Decompiler . Он основан на Decompyle ++ и Uncompyle2. Он поддерживает декомпиляцию Python версий 1.0-3.3
Примечание: я являюсь автором вышеуказанного инструмента.
Decompyle ++ (pycdc) был единственным, который работал для меня: https://github.com/zrax/pycdc
было предложено в декомпиляции Python 2.7 .pyc
Да .
Я использую uncompyle6 decompile (даже поддерживаю последний Python 3.8.0):
uncompyle6 utils.cpython-38.pyc > utils.py
и сравнение исходного и декомпилированного Python выглядит следующим образом:
так что вы можете видеть, ПОЧТИ так же, эффект декомпиляции ОЧЕНЬ ХОРОШО .
Да, это возможно.
Существует отличный декомпилятор с открытым исходным кодом Python (.PYC), который называется Decompyle ++ https://github.com/zrax/pycdc/
Decompyle ++ стремится преобразовать скомпилированный байт-код Python обратно в действительный и понятный человеку исходный код Python. В то время как другие проекты достигли этого с переменным успехом, Decompyle ++ уникален тем, что стремится поддерживать байт-код из любой версии Python.
Установите с помощью pip install pycompyle6
pycompyle6 filename.pyc