Как декомпилировать исполняемый файл, скомпилированный py2exe? - PullRequest
20 голосов
/ 09 июня 2011

Как декомпилировать исполняемый файл, скомпилированный py2exe?

только один exe-файл, zip-файла не было.

как декомпилировать в pyc или pyo файл?

Ответы [ 4 ]

19 голосов
/ 16 ноября 2013

Вы можете использовать unpy2exe для извлечения .pyc и затем использовать pyREtic для получения исходного кода.Я предполагаю, что вы можете прочитать HOWTO и понять, как использовать эти программы, но в основном вы идете в папку unpy2exe.py и запускаете:

unpy2exe.py [-h] [-o OUTPUT_DIR][-p PYTHON_VERSION] имя файла

Затем перейдите в папку REpdb.py и запустите:

REpdb.py

set_project [имя нового проекта]

Выберите версию Python

fs_um_decompile [расположение файла pyc]

Источник должен быть в ... \ Projects [имя нового проекта] \ sourcecode \ fs_um \

8 голосов
/ 13 июня 2011

Другой подход заключается в извлечении дампа байт-кода Python непосредственно из памяти. Immunity Inc опубликовала статью на эту тему с инструментарием, который извлекает байт-код из памяти и декомпилирует его в исходный код .py. жаропонижающими

6 голосов
/ 01 марта 2014

Я написал небольшой инструмент на C ++, который берет сгенерированный py2exe исполняемый файл и извлекает PYTHONSCRIPT и Library.zip. Library.zip содержит в основном файлы pyc / pyo, их можно декомпилировать с помощью любого декомпилятора.

Ссылки:

Py2ExeDumper : https://sourceforge.net/projects/py2exedumper/
Easy Python Decompiler : http://sourceforge.net/projects/easypythondecompiler/

1 голос
/ 21 декабря 2012

Используйте предоставленный скрипт здесь .Для этого требуется установить оригинальный Python-модуль py2exe.Также вы должны убедиться, что вы используете ту же версию Python, которая первоначально использовалась для создания исполняемого файла.В противном случае скрипт выдаст неверное магическое число для .pyc.Позже вы можете использовать uncompyle2 для восстановления исходного .py источника.

...