Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/umpolungfish/byvalver
ЭксплуатацияШелл-кодАнализ вредоносных программТестирование на ПроникновениеАнализ Бинарных ФайловМашинное ОбучениеRed TeamingГенерация ШеллкодаРазработка Полезной Нагрузки
GitHubumpolungfish/byvalver

byvalver

берет shellcode с bad-bytes и изгоняет их, возвращая очищенный shellcode с сохраненной функциональностью

6395 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Репозиторий

byvalver (·𐑚𐑲𐑝𐑨𐑤𐑝𐑼)

ИЗГОНИТЕЛЬ ПЛОХИХ БАЙТОВ SHELLCODE

byvalver изгоняет плохие байты с крайним предубеждением
C++ ОЧИСТКА SHELLCODE КРОСС-ПЛАТФОРМЕННЫЙ АРХИТЕКТУРЫ ЧИСТАЯ СБОРКА Звезды GitHub Форки GitHub СПОНСИРОВАТЬ НА GITHUB ПОДДЕРЖАТЬ НА KO-FI

Обзор • Быстрый старт • Интерактивный TUI • Целевое устранение bad-байтов • Профили bad-байтов • Возможности • Архитектура • Системные требования • Зависимости • Сборка • Установка • Использование • Стратегии обфускации • Стратегии денуллификации • ML-обучение • Зверинец агентов • Разработка • Устранение неполадок • Лицензия


Содержание

  • Обзор
  • Быстрый старт
    • Установка
    • Базовое использование
    • Проверка
    • Поддержка кроссплатформенных архитектур
    • Пакетная обработка
  • Интерактивный TUI
  • Целевое изгнание bad-байтов
  • Профили bad-байтов
  • Возможности
    • Расширенный механизм преобразования
    • Показатели производительности
    • Слой обфускации
    • Выбор стратегии на основе ML
    • Варианты вывода
    • Набор проверок
  • Архитектура
  • Системные требования
  • Зависимости
  • Сборка
  • Установка
  • Использование
  • Стратегии обфускации
  • Стратегии денуллификации
  • ML-обучение и валидация
  • Зверинец агентов
  • Разработка
  • Документация
  • Устранение неполадок
  • Лицензия

Обзор

byvalver — это инструмент командной строки, написанный на C, для автоматического устранения (или «изгнания») bad-байтов из шеллкода x86/x64/ARM/ARM64 с сохранением полной функциональной эквивалентности.

НОВОЕ в v4.0: Поддержка кроссплатформенных архитектур

  • Автоматический выбор режима Capstone через флаг --arch

Исправление ошибок v4.0.1:

  • Исправлено кодирование инструкции ARM SUB (правильный опкод 0x2 с битом I=1)
  • Исправлена логика can_handle стратегий ARM64 для сквозных стратегий
  • Добавлены экспериментальные предупреждения при выборе архитектуры ARM/ARM64
  • Добавлена эвристика обнаружения несоответствия архитектуры
  • Улучшена организация кода (включения перенесены в область видимости файла)

НОВОЕ в v4.2: Расширенная поддержка x64

  • Слой совместимости стратегий x86/x64: 128+ стратегий x86 теперь работают с шеллкодом x64
  • 5 новых файлов стратегий для x64: MOVABS, SBB, TEST, SSE Memory, LEA Displacement
  • Расширенное кодирование регистров: Полная поддержка R8-R15 с правильной обработкой префикса REX
  • Утилиты префикса REX: is_64bit_register(), is_extended_register(), build_rex_prefix()
  • Устраняет 100% отказов на образцах шеллкода только для x64

Инструмент использует фреймворк дизассемблирования Capstone для анализа инструкций и применяет более 175+ ранжированных стратегий преобразования для замены кода, содержащего bad-байты, эквивалентными альтернативами.

Общий фреймворк изгнания bad-байтов предоставляет 2 режима использования:

  1. Прямое указание: опция --bad-bytes позволяет указать произвольные байты для изгнания (например, --bad-bytes "00,0a,0d" для шеллкода, безопасного для новых строк)
  2. На основе профиля: опция --profile использует предварительно настроенные наборы bad-байтов для распространенных сценариев эксплуатации (например, --profile http-newline, --profile sql-injection, --profile alphanumeric-only)

Поддерживает Windows, Linux и macOS.

ОСНОВНАЯ ТЕХНОЛОГИЯ:

  • Чистая реализация на C для эффективности и низкоуровневого контроля
  • Capstone для точного дизассемблирования
  • NASM для генерации заглушек декодера
  • Модульный шаблон стратегий для расширяемых преобразований (153+ реализаций стратегий)
  • Интеграция нейронной сети для интеллектуального выбора стратегий
  • Двухфазная обработка: обфускация с последующей денуллификацией

[!NOTE] Устранение нулевых байтов (--bad-bytes "00" или по умолчанию): ХОРОШО ПРОВЕРЕНО / Общее устранение bad-байтов (--bad-bytes "00,0a,0d" и т.д.): НЕДАВНО РЕАЛИЗОВАНО

ИЗГНАНИЕ BAD-БАЙТОВ В ДЕЙСТВИИ

изгнание bad-байтов в действии

БЫСТРЫЙ СТАРТ

Начните работу с byvalver за несколько минут:

УСТАНОВКА

ВАРИАНТ 1: ИЗ GITHUB (РЕКОМЕНДУЕТСЯ)```bash curl -sSL https://raw.githubusercontent.com/umpolungfish/byvalver/main/install.sh | bash

root@kitploit:~
**Вариант 2: Сборка из исходного кода**```bash
git clone https://github.com/umpolungfish/byvalver.git
cd byvalver
make
sudo make install
sudo make install-man  # Install man page

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

удалить NULL BYTES (DEFAULT):```bash byvalver input.bin output.bin

root@kitploit:~
**ИСПОЛЬЗОВАНИЕ ПРОФИЛЕЙ BAD-BYTE:**```bash
# HTTP contexts (removes null, newline, carriage return)
byvalver --profile http-newline input.bin output.bin

# SQL injection contexts
byvalver --profile sql-injection input.bin output.bin

# Alphanumeric-only shellcode (most restrictive)
byvalver --profile alphanumeric-only input.bin output.bin

РУЧНАЯ СПЕЦИФИКАЦИЯ BAD-BYTE:```bash

banish null bytes and newlines

byvalver --bad-bytes "00,0a,0d" input.bin output.bin

root@kitploit:~
**РАСШИРЕННЫЕ ВОЗМОЖНОСТИ:**```bash
# Add obfuscation layer before denullification
byvalver --biphasic input.bin output.bin

# Enable ML-powered strategy selection
byvalver --ml input.bin output.bin

# Generate XOR-encoded shellcode with decoder stub
byvalver --xor-encode DEADBEEF input.bin output.bin

# Output in different formats
byvalver --format c input.bin output.c      # C array
byvalver --format python input.bin output.py # Python bytes
byvalver --format hexstring input.bin output.hex # Hex string

ПРОВЕРКА

Всегда проверяйте преобразованный shellcode:```bash

Check for remaining bad bytes

python3 verify_denulled.py --bad-bytes "00,0a,0d" output.bin

Verify functional equivalence

python3 verify_functionality.py input.bin output.bin

root@kitploit:~
### ПОДДЕРЖКА РАЗНЫХ АРХИТЕКТУР

`byvalver` поддерживает несколько архитектур с помощью флага `--arch`:

**x86 (32-бит Intel/AMD)** - Полностью поддерживается, более 150 стратегий```bash
byvalver --arch x86 --bad-bytes "00" x86_shellcode.bin output.bin

x64 (64-bit Intel/AMD) - Полностью поддерживается (по умолчанию)```bash byvalver --arch x64 --bad-bytes "00,0a,0d" x64_shellcode.bin output.bin

root@kitploit:~
**ARM (32-bit)** - Экспериментальная поддержка с базовыми стратегиями```bash
byvalver --arch arm --bad-bytes "00" arm_shellcode.bin output.bin

ARM64 (AArch64) - Экспериментальная поддержка с базовыми стратегиями```bash byvalver --arch arm64 --bad-bytes "00,0a" arm64_shellcode.bin output.bin

root@kitploit:~
**Примечания:**
- Поддержка ARM/ARM64 сосредоточена на основных инструкциях (MOV, арифметика, загрузка/сохранение)
- Для ARM используйте более простые профили плохих байтов (например, только нулевой байт)
- При выборе ARM/ARM64 отображаются предупреждения об экспериментальном статусе
- Базовая проверка несоответствия архитектуры предупреждает, если шелл-код, похоже, имеет неправильную архитектуру
- Автоматическое определение архитектуры запланировано в будущих версиях

### ПАКЕТНАЯ ОБРАБОТКА

Обработка целых каталогов:```bash
# Process all .bin files recursively
byvalver -r --pattern "*.bin" input_dir/ output_dir/

# Apply HTTP profile to all shellcode in directory
byvalver -r --profile http-newline input_dir/ output_dir/

ИНТЕРАКТИВНЫЙ TUI

Главное меню TUI

Пакетная обработка в TUI

byvalver включает интерактивный TUI (текстовый пользовательский интерфейс) с полным соответствием функций CLI.

TUI предоставляет интуитивно понятный визуальный интерфейс для всех операций по избавлению от bad-byte, включая:

  • пакетная обработка со статистикой в реальном времени
  • настройка ML и
  • полный просмотр файлов

Запустите TUI с флагом --menu:```bash byvalver --menu

root@kitploit:~
### ОСНОВНЫЕ ФУНКЦИИ:

TUI предоставляет 9 основных пунктов меню, охватывающих все функциональные возможности CLI:

1. **Process Single File** - Обработка отдельных файлов shellcode с визуальной обратной связью
2. **Batch Process Directory** - Пакетная обработка целых каталогов с отслеживанием хода выполнения в реальном времени
3. **Configure Processing Options** - Включение/выключение двухфазного режима, генерации PIC, ML, подробного вывода, тестового запуска
4. **Set Bad Bytes** - Ручной ввод или выбор из 13 предопределенных профилей
5. **Output Format Settings** - Выбор из 5 форматов вывода (raw, C, Python, PowerShell, hexstring)
6. **ML Metrics Configuration** - Настройка выбора стратегии ML и отслеживания метрик
7. **Advanced Options** - XOR-кодирование, тайм-ауты, лимиты, настройки проверки
8. **Load/Save Configuration** - Управление файлами конфигурации в стиле INI
9. **About byvalver** - Информация о версии и справка

### ВИЗУАЛЬНЫЙ ФАЙЛОВЫЙ ОБОЗРЕВАТЕЛЬ:

- **Directory navigation** - Навигация по каталогам с помощью клавиш со стрелками или клавиш j/k в стиле vi
- **File/directory distinction** - Различение файлов и каталогов с индикаторами [FILE] и [DIR]
- **File size display** - Отображение размера файлов в человеко-читаемом формате (B, KB, MB, GB)
- **Extension filtering** - Фильтрация по расширениям (например, *.bin)
- **Intelligent path handling** - Автоматический переход в родительский каталог, если указан путь к файлу
- **Sorted display** - Сортировка: сначала каталоги, затем в алфавитном порядке
- **Multiple selection modes** - Несколько режимов выбора:
  - File selection mode: Переход в каталоги, выбор только файлов
  - Directory selection mode: Выбор каталогов для пакетной обработки
  - Both mode: Выбор как файлов, так и каталогов

### ПАКЕТНАЯ ОБРАБОТКА С ОБНОВЛЕНИЯМИ В РЕАЛЬНОМ ВРЕМЕНИ:

Экран пакетной обработки предоставляет **обратную связь в реальном времени**:

- **Progress bar** - Индикатор выполнения, показывающий обработанные файлы (например, `[==============        ] 52/100 files`)
- **Configuration display** - Отображение активных настроек:
  - Количество плохих байтов и используемый профиль
  - Параметры обработки (`Biphasic`, `PIC`, `XOR`, ML)
  - Формат вывода
- **Live file statistics** - Статистика файлов в реальном времени с цветовой кодировкой статуса:
  - Завершено: X / Y (попыток / всего)
  - ✅ Успешно (ЗЕЛЕНЫЙ) - нет оставшихся плохих байтов
  - ❌ Неудача (КРАСНЫЙ) - ошибки или оставшиеся плохие байты
  - Процент успеха
- **Current file display** - Отображение текущего файла полужирным текстом
- **Next file preview** - Предварительный просмотр следующего файла желтым/тусклым текстом
- **Dynamic strategy statistics table** - Таблица динамической статистики стратегий:
  - **All active strategies** - Все активные стратегии (без ограничения на 10 стратегий)
  - **Full strategy names** - Полные названия стратегий (до 50 символов, без усечения)
  - Количество успехов/неудач по каждой стратегии
  - Проценты успеха
  - Цветовая кодировка по производительности (зеленый ≥80%, желтый 50-79%, красный <50%)
  - Обновления в реальном времени каждые 50 мс

### УПРАВЛЕНИЕ КОНФИГУРАЦИЕЙ:

Загрузка и сохранение конфигураций в **формате в стиле INI**:```ini
[general]
verbose = 0
quiet = 0
show_stats = 1

[processing]
use_biphasic = 0
use_pic_generation = 0
encode_shellcode = 0
xor_key = 0xDEADBEEF

[output]
output_format = raw

[bad_bytes]
bad_bytes = 00

[ml]
use_ml_strategist = 0
metrics_enabled = 0

[batch]
file_pattern = *.bin
recursive = 0
preserve_structure = 1

См. example.conf для полного шаблона конфигурации.

КОНФИГУРАЦИЯ ПЛОХИХ БАЙТОВ:

Доступно 2 способа ввода:

  1. РУЧНОЙ ВВОД — шестнадцатеричные значения через запятую (например, 00,0a,0d)
  2. ПРЕДОПРЕДЕЛЁННЫЕ ПРОФИЛИ — 13 профилей для типовых сценариев:
    • null-only, http-newline, http-whitespace
    • url-safe, sql-injection, xml-html
    • json-string, format-string, buffer-overflow
    • command-injection, ldap-injection
    • printable-only, alphanumeric-only

НАВИГАЦИЯ:

  • Стрелки (↑↓) или j/k (в стиле vi): перемещение между пунктами меню
  • Enter: выбор выделенного пункта
  • q: выход из приложения или отмена операции
  • 0-9: быстрый выбор пункта меню по номеру
  • Пробел: выбор текущего каталога (в режиме просмотра каталогов)

ТРЕБОВАНИЯ:

Для работы в интерактивном режиме требуется установить библиотеку ncurses в вашей системе:```bash

Ubuntu/Debian

sudo apt install libncurses-dev

CentOS/RHEL/Fedora

sudo dnf install ncurses-devel

macOS (with Homebrew)

brew install ncurses

root@kitploit:~
The application will automatically detect if ncurses is available and enable TUI support accordingly.

### BUILD OPTIONS:

The TUI support is conditionally compiled based on ncurses availability:

- Default build: `make` - Includes TUI if ncurses is available
- Force TUI build: `make with-tui` - Builds with TUI support (fails if ncurses not available)
- Exclude TUI: `make no-tui` - Builds without TUI support for smaller binary

### EXAMPLE WORKFLOWS:

**SINGLE FILE PROCESSING:**
1. Launch TUI: `byvalver --menu`
2. Select "1. Process Single File"
3. Browse for input file using visual file browser
4. Browse for output file location
5. Start processing and view results

**BATCH PROCESSING:**
1. Launch TUI: `byvalver --menu`
2. Select "2. Batch Process Directory"
3. Browse for input directory containing shellcode files
4. Browse for output directory
5. Configure file pattern (default: <file>.bin) and recursive option
6. Start batch processing and watch live progress with strategy statistics

**CONFIGURATION MANAGEMENT:**
1. Configure all options in the TUI (bad bytes, output format, ML, etc.)
2. Select "8. Load/Save Configuration"
3. Save current configuration to a file (e.g., `my_config.conf`)
4. Later: Load the configuration file to restore all settings

### PERFORMANCE NOTES:

- **Single file processing**: Instant visual feedback, <1 second for typical shellcode
- **Batch processing**: 50ms delay between files for visual updates
- **Large directories (100+ files)**: Scanning may take 1-2 seconds
- **Strategy initialization**: 2-5 seconds on first run (one-time cost per session)

### TERMINAL COMPATIBILITY:

The TUI has been tested with:
- GNOME Terminal
- Konsole
- xterm
- iTerm2 (macOS)
- Windows Terminal (WSL)
- tmux/screen (works but may have color limitations)

**Minimum recommended terminal size**: 80x24 characters (100x30 or larger recommended for full strategy table during batch processing)

For complete TUI documentation, troubleshooting, and advanced usage, see [TUI_README.md](https://github.com/umpolungfish/byvalver/blob/HEAD/TUI_README.md).

## TARGETED BAD-BYTE BANISHMENT

### OVERVIEW

The `--bad-bytes` option allows you to specify any set of bytes to banish from your shellcode.

### IMPLEMENTATION DETAILS

`byvalver` operates by:
1. Parsing the comma-separated hex byte list (e.g., `"00,0a,0d"`)
2. Using an O(1) bitmap lookup to identify bad bytes in instructions
3. Applying the same 153+ transformation strategies used for null-byte elimination
4. Verifying that the output does not contain the specified bad bytes

### EXPECTED BEHAVIOR

- **Null bytes only** (`--bad-bytes "00"` or default): High success rate (100% on test corpus)
- **Multiple bad bytes** (`--bad-bytes "00,0a,0d"`): Success rate may vary significantly depending on:
  - Which specific bytes are marked as bad
  - Complexity of the input shellcode
  - Frequency of bad bytes in the original shellcode
  - Whether effective alternative encodings exist for the specific bad byte set

### RECOMMENDATIONS

1. **For production use:** Stick with default null-byte banishment mode
2. **For experimentation:** Test the `--bad-bytes` feature with your specific use case and validate the output
3. **Always verify:** Use `verify_denulled.py --bad-bytes "XX,YY"` to confirm all bad bytes were eliminated
4. **Expect variability:** Some shellcode may not be fully cleanable with certain bad byte sets

### FUTURE IMPROVEMENTS

The generic bad-byte feature provides a foundation for:
- Strategy optimization for specific bad byte patterns
- Automated discovery of new strategies targeting common bad byte combinations
- ML model retraining with diverse bad byte training data
- Extended testing and validation

> [!CAUTION]
> Using `--bad-bytes` with multiple bad bytes significantly increases the complexity of the transformation task. Some shellcode may become impossible to transform if too many bytes are marked as bad, as the tool may run out of alternative encodings. Start with small bad byte sets (e.g., `"00,0a"`) and expand gradually while testing the output. Always verify the result with `verify_denulled.py` before deployment.

## BAD-BYTE PROFILES

### OVERVIEW

Users can also choose **bad-byte profiles** - pre-configured sets of bytes for common exploit scenarios. Instead of manually specifying hex values, use profile names that match your context.

### AVAILABLE PROFILES

| Profile | Difficulty | Bad Bytes | Use Case |
|---------|-----------|-----------|----------|
| `null-only` | ░░░░░ Trivial | 1 | Classic buffer overflows (default) |
| `http-newline` | █░░░░ Low | 3 | `HTTP` headers, line-based protocols |
| `http-whitespace` | █░░░░ Low | 5 | `HTTP` parameters, command injection |
| `url-safe` | ███░░ Medium | 23 | `URL` parameters, `GET` requests |
| `sql-injection` | ███░░ Medium | 5 | `SQL` injection contexts |
| `xml-html` | ███░░ Medium | 6 | `XML`/`HTML` injection, `XSS` |
| `json-string` | ███░░ Medium | 34 | `JSON` API injection |
| `format-string` | ███░░ Medium | 3 | Format string vulnerabilities |
| `buffer-overflow` | ███░░ Medium | 5 | Stack/heap overflows with filtering |
| `command-injection` | ███░░ Medium | 20 | Shell command injection |
| `ldap-injection` | ███░░ Medium | 5 | `LDAP` queries |
| `printable-only` | ████░ High | 161 | Text-based protocols (printable ASCII only) |
| `alphanumeric-only` | █████ Extreme | 194 | Alphanumeric-only shellcode (0-9, A-Z, a-z) |

### USAGE```bash
# List all available profiles
byvalver --list-profiles

# Use a specific profile
byvalver --profile http-newline input.bin output.bin

# Combine with other options
byvalver --profile sql-injection --biphasic --format c input.bin output.c

ПРИМЕРЫ ПРОФИЛЕЙ

HTTP-контексты (устраняет NULL, LF, CR):```bash byvalver --profile http-newline payload.bin http_safe.bin

root@kitploit:~
**SQL Injection** (удаляет NULL, кавычки, точки с запятой):```bash
byvalver --profile sql-injection payload.bin sql_safe.bin

Только буквенно-цифровые (экстремальная сложность - разрешены только 0-9, A-Z, a-z):```bash byvalver --profile alphanumeric-only payload.bin alphanum.bin

root@kitploit:~
Для подробной документации по профилям см. [docs/BAD_BYTE_PROFILES.md](https://github.com/umpolungfish/byvalver/blob/HEAD/docs/BAD_BYTE_PROFILES.md).


## ВОЗМОЖНОСТИ

### ВЫСОКИЙ УРОВЕНЬ УСТРАНЕНИЯ NULL-БАЙТОВ
<div align="center">
  <strong>Достигнуто 100% устранение null-байтов на разнообразном тестовом корпусе, представляющем распространённые и сложные источники null.</strong>
</div>

> Этот показатель успеха применяется конкретно к устранению null-байтов (`\x00`), которое было тщательно протестировано и оптимизировано.

### ПРОДВИНУТЫЙ ДВИЖОК ТРАНСФОРМАЦИЙ
Более 170 реализаций стратегий, охватывающих практически все распространённые источники null-байтов и общие шаблоны плохих байтов (в версиях v3.0, v3.6, v3.7, v3.8, v4.0 и v4.1 добавлены новые семейства стратегий):
- `CALL/POP` и загрузка непосредственных значений на основе стека
- Обход `PEB` с хэшированным разрешением API
- Продвинутое хэш-основанное разрешение API со сложными алгоритмами
- Многоэтапный обход `PEB` для загрузки нескольких DLL
- Обнуление через `SALC`, `XCHG` и флаги
- `LEA` для арифметической подстановки
- Построение значений через сдвиг и арифметику
- Многократный `PUSH` для создания строк
- Построение структур Windows на основе стека
- Создание строк на основе стека с продвинутыми шаблонами
- Перезапись `SIB` и смещений
- Обработка смещений условных переходов
- Переназначение и цепочки регистров
- Улучшенный `SALC`+`REP STOSB` для инициализации буферов
- Продвинутые трансформации строковых операций
- Цепочки кодирования атомарных операций
- Кодирование непосредственных значений на основе стека `FPU`
- Байтовая трансляция на основе таблицы `XLAT`
- Цепочки сохранения флагов `LAHF`/`SAHF`
- **НОВОЕ в v3.6**: Обфускация арифметики `BCD` (`AAM`/`AAD`)
- **НОВОЕ в v3.6**: Альтернативы стекового кадра `ENTER`/`LEAVE`
- **НОВОЕ в v3.6**: Подсчёт битов `POPCNT`/`LZCNT`/`TZCNT` для констант
- **НОВОЕ в v3.6**: Загрузка непосредственных значений в регистры `SIMD` `XMM`
- **НОВОЕ в v3.6**: Трансформации переходов с проверкой на ноль через `JECXZ`/`JRCXZ`
- **НОВОЕ в v3.7**: Устранение плохих байтов в кодах операций условных переходов (JE/JNE/JG/JL с плохими опкодами)
- **НОВОЕ в v3.7**: Устранение плохих байтов в опкодах передачи между регистрами (альтернативы MOV/XCHG)
- **НОВОЕ в v3.7**: Устранение плохих байтов в указателе стекового кадра (альтернативы PUSH/POP EBP)
- **НОВОЕ в v3.7**: Устранение плохих байтов в байтах ModR/M и SIB (альтернативные комбинации регистров)
- **НОВОЕ в v3.7**: Частичный плохой байт в многобайтовых непосредственных значениях (оптимизация вращением)
- **НОВОЕ в v3.7**: Плохой байт в непосредственных значениях битовых операций (AND/OR/XOR/TEST с регистрами)
- **НОВОЕ в v3.7**: Подстановка однобайтовых опкодов (альтернативы INC/DEC/PUSH/POP)
- **НОВОЕ в v3.7**: Плохой байт в префиксе строковых инструкций (преобразование префикса REP в цикл)
- **НОВОЕ в v3.7**: Плохой байт в префиксе размера операнда (преобразование 16-бит в 32-бит)
- **НОВОЕ в v3.7**: Обнаружение плохих байтов сегментных регистров (обнаружение префиксов FS/GS)
- **НОВОЕ в v3.8**: Система генерации SIB с учётом профиля (устраняет жёстко заданный байт SIB 0x20)
- **НОВОЕ в v3.8**: Критические исправления для обработки условных переходов и оптимизации частичных регистров
 - **НОВОЕ в v3.9**: Полиморфная вставка NOP с несколькими эквивалентами NOP
 - **НОВОЕ в v3.9**: Развёртывание констант для обфускации непосредственных значений
 - **НОВОЕ в v3.9**: Обфускация переименования регистров с шаблонами XCHG
 - **НОВОЕ в v3.9**: Обфускация переполнения стека для арифметических операций
 - **НОВОЕ в v3.9**: Переупорядочивание инструкций со вставкой NOP
 - **НОВОЕ в v3.9**: Стратегия самоизменения во время выполнения (базовая реализация)
 - **НОВОЕ в v3.9**: Генерация перекрывающихся инструкций
  - **НОВОЕ в v4.0**: Кросс-архитектурная поддержка ARM/ARM64 с динамическим выбором режима Capstone
  - **НОВОЕ в v4.0**: Кодирование непосредственных значений ARM с трансформациями MVN
  - **НОВОЕ в v4.0**: Стратегии MOV для ARM (оригинальная, избегание null на основе MVN)
  - **НОВОЕ в v4.0**: Арифметические стратегии ARM (сложение ADD с трансформациями SUB)
  - **НОВОЕ в v4.0**: Стратегии работы с памятью ARM (пропуск LDR/STR)
  - **НОВОЕ в v4.0**: Стратегии ветвления ARM (пропуск B/BL)
  - **НОВОЕ в v4.1**: Цепочки накопления флагов SETcc (устранение условных переходов)
  - **НОВОЕ в v4.1**: Полиморфное построение непосредственных значений (несколько вариантов кодирования)
  - **НОВОЕ в v4.1**: Оптимизация цепочек зависимостей регистров (многоинструкционные шаблоны)
  - **НОВОЕ в v4.1**: Оптимизация относительной адресации RIP (улучшения PIC для x64)
  - **НОВОЕ в v4.1**: Адресация памяти с отрицательным смещением (альтернативы смещений)
  - **НОВОЕ в v4.1**: Переплетение многобайтовых NOP (варианты обфускации NOP)
  - **НОВОЕ в v4.1**: Построение констант с помощью манипуляции битами (BSWAP, BSF, POPCNT, BMI2)
  - **НОВОЕ в v4.2**: Уровень совместимости стратегий x86/x64 (позволяет использовать 128+ стратегий x86 на x64)
  - **НОВОЕ в v4.2**: Стратегии 64-битных непосредственных значений MOVABS (REX.W MOV с построением через XOR/ADD)
  - **НОВОЕ в v4.2**: Стратегии непосредственного нуля через SBB (преобразование SBB AL/AX/EAX, 0)
  - **НОВОЕ в v4.2**: Стратегии больших непосредственных значений TEST (TEST EAX/RAX, imm32 с регистровыми операндами)
  - **НОВОЕ в v4.2**: Стратегии операций с памятью SSE (устранение null через MOVUPS/MOVAPS/MOVDQU/MOVDQA)
  - **НОВОЕ в v4.2**: Стратегии смещений LEA для x64 (обработка больших смещений с префиксами REX)
  - **НОВОЕ в v4.2**: Расширенная поддержка регистров (утилиты кодирования регистров R8-R15)
 - Всесторонняя поддержка `MOV`, `ADD/SUB`, `XOR`, `LEA`, `CMP`, `PUSH` и других

Движок использует многопроходную обработку (обфускация → денуллизация) с надёжными механизмами отката для граничных случаев

**v3.8 КРИТИЧЕСКИЕ УЛУЧШЕНИЯ**: Многостратегическое исправление для профиля http-whitespace
- **Проблема**: Жёстко заданные плохие байты вызвали 79,1% отказов (125/158 файлов не прошли)
- **Выявленные коренные причины**:
  - 45+ случаев жёстко заданного байта SIB 0x20 (ПРОБЕЛ) в 15 файлах стратегий
  - Базовая логика условных переходов, использующая смещения пропуска плохих байтов без проверки
  - Оптимизация частичных регистров, записывающая плохие байты напрямую
  - Дополнительные жёстко заданные плохие байты в 5 файлах стратегий с высоким приоритетом
- **Реализованные решения**:
  - Централизованная генерация SIB с учётом профиля и трёхуровневым откатом (STANDARD → DISP8 → PUSHPOP)
  - Динамическое заполнение NOP для смещений пропуска условных переходов во избежание плохих байтов
  - Интеллектуальное построение байтов для значений частичных регистров с использованием декомпозиции
  - Систематическая замена жёстко заданных байтов на альтернативы с учётом профиля
- **Влияние**: **79,1% отказов → 35,4% отказов** (успешность: **20,9% → 64,6%**)
- **Исправленные файлы**: 102 файла теперь обрабатываются успешно (+69 файлов, улучшение в 3.09 раза)
- **Показатели успешности стратегий**:
  - Оптимизация частичных регистров: 25% → **100%** (12/12 трансформаций)
  - mov_mem_disp_enhanced: 0% → **98,5%** (1605/1629 трансформаций)
  - indirect_call_mem: 0% → **98,5%** (135/137 трансформаций)
  - indirect_jmp_mem: 0% → **98,5%** (134/136 трансформаций)
- **Производительность**: Нулевые накладные расходы благодаря интеллектуальному кэшированию, среднее увеличение размера менее 2%

### ПОКАЗАТЕЛИ ПРОИЗВОДИТЕЛЬНОСТИ

Реальные данные производительности при обработке 184 различных образцов шелл-кода:```
📊 Batch Processing Statistics:

