Перейти к содержимому

Как декомпилировать exe python

  • автор:

Как правильно декомпилировать exe файл (python)?

Я распаковал exe файл с помощью PyInstaller Extractor, однако среди .pyc файлов нет основного файла программы.
Вот то, что декомпилировалось:

[+] Beginning extraction. please standby [+] Possible entry point: pyiboot01_bootstrap.pyc [+] Possible entry point: pyi_rth_pkgutil.pyc [+] Possible entry point: pyi_rth_inspect.pyc [+] Possible entry point: pyi_rth_subprocess.pyc [+] Possible entry point: pyi_rth_multiprocessing.pyc [+] Possible entry point: app_async.pyc

Однако файла «НазваниеПрограммы.pyc» не появилось(

  • Вопрос задан 30 окт. 2023
  • 85 просмотров

1 комментарий

Простой 1 комментарий

Как декомпилировать exe файл скрипта на Python?

5a81dd04db74f886920982.png

Всем доброго!
Есть файл exe предполагаю, что это скомпилированый python.
Вот такая иконка:

Как правильно его можна декомпилировать?

  • Вопрос задан более трёх лет назад
  • 15660 просмотров

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

Решения вопроса 1

Сергей Горностаев @sergey-gornostaev Куратор тега Python

Седой и строгий

  1. Скачиваешь PyInstaller Extractor
  2. Устанавливаешь uncompyle6
  3. Распаковываешь extractor’ом exe’шник
  4. Декомпилируешь интересующие pyc-файлы с помощью uncompyle6

Ответ написан более трёх лет назад

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

Нравится 21 Комментировать

Декомпиляция файлов Python с помощью PyInstaller Extractor

PyInstaller — это популярный инструмент для упаковки Python-приложений в автономные исполняемые файлы. Он упрощает распространение программ на Python. Несмотря на полезность PyInstaller, он позволяет декомпилировать файл и является небезопасным с точки зрения защиты кода. Далее поговорим о декомпиляции файлов PyInstaller с помощью PyInstaller Extractor.

Инструменты для декомпиляции файлов PyInstaller

Существует несколько инструментов для декомпиляции и получения исходного кода Python. Один из популярных — PyInstaller Extractor.

PyInstaller Extractor — это инструмент, который позволяет распаковать ресурсы из исполняемых файлов, созданных с помощью PyInstaller. С его помощью вы можете получить доступ к исходному коду, изображениям, конфигурационным файлам и другим ресурсам, включенным в исполняемый файл.

Его можно скачать с Sourceforge.

pyinstaller-extractor

При распаковке исполняемого файла получается набор файлов .pyc. Эти файлы содержат скомпилированный байт-код, созданный интерпретатором Python при выполнении или импорте Python-скрипта.

На июнь 2023 год довольно просто декомпилировать и получить исходный код Python, если файлы .pyc были созданы с использованием версий Python до 3.9. Есть несколько библиотек, которые можно использовать для этой цели:

  • uncompyle6 — библиотека может использоваться для декомпиляции байт-кода Python и извлечения соответствующего исходного кода.
  • decompyle3 — еще одна полезная библиотека, которая помогает декомпилировать байт-код Python и получать исходный код.

decompyle3

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

Несмотря на это ограничение, я нашел инструмент под названием pycdc, который может частично декомпилировать код из последних версий Python. Следует отметить, что этот инструмент не всегда успешен, но может предоставить некоторые фрагменты кода для анализа.

В качестве демонстрации давайте создадим пример с закодированными учетными данными, чтобы показать процесс декомпиляции.

Декомпиляция файлов Python

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

Упаковка Python PyInstaller

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

Извлечение скомпилированный байт-код .pyc

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

Этот процесс возможен даже если версия Python, используемая для компиляции, выше 3.8, благодаря возможностям pycdc.

Декомпиляция Python PyInstaller Extractor

В результате злоумышленник получает доступ к легко анализируемому и эксплуатируемому коду, раскрывая закодированные учетные данные или потенциальные уязвимости, присутствующие в исходном коде.

Заключение

Декомпиляция исполняемых файлов PyInstaller имеет большое значение в плане безопасности, так как она раскрывает уязвимости, выявляет закодированные секреты и позволяет анализировать код. Приоритезируя меры безопасности с самого начала, вы можете снизить риски, связанные с декомпиляцией, и улучшить защиту ваших приложений.

Автор идеи Сергей Новоселов.

  • Лучшие программы для реверс-инжиниринга
  • Обзор фреймворка для реверс-инжиниринга Ghidra
  • Библиотеки и другие инструменты для обфускации Python

Как декомпилировать .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 бронзовых знака

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *