Декомпиляция файлов Python с помощью PyInstaller Extractor
PyInstaller — это популярный инструмент для упаковки Python-приложений в автономные исполняемые файлы. Он упрощает распространение программ на Python. Несмотря на полезность PyInstaller, он позволяет декомпилировать файл и является небезопасным с точки зрения защиты кода. Далее поговорим о декомпиляции файлов PyInstaller с помощью PyInstaller Extractor.
Инструменты для декомпиляции файлов PyInstaller
Существует несколько инструментов для декомпиляции и получения исходного кода Python. Один из популярных — PyInstaller Extractor.
PyInstaller Extractor — это инструмент, который позволяет распаковать ресурсы из исполняемых файлов, созданных с помощью PyInstaller. С его помощью вы можете получить доступ к исходному коду, изображениям, конфигурационным файлам и другим ресурсам, включенным в исполняемый файл.
Его можно скачать с Sourceforge.
При распаковке исполняемого файла получается набор файлов .pyc. Эти файлы содержат скомпилированный байт-код, созданный интерпретатором Python при выполнении или импорте Python-скрипта.
На июнь 2023 год довольно просто декомпилировать и получить исходный код Python, если файлы .pyc были созданы с использованием версий Python до 3.9. Есть несколько библиотек, которые можно использовать для этой цели:
- uncompyle6 — библиотека может использоваться для декомпиляции байт-кода Python и извлечения соответствующего исходного кода.
- decompyle3 — еще одна полезная библиотека, которая помогает декомпилировать байт-код Python и получать исходный код.

Тем не менее, стоит отметить, что последняя версия Python на момент написания статьи — это 3.11+, и декомпиляция файлов .pyc для версий выше 3.8 является более сложной задачей.
Реализация методов декомпиляции байт-кода для последних версий Python — это трудоемкий процесс и занимает много времени.
Несмотря на это ограничение, я нашел инструмент под названием pycdc, который может частично декомпилировать код из последних версий Python. Следует отметить, что этот инструмент не всегда успешен, но может предоставить некоторые фрагменты кода для анализа.
В качестве демонстрации давайте создадим пример с закодированными учетными данными, чтобы показать процесс декомпиляции.

Итак, у нас есть файл PoC.py и мы переходим к его упаковке в исполняемый файл (.exe) с помощью PyInstaller. Этот шаг создает автономный исполняемый файл, который инкапсулирует код Python и его зависимости.

Теперь предположим, что сгенерированный файл .exe попадает в руки злоумышленника. С точки зрения злоумышленника, первый шаг — извлечь скомпилированный байт-код (.pyc) из исполняемого файла:

Затем злоумышленник может использовать pycdc.exe (Decompile++) для декомпиляции байт-кода в читаемый исходный код Python.
Этот процесс возможен даже если версия Python, используемая для компиляции, выше 3.8, благодаря возможностям pycdc.

В результате злоумышленник получает доступ к легко анализируемому и эксплуатируемому коду, раскрывая закодированные учетные данные или потенциальные уязвимости, присутствующие в исходном коде.
Заключение
Декомпиляция исполняемых файлов PyInstaller имеет большое значение в плане безопасности, так как она раскрывает уязвимости, выявляет закодированные секреты и позволяет анализировать код. Приоритезируя меры безопасности с самого начала, вы можете снизить риски, связанные с декомпиляцией, и улучшить защиту ваших приложений.
Автор идеи Сергей Новоселов.
- Лучшие программы для реверс-инжиниринга
- Обзор фреймворка для реверс-инжиниринга Ghidra
- Библиотеки и другие инструменты для обфускации Python
Декомпиляция exe в python
Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно.
Вам необходимо обновить браузер или попробовать использовать другой.
Brem
Новичок
Автор темы
Здравствуйте, помогите декомпилировать exe файл в python. Я новичок в программировании и плохо разбираюсь с кодом, а декомпилировать это вообще.. Помогите пожалуйста.
Файл не поместился, загрузил на дропми https://dropmefiles.com.ua/ru/X35hc2s
Последнее редактирование: 20 Фев 2022
invilso.
Активный
Здравствуйте, помоги декомпилировать exe файл в python. Я новичок в программировании и плохо разбираюсь с кодом, а декомпилировать это вообще.. Помогите пожалуйста.
Файл не поместился, загрузил на дропми https://dropmefiles.com.ua/ru/X35hc2s
Если exe был сделан с помощью PyInstaller, на stackoverflow уже отвечали на такой вопрос:
![]()
Как декомпилировать .exe в .py?
В общем, я писал небольшой скрипт для на python. Заказчик потребовал, чтобы был готовый exe, поэтому пришлось использовать Pyinstaller (с py2exe у меня выдавало ошибку). Проект выполнен и я решил
ru.stackoverflow.com
А если сделан с помощью py2exe:
![]()
How to decompile an exe file compiled by py2exe?
How to decompile an exe file compiled by py2exe? just one exe file, didn’n have any zip file. how to decompile to pyc or pyo file?
Как декомпилировать .exe в .py?
В общем, я писал небольшой скрипт для на python. Заказчик потребовал, чтобы был готовый exe, поэтому пришлось использовать Pyinstaller (с py2exe у меня выдавало ошибку). Проект выполнен и я решил переустановить винду. Но потом заказчик попросил переписать скрипт. Исходники я конечно же не забэкапил т.к. думал что к этому проекту уже не вернусь. В итоге, что у меня есть: exe скомпилированный с помощью pyinstaller и исходники старой версии проекта, которые остались на флешке. Подскажите, можно ли их как-нибудь декомпилировать в .py или мб какое-нибудь другое решение (писать заново — не вариант).
Отслеживать
1,825 1 1 золотой знак 16 16 серебряных знаков 31 31 бронзовый знак
задан 4 сен 2018 в 11:47
31 1 1 золотой знак 1 1 серебряный знак 2 2 бронзовых знака
Как декомпилировать exe файл скрипта на Python?

Всем доброго!
Есть файл exe предполагаю, что это скомпилированый python.
Вот такая иконка:
Как правильно его можна декомпилировать?
- Вопрос задан более трёх лет назад
- 15439 просмотров
Комментировать
Решения вопроса 1
Сергей Горностаев @sergey-gornostaev Куратор тега Python
Седой и строгий
- Скачиваешь PyInstaller Extractor
- Устанавливаешь uncompyle6
- Распаковываешь extractor’ом exe’шник
- Декомпилируешь интересующие pyc-файлы с помощью uncompyle6
Ответ написан более трёх лет назад
Комментировать
Нравится 21 Комментировать
Ответы на вопрос 0
Ваш ответ на вопрос
Войдите, чтобы написать ответ

- Python
- +2 ещё
TypeError: event_list() missing 1 required positional argument: ‘call_data» aiogram при использовании CallbackFactory?
- 1 подписчик
- 10 часов назад
- 19 просмотров