Success Rate:            184/184             █████████████████████████   100.00%
Files Processed:         184                 █████████████████████████   100.00%
Failed:                  0                   ░░░░░░░░░░░░░░░░░░░░░░░░░   00.00%
Skipped:                 0                   ░░░░░░░░░░░░░░░░░░░░░░░░░   00.00%

Сервисы, предоставляющие возможность создания временных адресов электронной почты:

  • mail-temp.com
  • TempEmailFree
  • Firefox Relay
  • Email On Deck
  • 10 Minute Mail
  • 10 minutes Mail
  • Guerrilla Mail
  • Temp Mail
  • Mega TempMail
  • TempMail

— Данные могут быть доступны администрации сервиса``` 🧠 ML Strategy Selection Performance:

Processing Speed: Instructions/sec: 19.5 inst/sec ████████████░░░░░░░░░░░░░ Total Instructions: 20,760 Session Duration: 1,067 seconds

Null-Byte Elimination: Eliminated: 18,636/20,760 ██████████████████████░░░ 89.77% Strategies Applied: 20,129 Success Rate: 92.57% ███████████████████████░░ 92.57%

Learning Progress: Positive Feedback: 18,636 ███████████████████████░░ 92.57% Negative Feedback: 1,493 █░░░░░░░░░░░░░░░░░░░░░░░░ 07.43% Total Iterations: 40,889 Avg Confidence: 0.0015 ░░░░░░░░░░░░░░░░░░░░░░░░░ 00.15%

root@kitploit:~
### Список show

После загрузки скриптов вы можете загружать и использовать их как обычно. Кроме того, вы можете просматривать их с помощью `show`.

| Команда                     | Раздел        | Описание                                                |
| :-------------------------- | :------------ | :----------------------------------------------------- |
| `show scripts`              | Все           | Показать все доступные скрипты                          |
| `show scripts [pattern]`    | Все           | Показать скрипты, соответствующие заданному шаблону     |
| `show info [script-name]`   | Все           | Показать информацию о конкретном скрипте                |
| `show encoder`              | Все           | Показать кодеры                                         |
| `show encoder [pattern]`    | Все           | Показать кодеры, соответствующие заданному шаблону      |
| `show info [encoder-name]`  | Все           | Показать информацию о конкретном кодере                 |
| `show nops`                 | Все           | Показать nop-модули                                     |
| `show nops [module-nops]`   | Все           | Показать nop-модули, соответствующие заданному шаблону  |
| `show info [module-nops]`   | Все           | Показать информацию о конкретном nop-модуле             |
| `show payloads`             | Все           | Показать доступные полезные нагрузки для эксплойтов     |
| `show payloads [pattern]`   | Все           | Показать полезные нагрузки, соответствующие заданному шаблону |
| `show info [payload-name]`  | Все           | Показать информацию о конкретной полезной нагрузке      |
| `show exploits`             | Все           | Показать массив эксплойтов                              |
| `show exploits [pattern]`   | Все           | Показать эксплойты, соответствующие заданному шаблону   |
| `show info [exploit-name]`  | Все           | Показать информацию о конкретном эксплойте              |
| `show info [exploit-name]`  | Все           | Показать информацию о целях в конкретном эксплойте      |
| `show targets`              | Все           | Показать все цели эксплойтов                            |
| `show targets [exploit-name]`| Все          | Показать цели для конкретного эксплойта                 |
| `show info [exploit-name]`  | Все           | Показать информацию о конкретном эксплойте              |
| `show auxiliary`            | Все           | Показать массив вспомогательных модулей                 |
| `show auxiliary [pattern]`  | Все           | Показать вспомогательные модули, соответствующие заданному шаблону |
| `show info [aux-name]`      | Все           | Показать информацию о конкретном вспомогательном модуле |
| `show post`                 | Все           | Показать массив пост-эксплуатационных модулей           |
| `show post [pattern]`       | Все           | Показать пост-эксплуатационные модули, соответствующие заданному шаблону |
| `show info [post-name]`     | Все           | Показать информацию о конкретном пост-эксплуатационном модуле |
| `show advanced`             | Все           | Показать расширенные параметры для активного модуля     |```
🏆 Top Performing Denullification Strategies:

Strategy                                  Attempts    Success%    Confidence
--------                                  --------    --------    ----------
ret_immediate                                  134    █████████████░░░░░░░░░░░░   50.00%
MOVZX/MOVSX Null-Byte banishment              162    █████████████░░░░░░░░░░░░   50.00%
transform_mov_reg_mem_self                     774    █████████████░░░░░░░░░░░░   50.00%
cmp_mem_reg_null                                96    ████████████░░░░░░░░░░░░░   46.88%
cmp_mem_reg                                    264    ████████████░░░░░░░░░░░░░   46.97%
lea_disp_null                                 3900    ███████████░░░░░░░░░░░░░░   45.38%
transform_add_mem_reg8                        2012    ███████████░░░░░░░░░░░░░░   43.49%
Push Optimized                                4214    ███████░░░░░░░░░░░░░░░░░░   29.31%
ModRM Byte Null Bypass                          82    ██████░░░░░░░░░░░░░░░░░░░   25.61%
conservative_arithmetic                       5172    █████░░░░░░░░░░░░░░░░░░░░   21.37%
arithmetic_addsub_enhanced                    1722    ████░░░░░░░░░░░░░░░░░░░░░   18.12%
PUSH Immediate Null-Byte banishment          3066    ████░░░░░░░░░░░░░░░░░░░░░   16.54%
SIB Addressing                                9560    ████░░░░░░░░░░░░░░░░░░░░░   16.03%
generic_mem_null_disp_enhanced               22130    ███░░░░░░░░░░░░░░░░░░░░░░   15.52%
SALC-based Zero Comparison                    1654    ███░░░░░░░░░░░░░░░░░░░░░░   12.88%

Модули, которые должны быть загружены перед PentestHardware``` ⚡ Processing Efficiency:

Learning Rate: 1.97 feedback/instruction Weight Update Avg: 0.042650 Weight Update Max: 0.100000 Total Weight Updates: 1724.68

Strategy Coverage: Total Strategies: 153+ Strategies Activated: 117 ████████████████████████░ 95.90% Zero-Attempt: 5 █░░░░░░░░░░░░░░░░░░░░░░░░ 04.10%

root@kitploit:~
### OBFUSCATION LAYER
`--biphasic` mode adds anti-analysis obfuscation prior to denulling:
- Control flow flattening
- Dispatcher patterns
- Register reassignment
- State obfuscation
- Dead code insertion
- NOP sleds
- Instruction substitution
- Equivalent operations
- Stack frame manipulation
- API resolution hiding
- String Encoding
- Constant Encoding
- Anti-debugging
- VM detection techniques

### ML-POWERED STRATEGY SELECTION

> **Maturity: Beta v2.0** — Trained on null-byte elimination datasets. Needs retraining for generic bad-byte use cases.

**Architecture**:
- **One-hot instruction encoding** (51 dims) replaces scalar instruction IDs
- **Context window** with sliding buffer of 4 instructions (current + 3 previous)
- **Fixed feature extraction** with stable 84-dimensional layout per instruction
- **Stable strategy registry** ensuring consistent NN output mapping
- **Full backpropagation** through all layers (input→hidden→output)
- **Correct gradient computation** for softmax + cross-entropy loss
- **Output masking** filters invalid strategies before softmax
- **He/Xavier initialization** for proper weight initialization
- 3-layer feedforward neural network (336→512→200)
- Adaptive learning from success/failure feedback
- Tracks predictions, accuracy, and confidence
- Graceful fallback to deterministic ordering

> [!WARNING]
> ML mode is experimental and requires further training/validation with the new architecture.

### BATCH PROCESSING
- Recursive directory traversal (`-r`)
- Custom file patterns (`--pattern "*.bin"`)
- Structure preservation or flattening
- Continue-on-error or strict modes
- Compatible with all options (biphasic, PIC, `XOR`, etc.)
- **Enhanced output**:
  - Per-file size transformations with ratios
  - Detailed bad byte identification on failures
  - Success/failure percentages in summary
  - Failed files list (first 10 shown inline)
  - Strict success definition: files with remaining bad bytes marked as failed

**BATCH PROCESSING OUTPUT EXAMPLE:**```
===== BATCH PROCESSING SUMMARY =====
Total files:       8
Successfully processed: 1 (12.5%)
Failed:            7 (87.5%)
Skipped:           0

