Skip to content

Cкрипт предназначен для шифрования исполняемых файлов Windows с использованием AES-256-CBC и создания для них загрузчика на Python.

Notifications You must be signed in to change notification settings

LavrCode/free-encryptor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

Дисклеймер

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

Автор не несет ответственности за любое неправомерное или вредоносное использование этого скрипта. Использование данного инструмента для сокрытия вредоносного ПО или для обхода систем безопасности является незаконным.

Используйте на свой страх и риск.

Описание

Этот скрипт предназначен для шифрования исполняемых файлов Windows (.exe) с использованием AES-256-CBC и создания для них загрузчика на Python.

Ключевой особенностью является то, что сгенерированный Python-загрузчик не записывает расшифрованный .exe файл на диск. Вместо этого он:

  1. Расшифровывает полезную нагрузку (payload) в памяти.
  2. Динамически разрешает необходимые функции Windows API (VirtualAlloc, VirtualProtect, CreateThread и т.д.) через GetProcAddress.
  3. Использует эти функции для ручной загрузки PE-файла (копирование секций, обработка импортов и релокаций) в новую область памяти процесса Python.
  4. Передает управление на точку входа загруженного в память кода.

Скрипт также применяет несколько техник обфускации к сгенерированному загрузчику:

  • Ключ шифрования AES и вектор инициализации (IV) генерируются случайно для каждого запуска.
  • Сгенерированный ключ/IV и зашифрованные данные дополнительно обфусцируются с помощью динамически генерируемого XOR-ключа.
  • Имена импортируемых модулей, имена функций Windows API и некоторые внутренние строки в загрузчике также обфусцируются с помощью XOR и восстанавливаются только во время выполнения.

Требования

  • Python 3.x
  • Библиотека cryptography (pip install cryptography)

Использование

python encryptor.py <путь_к_входному.exe> <путь_к_выходному.py>
  • <путь_к_входному.exe>: Путь к исполняемому файлу Windows x64 (.exe), который нужно зашифровать.
  • <путь_к_выходному.py>: Путь, по которому будет сохранен сгенерированный Python-загрузчик (.py).

Сгенерированный .py файл можно затем запустить на целевой машине.

Компиляция в .exe (pyinstaller vs nuitka)

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

  • pyinstaller: Рекомендуемый способ. Компиляция с помощью pyinstaller (командой pyinstaller output_loader.py) часто приводит к значительному снижению количества обнаружений антивирусами по сравнению с исходным .py файлом.
  • nuitka: Использование nuitka для компиляции, как правило, не дает такого же эффекта снижения детектов. Количество обнаружений скомпилированного с помощью nuitka файла может оставаться на том же уровне, что и у исходного .py скрипта, или даже незначительно увеличиваться в некоторых случаях.

Если основной целью является минимизация обнаружений, рекомендуется использовать pyinstaller для финальной компиляции загрузчика.

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

Автор

Разработано с ❤️ LavrCode

About

Cкрипт предназначен для шифрования исполняемых файлов Windows с использованием AES-256-CBC и создания для них загрузчика на Python.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages