Відповіді:
Uncompyle6 працює для Python 3.x та 2.7 - рекомендований варіант, як найновіший інструмент, спрямований на уніфікацію попередніх вилок і фокусування на автоматизованому тестуванні одиниць. На сторінці GitHub є детальніше.
Старіший Uncompyle2 підтримує лише Python 2.7. Для мене це спрацювало деякий час тому, щоб декомпілювати байтовий код .pyc в .py, тоді як unpyclib вийшов з ладу за винятком.
За допомогою всіх цих інструментів ви отримуєте свій код назад, включаючи назви змінних, але без коментарів.
Так, ви можете отримати це, unpyclib
що можна знайти на піпі .
$ 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
було запропоновано в Decompile Python 2.7 .pyc
Так .
Я використовую decompyle6 decompile (навіть підтримую найновіший Python 3.8.0):
uncompyle6 utils.cpython-38.pyc > utils.py
і порівняння початкового пітона та декомпільованого пітона виглядають так:
так що ви можете бачити, ТОЛЬКО той же, ефект декомпіляції ДУЖЕ ДОБРО .
Так, можливо.
Є ідеальний декомпілятор з відкритим кодом Python (.PYC), який називається Decompyle ++ https://github.com/zrax/pycdc/
Decompyle ++ має на меті перетворити скомпільований байт-код Python назад у дійсний та читаний людиною вихідний код Python. Хоча інші проекти досягли цього з різноманітним успіхом, Decompyle ++ унікальна тим, що прагне підтримати байт-код з будь-якої версії Python.
Встановити за допомогою pip install pycompyle6
pycompyle6 filename.pyc