Total input size:  650 bytes
Total output size: 764 bytes
Average size ratio: 1.18x

Bad bytes:    5 configured
Configured set:    0x00, 0x09, 0x0a, 0x0d, 0x20

FAILED FILES (7):
  - shellcode1.bin
  - shellcode2.bin
  ...

[!TIP] Для пакетной обработки больших коллекций шеллкода используйте --no-continue-on-error, чтобы на раннем этапе выявить проблемные файлы, затем успешно обработайте с помощью --pattern, исключив сбои. Флаг --verbose помогает отслеживать прогресс и определять, какие стратегии лучше всего подходят для вашего конкретного корпуса шеллкода. Файлы считаются успешными, только если они содержат ноль оставшихся плохих байтов — частичный успех считается неудачей.

ВАРИАНТЫ ВЫВОДА

  • Форматы: raw binary, C array, Python bytes, hex string
  • Кодирование XOR с заглушкой декодера (--xor-encode 0xDEADBEEF)
  • Позиционно-независимый код (--pic)
  • Автоматическое создание выходной директории

СТАТИСТИКА

При использовании флага --stats byvalver предоставляет подробную аналитику:

СТАТИСТИКА ИСПОЛЬЗОВАНИЯ СТРАТЕГИЙ:

  • Показывает, какие стратегии трансформации применялись
  • Показатели успеха/неудач для каждой стратегии
  • Количество применений и средний размер вывода для каждой стратегии

АНАЛИЗ СЛОЖНОСТИ ФАЙЛОВ:

  • Наиболее сложные файлы (по количеству инструкций)
  • Самые большие/маленькие файлы по входному размеру
  • Файлы с наибольшим коэффициентом расширения
  • Статистика уничтожения плохих байтов для каждого файла

СВОДКА ПАКЕТНОЙ ОБРАБОТКИ:

  • Проценты успешных/неудачных попыток
  • Подробная конфигурация плохих байтов
  • Список файлов с ошибками с возможностью сохранить полный список

ПРИМЕР ВЫВОДА:``` ===== BATCH PROCESSING SUMMARY ===== Total files: 162 Successfully processed: 131 (80.9%) Failed: 31 (19.1%) Skipped: 0

Total input size: 35772920 bytes Total output size: 81609 bytes Average size ratio: 0.00x

Bad bytes: 3 configured Configured set: 0x00, 0x0a, 0x0d

FAILED FILES (31):

  • ./winwin.bin
  • ./stairslide_secure.bin ...

📊 DETAILED STATISTICS

STRATEGY USAGE STATISTICS: ┌─────────────────────────────────────────┬─────────┬─────────┬──────────────┬────────────────┐ │ Strategy Name │ Success │ Failure │ Applications │ Avg Output Size│ ├─────────────────────────────────────────┼─────────┼─────────┼──────────────┼────────────────┤ │ push_immediate_strategy │ 45 │ 3 │ 48 │ 12.34 │ │ mov_reg_mem_self │ 32 │ 1 │ 33 │ 8.21 │ │ ... │ ... │ ... │ ... │ ... │ └─────────────────────────────────────────┴─────────┴─────────┴──────────────┴────────────────┘

FILE COMPLEXITY ANALYSIS: Most Complex Files (by instruction count):

  • ./complex_payload.bin: 1245 instructions, 4096 -> 5201 bytes (1.27x)

Largest Files (by input size):

  • ./large_payload.bin: 8192 bytes input, 10485 bytes output (1.28x)

Smallest Files (by input size):

  • ./tiny_shellcode.bin: 64 bytes input, 89 bytes output (1.39x)

Largest Expansion (by size ratio):

  • ./expanded.bin: 512 -> 1024 bytes (2.00x expansion)
root@kitploit:~
### НАБОР ДЛЯ ВЕРИФИКАЦИИ
Инструменты на Python для проверки:
- `verify_denulled.py`: Обеспечивает отсутствие недопустимых байтов (поддерживает `--bad-bytes` для пользовательской проверки)
- `verify_functionality.py`: Проверяет паттерны выполнения
- `verify_semantic.py`: Проверяет эквивалентность

## АРХИТЕКТУРА

`byvalver` использует модульный дизайн на основе паттерна стратегия:
- Проход 1: (Опционально) Обфускация для защиты от анализа
- Проход 2: Денуллификация (удаление нулевых байтов)
- Слой машинного обучения для оптимизации стратегии
- Пакетная система для масштабируемой обработки

<div align="center">
  <img src="https://assets.kitploit.com/production/public/readmes/9982/8d3a1e20481460fedecaecda6f87bc21355fbbb1f1ef58d7fef4427eda36a381.png" alt="Strategy Categories Taxonomy" width="700">
</div>

## СИСТЕМНЫЕ ТРЕБОВАНИЯ

- **ОС**: Linux (Ubuntu/Debian/Fedora), macOS (с Homebrew), Windows (через WSL/MSYS2)
- **ЦП**: x86/x64 с современными инструкциями
- **ОЗУ**: 1GB свободно
- **Диск**: 50MB свободно
- **Инструменты**: компилятор `C`, Make, Git (рекомендуется)

## ЗАВИСИМОСТИ

- **Основные**: GCC/Clang, GNU Make, `Capstone` (v4.0+), `NASM` (v2.13+), xxd
- **Опционально**: Clang-Format, Cppcheck, Valgrind
- **Обучение ML**: Математические библиотеки (включены)

### КОМАНДЫ УСТАНОВКИ

**Ubuntu/Debian:**```bash
sudo apt update
sudo apt install build-essential nasm xxd pkg-config libcapstone-dev clang-format cppcheck valgrind

macOS (Homebrew) — macOS Tahoe 26 (И НОВЕЕ):```bash

Core build deps

brew install capstone nasm pkg-config

xxd is typically already present at /usr/bin/xxd on macOS.

If it isn't available for some reason, install Vim (xxd is bundled with it):

brew install vim

root@kitploit:~
### ИСПРАВЛЕНИЯ СБОРКИ ДЛЯ macOS/Homebrew (ИЗМЕНЕНИЯ В РЕПО)
Недавно были внесены изменения для улучшения совместимости с macOS/Homebrew (особенно на Apple silicon с префиксом Homebrew `/opt/homebrew`):
- Обновлены `Makefile` и `makefile` для **использования `CPPFLAGS` во время компиляции** и **`LDLIBS` во время компоновки**, чтобы соблюдались флаги Capstone, обнаруженные `pkg-config`.
- Нормализован путь включения Capstone, выдаваемый `pkg-config` от Homebrew, с `.../include/capstone` на `.../include`, чтобы `#include <capstone/capstone.h>` проекта разрешался корректно.

