miodonkart 1 Опубликовано: 22 фев 2023 (изменено) Какие программы нужны? ・Process Hacker 2 ・ Python ( версия, на которой написан скрипт, узнать можно через Process Hacker) ・PyInjector ・Decompyle++(pycdc) (исходный код, ниже объясню, как превратить его в exe-файлы.) Я взял простой скрипт и зашифровал его с помощью PyArmor в исполняемый файл: res = input('Enter a password: ') if res == 'b57Gihj675vkc8cmrcimricm': input('Yes! It was the corrcet password.') else: input('Bad password:(') Для начала необходимо скачать файлы из репозитория GitHub: клик Далее сохраняем папку methods где-то у себя, она нам позже пригодится. Исполняемый файл(exe) Исполняемый файл(exe) Если у вас exe-файл и он скомпилирован с помощью pyinstaller, то вам очень повезло. Скачиваем PyInstaller Extractor и закидываем в папку с exe-файлом. Открываем консоль. Вводим python pyinstxtractor.py main.exe, где main.exe - это имя вашего исполняемого файла и видим подобную картину: Если возникла ошибка "Missing cookie, unsupported pyinstaller version or not a pyinstaller archive", значит этот файл собран не при помощи pyinstaller. Если все успешно, можно идти дальше. В папке с файлами появилась папка "main.exe_extracted", где "main" - имя вашего исполняемого файла. Переходим в нее и ищем файл "_pytransform.dll", если он там есть, то значит скрипт защищен PyArmor'ом. Если же данной dll-ки нету, то значит скрипт не накрыт и достать код будет еще легче. Находим Байт-код программы(файл с расширением .pyc, например main.pyc). Используем декомпилятор(pycdc.exe main.pyc, где main.pyc - имя вашего файла) и получаем: Как видим, это PyArmor. Вводи команду: pycdc.exe main.pyc > main.py Это мы сохраняем вывод из консоли в файл "main.py", далее нам нужны файлы "_pytransform.dll" и "main.py". Создаем папку с именем "pytransform", а уже в ней создаем файл "__init__.py", в нее вставляем данный код: https://pastebin.com/CKDZzdKN Также в данную папку закидываем "_pytransform.dll". И опять открываем консоль: И запускаем основной скрипт: Как видим скрипт успешно запустился. Скрипт Python Если у вас обычный скрипт Python, который также может быть накрыт PyArmor'ом, то вы также сможете получить исходный код. Обычно у него такая структура: Получаем исходный код У нас есть 3 способа, с помощью которых мы можем попробовать получить исходный код. Я использовал только 2 из них, поэтому про них и напишу. Метод 1: Из папки "method 2" мы копируем файл "code.py", и закидываем в папку с основным скриптом(который накрыт PyArmor). Далее инжектим PyInjector, подробнее будет описано в спойлере "Инжектим PyInjector", который находится ниже. У нас должна появиться папка "dump", в которой появиться файл "main.pyc"(у вас может быть другое название, зависит от названия самого скрипта) С помощью декомпилятора мы превращаем байт-код в читаемый. Подробнее про декомпилирование будет ниже. Инжектим PyInjector: Скачиваем PyInjector, переносим эти DLL в папку. Запускаем ваш скрипт и открываем Procces Hacker 2(от имени администратора). Находим наш процесс и инжектим DLL: Нажимаем по процессу ПКМ и ищем пункт "Miscellaneous", а в нем пункт "Inject DLL...", Находим DLL-ки PyInjector и инжектим. Способ 2: Из папки "method 3" мы копируем файл "bypass.py", и закидываем в папку с основным скриптом(который накрыт PyArmor). Далее мы запускаем скрипт этой командой: python bypass.py main.py - на место main.py вы ставите название вашего скрипта. Вводим несколько раз "yes". И у нас также, как и в первом способе должна появиться папка dump, в которой будет байт-код. С помощью декомпилятора мы превращаем байт-код в читаемый. Подробнее про декомпилирование будет ниже. Компилируем Decompyle++ Заходим на сайт и скачиваем CMake. Заходим в GitHub репозиторий, скачиваем его, переименуем в "pycdc" и копируем в другую папку, например в "test123". Добавляем C:\Program Files\CMake\bin к переменным вашей системной среды в PATH. Заходим в папку "test123", структура должна быть такой: Открываем консоль: И вводим команды по порядку: cmake pycdc cd ../ cmake --build test123 В папке "test123\Debug" должны появится файлы: Нам нужны только "pycdc.exe" и "pycdas.exe", они оба нам пригодятся. Вы можете добавить их в локальные переменные, чтобы легче вызвать, но можно в принципе каждый раз копировать их в папку. Вот мы и скомпилировали Decompyle++. Декомпилируем байт-код Существует несколько вариаций декомпиляторов: https://github.com/rocky/python-uncompyle6 Для Python 3.8 и ниже. https://github.com/zrax/pycdc Для всех версий Python. https://github.com/rocky/python-decompile3Для версий Python 3.7-3.8 https://github.com/greyblue9/unpyc37-3.10Для версий Python 3.7-3.10 Я использую Decompyle++, поэтому в статье о ней и рассказал. Если использовать этот декомпилятор, то нужно перейти в папку с ботом и прописать данную команду: pycdc.exe main.pyc, где main.pyc - это ваш файл с байт-кодом. В консоль должно вывести код. Есть минус, иногда данный декомпилятор может переводить не весь код и некоторые участки будут не расшифрованны. В данном случае можно ислодовать код, который выведете команда pycdas.exe main.pyc Изменено 22 фев 2023 пользователем miodonkart 0 Поделиться сообщением Ссылка на сообщение