
Фреймворк для трансформации и деобфускации Python-кода на основе AST

Noctyra — это фреймворк на основе AST, предназначенный для трансформации и деобфускации кода. Он предоставляет модульный конвейер для анализа и упрощения исходного кода Python путем разрешения сложных выражений и логики.
Проект направлен на предоставление гибкой среды для обработки абстрактного синтаксического дерева Python. Используя последовательность подключаемых трансформеров, Noctyra может:
Убедитесь, что у вас установлен uv для управления зависимостями.
uv sync
Для обработки целевого скрипта используйте следующую команду:
python main.py <input_file> [options]
Параметры:
file: Путь к входному файлу Python (обязательно).--output: Имя файла для преобразованного кода (по умолчанию: out.py).--iterations: Установить фиксированное количество проходов трансформации (по умолчанию: 0 для автоматического определения).--max-iterations: Ограничить количество проходов в автоматическом режиме (по умолчанию: 100).--debug: Включить подробное логирование для отладки трансформаций. (выглядит круто)Этот проект использует uv для управления зависимостями и Makefile для стандартных задач.
uv sync --all-extras --dev
Перед отправкой pull request или внесением изменений убедитесь, что все проверки пройдены:
make testmake formatmake typecheck(Пользователи Windows: эти команды работают автоматически через make.bat.)
Автоматические проверки выполняются при каждом push через GitHub Actions, включая линтинг с помощью Ruff, проверку типов с помощью Mypy и юнит-тестирование с помощью Pytest.
Noctyra включает внутренний движок оценки с базовыми ограничениями ресурсов. Однако при работе с недоверенным кодом настоятельно рекомендуется запускать конвейер в изолированной среде (например, в контейнере или песочнице), чтобы предотвратить возможные побочные эффекты или истощение ресурсов.