Сводка различий (высокий уровень):
- `$(CC) $(CFLAGS) -c ...` → `$(CC) $(CFLAGS) $(CPPFLAGS) -c ...`
- `$(CC) $(CFLAGS) -o ... $(LDFLAGS)` → `$(CC) $(CFLAGS) $(CPPFLAGS) -o ... $(LDFLAGS) $(LDLIBS)`
- `CAPSTONE_CFLAGS := pkg-config --cflags capstone` → нормализовано до пути включения, совместимого с `<capstone/capstone.h>`

### УСТРАНЕНИЕ НЕИСПРАВНОСТЕЙ (macOS)```bash
# Verify xxd is available (macOS usually ships /usr/bin/xxd)
command -v xxd

# Verify Capstone is discoverable via pkg-config
pkg-config --cflags capstone
pkg-config --libs capstone

# Clean rebuild
make clean
make

Windows (WSL): То же, что и Ubuntu/Debian.

BUILDING

Используйте Makefile для сборки:

  • Default: make (оптимизированный исполняемый файл)
  • Debug: make debug (символы, санитайзеры)
  • Release: make release (-O3, native)
  • Static: make static (автономный)
  • ML Trainer: make train (bin/train_model)
  • Clean: make clean или make clean-all

Customization:```bash make CC=clang CFLAGS="-O3 -march=native" CPPFLAGS="$(pkg-config --cflags capstone)"

root@kitploit:~
Просмотр конфигурации: `make info`

## УСТАНОВКА

Глобальная установка:```bash
sudo make install
sudo make install-man

Удаление:```bash sudo make uninstall

root@kitploit:~
С GitHub:```bash
curl -sSL https://raw.githubusercontent.com/umpolungfish/byvalver/main/install.sh | bash

ИСПОЛЬЗОВАНИЕ```bash

byvalver [OPTIONS] [output]

root@kitploit:~
- Вход/выход могут быть файлами или каталогами (auto-batch)

**КЛЮЧЕВЫЕ ОПЦИИ:**
- `-h, --help`: Справка
- `-v, --version`: Версия
- `-V, --verbose`: Подробный
- `-q, --quiet`: Тихий
- `--bad-bytes BYTES`: Шестнадцатеричные байты через запятую для изгнания (по умолчанию: "00")
- `--profile NAME`: Использовать предопределенный профиль плохих байтов (например, http-newline, sql-injection)
- `--list-profiles`: Список всех доступных профилей плохих байтов
- `--biphasic`: Обфускация + denull
- `--pic`: Позиционно-независимый
- `--ml`: Выбор стратегии ML
- `--xor-encode KEY`: XOR с заглушкой
- `--format FORMAT`: raw|c|python|hexstring
- `-r, --recursive`: Рекурсивный пакет
- `--pattern PATTERN`: Глоб файлов
- `--no-preserve-structure`: Уплощить вывод
- `--no-continue-on-error`: Остановиться при ошибке
- `--menu`: Запустить интерактивное меню TUI

**ПРИМЕРЫ:**```bash
# Default: banish null bytes only (well-tested, recommended)
byvalver shellcode.bin clean.bin

# v3.0 NEW: List available bad-byte profiles
byvalver --list-profiles

# v3.0 NEW: Use predefined profile for HTTP contexts (eliminates 0x00, 0x0A, 0x0D)
byvalver --profile http-newline shellcode.bin clean.bin

# v3.0 NEW: Use profile for SQL injection contexts
byvalver --profile sql-injection shellcode.bin clean.bin

# v3.0 NEW: Use profile for URL-safe shellcode
byvalver --profile url-safe shellcode.bin clean.bin

# v3.0 NEW: Manual bad-byte specification (experimental - not extensively tested)
byvalver --bad-bytes "00,0a,0d" shellcode.bin clean.bin

# Combined with other features
byvalver --profile http-newline --biphasic --ml input.bin output.bin

# Batch processing with profile
byvalver -r --profile http-whitespace --pattern "*.bin" shellcodes/ output/

# Launch interactive TUI mode
byvalver --menu

СТРАТЕГИИ ОБФУСКАЦИИ

Проход обфускации byvalver (включаемый через --biphasic) применяет методы противодействия анализу:

ОСНОВНЫЕ ТЕХНИКИ ОБФУСКАЦИИ

  • MOV Register Exchange: XCHG/push-pop паттерны
  • MOV Immediate: Арифметическая декомпозиция
  • Arithmetic Substitution: Комплексные эквиваленты
  • Memory Access: Косвенность и LEA
  • Stack Operations: Ручное управление ESP
  • Conditional Jumps: SETcc и перемещения
  • Unconditional Jumps: Косвенные механизмы
  • Calls: PUSH +

Приоритеты отдают предпочтение защите от анализа (высокий) перед простыми заменами (низкий).

См. OBFUSCATION_STRATS для подробной документации стратегий.

СТРАТЕГИИ DENULLIFICATION

Основной проход denull использует более 170 стратегий:

СТРАТЕГИИ MOV

  • Исходный прямой проход
  • Декомпозиции NEG, NOT, XOR, Shift, ADD/SUB

АРИФМЕТИКА

  • Исходные, NEG, XOR, ADD/SUB

ПЕРЕХОДЫ/УПРАВЛЕНИЕ

  • Косвенные CALL/JMP
  • Общее смещение памяти
  • Устранение условных смещений

ПРОДВИНУТЫЕ

  • Обход ModR/M
  • TEST с сохранением флагов
  • Адресация SIB
  • Оптимизации PUSH
  • Специфичные для Windows: CALL/POP, хеширование PEB, SALC, арифметика LEA, сдвиги, стековые строки и т.д.

СОВРЕМЕННЫЕ ФУНКЦИИ X64

  • Оптимизация RIP-относительной адресации: декомпозиция смещения, двойной расчет RIP, методы на основе стека
  • Битовые манипуляции: переупорядочивание байтов BSWAP, построение степени двойки BSF/BSR, подсчет битов POPCNT, PEXT/PDEP BMI2
  • Накопление флагов: устранение условных переходов на основе SETcc с линейными операциями над флагами

УЛУЧШЕНИЕ ОБФУСКАЦИИ

  • Многобайтовое переплетение NOP: арифметические NOP, вращение регистров, условные NOP, операции FPU
  • Цепочки зависимостей регистров: оптимизация многоинструкционных шаблонов, переупорядочивание инструкций
  • Адресация с отрицательным смещением: корректировка базового регистра, альтернативные режимы адресации

ПАМЯТЬ/СМЕЩЕНИЕ

  • Обработка нулевого смещения
  • Альтернативы LEA

Стратегии приоритезируются и выбираются с помощью ML или детерминированного порядка

Модульный реестр позволяет легко добавлять новые стратегии для обработки новых шаблонов шелл-кода.

См. DENULL_STRATS для подробной документации стратегий.

ОБУЧЕНИЕ И ВАЛИДАЦИЯ ML

ОБУЧЕНИЕ

Сборка тренировщика: make train

Запуск: ./bin/train_model

  • Данные: ./shellcodes/
  • Вывод: ./ml_models/byvalver_ml_model.bin
  • Конфигурация: 10k образцов, 50 эпох, 20% валидация, LR 0.001, batch 32

Модель автоматически загружается во время выполнения с разрешением пути.

