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

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

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

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

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

Категории

Все категории
Loading categories
wtf — Распределённый, управляемый покрытием кода, основанный на снимках фаззер для целей в пользовательском режиме и режиме ядра на Windows и Linux, с эмуляторными и гипервизорными бэкендами. | Kitploit
Инструменты/GitHubGitHub/0vercl0k/wtf
Динамический анализ (песочница)Анализ уязвимостейЭксплуатацияФаззингАнализ Бинарных Файлов
GitHub0vercl0k/wtf

wtf

Распределённый, управляемый покрытием кода, основанный на снимках фаззер для целей в пользовательском режиме и режиме ядра на Windows и Linux, с эмуляторными и гипервизорными бэкендами.

Репозиторий
1.8k1541111 месяц назадПроверено Kitploit

Популярное

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

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

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

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

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

what the fuzz

Распределённый, управляемый покрытием кода, кроссплатформенный фаззер на основе снимков, предназначенный для атаки на цели в пользовательском и/или режиме ядра, работающие под управлением Microsoft Windows и Linux (экспериментально!).

Обзор

what the fuzz или wtf — это распределённый, управляемый покрытием кода, настраиваемый, кроссплатформенный фаззер на основе снимков, предназначенный для атаки на цели в пользовательском и/или режиме ядра, работающие под управлением Microsoft Windows или Linux (экспериментально, см. linux_mode). Выполнение цели может осуществляться внутри эмулятора с помощью bochscpu (самый медленный, наиболее точный), внутри виртуальной машины Windows с использованием Windows Hypervisor Platform APIs или внутри виртуальной машины Linux с использованием KVM APIs (самый быстрый).

Он выявил уязвимости повреждения памяти в широком спектре программного обеспечения: IDA Pro, популярная AAA-игра, ядро Windows, клиент Microsoft RDP, драйвер дисплея NVIDIA GPU и др.

Скомпилированные бинарные файлы доступны либо из артефактов CI, либо из раздела Releases как для Windows, так и для Linux.

Если вы хотите узнать больше об истории проекта или о том, как использовать его на реальной цели, рекомендую ознакомиться с этими статьями, чтобы начать 🔥

  • Building a new snapshot fuzzer & fuzzing IDA
  • Fuzzing Modern UDP Game Protocols With Snapshot-based Fuzzers от Markus Gaasedelen
  • Fuzzing RDPEGFX with "what the fuzz" от Colas Le Guernic, Jérémy Rubert и Анонима
  • A Journey to Network Protocol Fuzzing – Dissecting Microsoft IMAP Client Protocol от Wayne Chin Yick Low
  • Раздел Snapshot Fuzzing из Testing Handbook компании Trail Of Bits
  • Attacking EDRs Part 4: Fuzzing Defender's Scanning and Emulation Engine (mpengine.dll) от Manuel Feifel

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

Лучший способ опробовать возможности — поработать с модулями fuzzer_hevd / fuzzer_tlv_server. Вы можете скачать архивы target-hevd.7z / target-tlv_server.7z и извлечь их в каталог targets/. Архивы содержат структуру каталогов, ожидаемую для каждой цели:

  • inputs — папка, куда помещаются ваши входные тестовые примеры,
  • outputs — папка, куда сохраняются текущие файлы minset,
  • coverage — папка, в которой ожидаются файлы .cov,
  • crashes — папка, куда сохраняются аварийные завершения,
  • state — папка, где хранятся дамп памяти (mem.dmp), состояние ЦП (regs.json) и хранилище символов (symbol-store.json). Хранилище символов — это простой файл JSON, используемый в системах Linux для указания мест установки точек останова, поскольку на этих платформах нет поддержки символов / dbgeng. wtf генерирует этот файл во время выполнения каждый раз, когда вы запускаете цель на Windows.

Далее предполагается, что вы скачали файл target-hevd.7z, прикреплённый к последнему релизу, и извлекли его в каталог targets вашего клона wtf. У вас должен появиться путь wtf/targets/hevd, в котором находятся каталоги inputs, outputs и т.д.

Запуск серверного узла

Сервер, по сути, является мозгом и отслеживает всё состояние: агрегированное покрытие кода, корпус, генерирует и распространяет тестовые примеры среди клиентов.

Вот как вы можете запустить локальный серверный узел:```text wtf.exe master --name hevd --max_len=1028 --runs=10000000

Опция `max_len` используется для ограничения размера генерируемого тестового примера, `runs` — количество генерируемых тестовых примеров, `address` указывает, где **wtf** должен прослушивать, `target` — это директория с деревом каталогов, которое мы описали выше (пользователь также может переопределить эти директории с помощью `--input` / `--output` / `--crashes`), а `name` задает имя вашего модуля фаззинга, чтобы мастер мог вызвать вашу функцию-генератор, если вы ее определили.

<p align='center'>
<img src="https://assets.kitploit.com/production/public/readmes/4699/4a03fc75eed3ed5a92f7f10def697dbf220ae36b0701f05b37759eb432fc0fd9.webp">
</p>

### Узлы фаззинга

Клиентские узлы запускают тестовый пример, сгенерированный и распределенный сервером, и передают результат обратно серверу (покрытие кода, результат и т.д.).

Вот как вы запустите клиентский узел, использующий бэкенд *bochscpu*:```text
wtf.exe fuzz --name hevd --limit 10000000

Подкоманда fuzz используется с опцией name, чтобы указать, какой модуль фаззера нужно использовать; backend задаёт бэкенд выполнения, а limit — максимальное количество инструкций для выполнения на один тестовый пример (в зависимости от бэкенда значение этой опции различается).

Запуск тестового примера

Если вы хотите запустить тестовый пример (или папку, заполненную тестовыми примерами), вы можете использовать подкоманду run.

Вот как вы могли бы бы запустить тестовый пример crash-0xfffff764b91c0000-0x0-0xffffbf84fb10e780-0x2-0x0: $HOME/FUZZAN/fuzzer.py $HOME/FUZZAN/seeds/example $HOME/FUZZAN/workdir/ -b frida -t 60000 -m 10000 -p 1000 -c -v $HOME/FUZZAN/workdir/crash-0xfffff764b91c0000-0x0-0xffffbf84fb10e780-0x2-0x0``` wtf.exe run --name hevd --limit 10000000 --input crashes\crash-0xfffff764b91c0000-0x0-0xffffbf84fb10e780-0x2-0x0

<p align='center'>
<img src="https://assets.kitploit.com/production/public/readmes/4699/49b3ca8582d6314724e5615c687472499d5f8f41d04c9543c0a6a070c51f56f8.webp">
</p>

### Minseting корпуса

Для minset корпуса необходимо использовать серверный узел и столько клиентских узлов, сколько нужно, как при фаззинге. Вы можете просто установить `runs` optins в 0.

Вот как вы можете minset корпус из `outputs` в директорию `minset` (также показано, как переопределять директории `inputs` и `outputs`):```
wtf.exe master --name hevd --max_len=1028 --runs=0 --inputs=outputs --outputs=minset

Генерация трасс выполнения

Скачать инструмент