
🛡️ Инструментарий защиты двоичных файлов Windows PE с открытым исходным кодом. Nanomite, VM-защита, анти-отладка и другое.
Secure Quality Uncrackable Runtime Encryption — Продвинутый набор инструментов для защиты бинарных файлов Windows PE.
SQURE обеспечивает многоуровневую защиту от реверс-инжиниринга, отладки и модификации:
| Функция | Описание |
|---|---|
| Nanomite | Заменяет условные ветвления на INT3, обрабатываемые VEH во время выполнения |
| XTEA-шифрование | Посекционное шифрование .text с выводом ключей из заголовков PE |
| VM-защита | Виртуализация кода в пользовательский интерпретатор байт-кода |
| Tidal Memory | Шифрование с гранулярностью страниц и дешифрацией по запросу через VEH |
| Honeypot | Функции-ловушки и код-приманка для введения в заблуждение аналитика |
| Anti-Debug | Обнаружение PEB.BeingDebugged с отравлением ключей |
| Anti-Dump | Методы предотвращения дампа памяти |
| Обнаружение песочницы | Определение VM/гипервизора через CPUID |
| Обфускация импорта | Хэширование IAT с разрешением во время выполнения |
| Проверка целостности | Каскадная цепочка хэшей для обнаружения изменений |
| Схема разделения секрета Шамира | Разделение ключа на 3 части в GF(2^64) |
| Белый ящик криптографии | Поисковые таблицы, устойчивые к атакам DCA |
# Клонировать репозиторий
git clone https://github.com/mttm2/squre.git
cd squre
# Собрать release-бинарник
cargo build --release
# CLI находится в target/release/squre-cli.exe
# Базовая защита
squre-cli protect app.exe -o protected.exe
# Максимальная защита (все функции включены)
squre-cli protect app.exe -o protected.exe --level maximum
# Пользовательский seed для воспроизводимых сборок
squre-cli protect app.exe -o protected.exe -s 0xDEADBEEF
squre-cli protect [OPTIONS] --output <OUTPUT> <INPUT>
Опции:
-o, --output <OUTPUT> Путь к выходному PE-файлу
-s, --seed <SEED> CEWE seed (hex, если не указан — случайный)
-l, --level <LEVEL> Уровень защиты: standard (по умолчанию) или maximum
Функции защиты:
--vm Включить VM-защиту (виртуализированный код)
--honeypot Включить режим honeypot (функции-ловушки, капканы)
--tidal Включить Tidal Memory (шифрование страниц)
--ultra Включить ультра-усиленный режим (16 фаз антианализа)
--harden Включить усиленный режим (полиморфные секции)
--anti-dump Включить защиту от дампа памяти
--integrity-check Включить проверку целостности кода
--direct-syscall Включить прямые системные вызовы (обход хуков пользовательского режима)
Настройка:
--junk-level <0-3> Уровень вставки мусорного кода
--fake-keys <N> Количество встраиваемых ложных ключей
--layers <1-3> Количество слоёв шифрования (XTEA/XOR/Rolling)
--obfuscate <0-3> Уровень обфускации
--no-nanomite Отключить ветвления nanomite
--no-anti-debug Отключить проверки антиотладки
--level maximum)SQURE может автоматически защищать бинарники Rust с интеграцией на уровне исходного кода:
# Собрать и защитить Rust-проект
squre-cli build ./my-rust-project -o protected.exe --level maximum
Добавьте крейт squre-core, чтобы использовать макросы защиты:
use squre_core::anti_debug;
fn main() {
// Установка обработчика антиотладки и nanomite
anti_debug!();
// Ваш код здесь
}
┌─────────────────────────────────────────────────────────────┐
│ Поток защиты │
├─────────────────────────────────────────────────────────────┤
│ 1. ОС загружает PE → точка входа = .sqpre (обфусцированный │
│ заглушка) │
│ 2. .sqpre дешифрует .sqinit, используя XOR-ключ на основе │
│ PE │
│ 3. .sqinit дешифрует .text с помощью XTEA с ключами страниц│
│ 4. Переход к оригинальной точке входа (CRT init → main) │
│ 5. anti_debug!() устанавливает VEH + загружает таблицу │
│ nanomite │
│ 6. Ветвления INT3 обрабатываются обработчиком VEH │
│ 7. Tidal Memory шифрует страницы → VEH дешифрует по запросу│
└─────────────────────────────────────────────────────────────┘
squre/
├── crates/
│ ├── squre-cli/ # CLI-инструмент для защиты бинарников
│ │ ├── src/
│ │ │ ├── main.rs # Точка входа CLI
│ │ │ ├── pe/ # Разбор и запись PE
│ │ │ └── transform/ # Преобразования защиты
│ │ │ ├── hardening.rs # Фазы антианализа
│ │ │ ├── honeypot.rs # Генерация кода-приманки
│ │ │ ├── vm_protect.rs # Компилятор VM-байткода
│ │ │ └── ...
│ └── squre-core/ # Макросы времени выполнения для интеграции с Rust
├── examples/ # Примеры проектов
└── TUTORIAL.md # Подробное руководство по использованию
SQURE предназначен для легитимной защиты ПО:
Не используйте для вредоносного ПО. Этот инструмент предназначен только для защитных целей.
Защищённые бинарники имеют минимальные накладные расходы во время выполнения:
Вклад приветствуется! Пожалуйста, не стесняйтесь отправлять issue и pull request.
git checkout -b feature/amazing)git commit -m 'Add amazing feature')git push origin feature/amazing)MIT License — подробнее см. LICENSE.
SQURE — потому что ваш код заслуживает защиты.