ТЕСТИРОВАНИЕ РЕЖИМА ML```bash

Smoke test

./bin/byvalver --ml shellcodes/linux_x86/execve.bin output.bin

Check registry initialization

./bin/byvalver --ml test.bin output.bin 2>&1 | grep "ML Registry"

Expected: "ML Registry] Initialized with XXX strategies"

Batch processing with learning

./bin/byvalver --ml --batch shellcodes/linux_x86/*.bin output/

View metrics

cat ml_metrics.log

root@kitploit:~
**РЕКОМЕНДАЦИЯ:** Режим ML требует переобучения на разнообразных наборах данных о плохих байтах перед использованием в production. В настоящее время оптимизирован только для удаления нулевых байтов.

## АГЕНТСКИЙ ЗВЕРИНЕЦ

`byvalver` поставляется с **конвейером агентов на базе ИИ** (`agents/`), который может автономно обнаруживать пробелы в реестре стратегий, предлагать новый метод устранения плохих байтов, генерировать полную реализацию на C и внедрять её в проект — всё одной командой.

Конвейер построен на многопровайдерном агентском фреймворке [AjintK](https://github.com/umpolungfish/byvalver/blob/HEAD/AjintK/) и поддерживает **Anthropic**, **DeepSeek**, **Qwen**, **Mistral** и **Google** в качестве LLM-бэкендов.

### БЫСТРЫЙ СТАРТ```bash
# Requires API key for your chosen provider
export ANTHROPIC_API_KEY="..."   # or DEEPSEEK_API_KEY, QWEN_API_KEY, etc.

# --- Specialized Generators ---

# 1. General Technique Generator (discover → propose → generate → implement)
python3 run_technique_generator.py

# 2. Obfuscation Technique Generator (specifically for anti-analysis/evasion)
python3 run_obfuscation_generator.py

# 3. Bad-Byte Removal Generator (targeting restricted byte elimination)
python3 run_badbyte_generator.py

# 4. Profile-Specific Strategy Generator (targeting a specific bad-byte profile)
python3 run_profile_generator.py --profile alphanumeric-only

# --- Common Options ---

# Dry-run: discover and propose only, no files written
python3 run_technique_generator.py --dry-run

# Target a specific architecture
python3 run_technique_generator.py --arch x64

# Use a different provider / model
python3 run_technique_generator.py --provider deepseek --model deepseek-chat

ЭТАПЫ КОНВЕЙЕРА

ПАРАМЕТРЫ```

--dry-run Stop after Stage 2 — print proposal, write nothing --arch x86 | x64 | both (default: both) --provider anthropic | deepseek | qwen | mistral | google (default: anthropic) --model Model ID (provider-specific default applied if omitted) --verbose Print full LLM responses at each stage

root@kitploit:~
### ТРЕБОВАНИЯ```bash
# Install Python dependencies (uses AjintK framework)
pip install anthropic tenacity httpx pyyaml

# Or with uv (faster)
uv pip install -r AjintK/requirements.txt

The pipeline has been validated with DeepSeek (deepseek-chat) and Anthropic (claude-sonnet-4-6).
On a typical run it discovers 340+ strategies, proposes a technique (e.g. VEX prefix re-encoding for SSE/AVX instructions), generates ~200 lines of C, and produces a clean build — fully unattended.

See docs/AGENT_MENAGERIE.md for architecture details and extending the pipeline with new agents.

DEVELOPMENT

  • Modern C with modularity
  • Test suite: bash tests/run_tests.sh (see tests/README.md)
  • Code style: Clang-Format (config: .clang-format), run make format
  • Analysis: Cppcheck, Valgrind
  • Docker: docker build -t byvalver . (see Dockerfile)
  • Contributing: See CONTRIBUTING.md
  • Roadmap: See ROADMAP.md

DOCUMENTATION

Full documentation is available in the docs/ directory:

TROUBLESHOOTING

  • Dependencies: Verify Capstone/NASM/xxd
  • Builds: Check PATH_MAX, headers
  • ML: Ensure model path
  • Nulls: Confirm input format, dependencies

For persistent issues, use verbose mode and check logs

If bad-byte banishment fails on specific shellcode, consider adding targeted strategies to the registry.

LICENSE

byvalver is sicced freely upon the Earth under the UNLICENSE.

Скачать инструмент
АрхитектураЗрелостьСтратегииПримечания
x86 (32-битные Intel/AMD)Стабильная v4.2150+Проверено в производстве, полное покрытие
x64 (64-битные Intel/AMD)Стабильная v4.2150+Архитектура по умолчанию, проверена в производстве
ARM (32-бит)Экспериментальная v0.17 базовыхОграниченное тестирование, только базовые инструкции
ARM64 (AArch64)Экспериментальная v0.1ОсновныеГотовый фреймворк, минимальные стратегии
JMP
  • Control Flow Flattening: Состояния диспетчера
  • Instruction Substitution: Эквивалентные операции
  • Dead Code: Безвредные вставки
  • Register Reassignment: Скрытие потока данных
  • Multiplication by One: Шаблоны IMUL
  • NOP Sleds: Переменное заполнение
  • Polymorphic NOP Insertion: Множественные эквиваленты NOP (XCHG EAX,EAX, LEA, MOV)
  • Constant Unfolding: Разбиение немедленных значений на арифметические операции
  • Register Renaming: Замена регистров на основе XCHG
  • Stack Spill Obfuscation: Стековые арифметические операции
  • Instruction Reordering: Перемешивание инструкций с вставкой NOP
  • Runtime Self-Modification: Генерация самопизменяющегося кода
  • Overlapping Instructions: Байтовые последовательности с множественной интерпретацией
  • Jump Decoys: Ложные цели
  • Relative Offsets: Вычисляемые переходы
  • Switch-Based: Вычисляемый поток
  • Boolean Expressions: Эквиваленты Де Моргана
  • Variable Encoding: Обратимые преобразования
  • Timing Variations: Задержки
  • Register State: Сложные манипуляции
  • Stack Frames: Пользовательское управление
  • API Resolution: Комплексное хеширование
  • String Encoding: Декодирование во время выполнения
  • Constants: Генерация выражений
  • Debugger Detection: Запутанные проверки
  • VM Detection: Скрытые методы
  • ЭтапАгентЧто делает
    1StrategyDiscoveryAgentСканирует src/, извлекает все имена и категории стратегий (более 340), запрашивает у LLM сводку по пробелам в покрытии
    2TechniqueProposalAgentНа основе каталога предлагает одну действительно новую технику с обоснованием, целевой инструкцией и подходом
    3CodeGenerationAgentГенерирует полную реализацию .h + .c, соответствующую strategy_t, используя в качестве образца strategy.h/utils.h/mov_strategies.c
    4ImplementationAgentЗаписывает файлы в src/, патчит strategy_registry.c (include → forward decl → register call), запускает make
    DocumentDescription
    docs/USAGE.mdComprehensive usage guide with examples
    docs/BUILD.mdBuild instructions and platform-specific notes
    docs/TUI_README.mdInteractive TUI documentation
    docs/DENULL_STRATS.mdDenullification strategy catalog
    docs/OBFUSCATION_STRATS.mdObfuscation technique documentation
    docs/BAD_BYTE_PROFILES.mdBad-byte profile reference
    docs/BADBYTEELIM_STRATS.mdExtended elimination strategies
    docs/STRATEGY_HIERARCHY.mdStrategy organization and priority
    docs/ADVANCED_STRATEGIES.mdAdvanced transformation techniques
    docs/WHITEPAPER.mdTechnical whitepaper
    docs/AGENT_MENAGERIE.mdAgent pipeline: auto-technique generation