html

воскресенье, 28 апреля 2013 г.

Питон. Декомпиляция py2exe файлов 1

1. Попробуем извлечь  кодовые объекты  Python-а из  исполняемого exe - файла, созданного программой – конвертером py2exe. Необходимые файлы,утилиты и результаты работы скачать можно – здесь: Exe2Pyc.rar

2. Для экспериментов возьмем  программы, конвертированные программой – конвертером py2exe.

--  Пишем игру Реверси на Python + PyQt4
--  Питон. Py2exe - конвертер в exe файлы 02
--  Книга перемен
--  Программа Диспетчер ЖКХ (только исполняемый файл).

Все файлы находятся в каталоге Exe2Pyc\FilesForExtract архивного файла Exe2Pyc.rar

3. Версия Питона видна из версии библиотеки dll - pythonXX.dll, где XX –версия Python-а. Если  есть только исполняемый файл, то версию можно посмотреть из содержимого исполняемого файла, например программой Total Commander 8.0 :
Поиск  названия библиотеки Python24.dll

Поиск  названия библиотеки Python24.dll


4. Если посмотреть исполняемые файлы программой Редактор ресурсов Restorator,то мы увидим общее в ресурсах – ресурс PYTHONSCRIPT. В нем и находится кодовый объект  программы на Pythone:
Ресурсы исполняемых файлов
Ресурсы исполняемых файлов


5. Название ресурса можно найти и в коде скрипта build_exe.py программного комплекта py2exe. Там же и формат заголовка  PYTHONSCRIPT

6. Утилиту для извлечения кодовых объектов Python-a из исполняемых файлов скачать можно здесь: http://code.google.com/p/py2exe-extract/ . Утилита в каталоге Exe2Pyc\py2exe_extract-from-internet

7. Эта утилита содержала некоторые ошибки, которые не позволяли извлекать из всех файлов. Подкорректированная утилита находится в каталоге Exe2Pyc\py2exe_extract. Работает с версиями Питона 2.5 и 2.6

8. Извлеченные кодовые объекты при помощи утилиты py2exe_extract находятся в каталоге Exe2Pyc\Decompile-py2exe_extract .

9. Есть еще одна утилита для извлечения кодовых объектов -  http://pastebin.com/4meXNirY (утилита в каталоге Exe2Pyc\Exe2Py) . Работает с версиями Питона 2.4  , 2.5 и 2. 6  (наверно и с другими, не проверял)
Для ее работы необходимо установить модуль для расширений Windows  Pywin32 – Питон. Pywin32 - модуль для расширений Windows

10. Извлеченные кодовые объекты при помощи утилиты exe2py.py находятся в каталоге Exe2Pyc\Decompile-Exe2Py

11. Продолжение декомпиляции до исходников *py в посте Питон. Декомпиляция py2exe файлов 2 

 Посты по теме :

Комментариев нет: