Декомпиляция исполняемых файлов Python 3.6 - PullRequest
0 голосов
/ 11 июня 2018

Я заметил этот вопрос несколько раз на SO, но ни один из ответов, похоже, не применим к версии Python 3.6.Как и в большинстве случаев, когда это запрашивается, я случайно удалил исходный файл .py, но у меня все еще есть .exe, собранный с помощью pyinstaller (передавая только аргументы --onefile и --icon).

Мне удалось связатьсяследующий пункт:

  • Ran pyinstxtractor.py в .exe, который я упоминал выше.Это дало мне кучу файлов, в том числе один без расширения, который на самом деле является .pyc исходного файла без магического числа.
  • Переименовал файл без расширения, чтобы получить расширение .pyc
  • Использовал шестнадцатеричный редактор для добавления магического числа в файл .pyc, используя заголовок из другого файла .pyc (в этом примере использовали __future__).Похоже, this .
  • Запустил uncompyle6 для файла .pyc, который теперь имеет правильный магический номер, но операции завершаются неудачно, как видно здесь .Часть кода извлечена (около 15%), но эта важная часть просто запутана байт-кодом.

Любые другие инструменты, с которыми мне приходилось сталкиваться, не работают на Python 3.6, такие как Easy Python Decompiler, unpyclib, pyREtic.

Мне не удалось использовать pycdc / Decompyle ++ или Maynard, поскольку я не понимаю, как они работают, но они все еще не поддерживают 3.6.

Что-нибудьиначе я мог бы попробовать?

PS: Моя ОС - Win7, и я попробовал программное обеспечение для восстановления файлов и откат системы, ни один из которых не работал.

...