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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/vitoplantamura/bugchecker
Динамический анализ (песочница)Обратная инженерияОтладчикиАнализ Бинарных Файлов
GitHubvitoplantamura/bugchecker

BugChecker

Отладчик ядра, подобный SoftICE, для Windows 11

Репозиторий
1.1k144193 лет назадПроверено Kitploit

Популярное

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

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

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

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

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

BugChecker

Введение

BugChecker — это отладчик ядра и пользовательского режима для Windows 11 (а также Windows XP: поддерживаются версии Windows от XP до 11, как x86, так и x64), напоминающий SoftICE. В отличие от WinDbg и KD, BugChecker не требует второй машины, подключенной к отлаживаемой системе. Эта версия BugChecker (в отличие от оригинальной версии, разработанной 20 лет назад) использует внутреннее и недокументированное KD API в NTOSKRNL. KD API позволяет WinDbg/KD выполнять такие вызовы, как чтение/запись виртуальной памяти, чтение/запись регистров, установка точки останова по адресу и т. д.

Напротив, оригинальный BugChecker, как и SoftICE, «захватывал» систему, перехватывая несколько API ядра (как экспортируемых, так и частных), беря под контроль APIC, отправляя IPI и т. д. Такой подход экспоненциально увеличивает сложность (и снижает стабильность системы), поскольку реализация должна быть совместима со всеми поддерживаемыми версиями и подверсиями Windows (на уровне сигнатур функций), а также со всеми возможными поддерживаемыми конфигурациями оборудования. Более того, спустя 20 лет PatchGuard делает такое решение невозможным.

Напротив, эта версия BugChecker, перехватывая вызовы KdSendPacket и KdReceivePacket в ядре, представляется отлаживаемой машине как вторая система, запускающая внешний отладчик ядра, но на самом деле всё происходит на той же машине. Обычно это достигается заменой KDCOM.DLL (модуля, реализующего последовательное соединение для KD API в Windows) и запуском системы в режиме отладки ядра. Этот подход (вдохновлённый VirtualKD) снижает сложность, повышает стабильность и совместимость (а также переносимость, например, на ARM — и модульность, поскольку низкоуровневые возможности отладчика реализованы за KdXxxPacket и могут быть заменены пользовательской реализацией). Кроме того, наличие отладчика ядра во время загрузки (хотя и «поддельного») заставляет Windows отключать PatchGuard.

На данный момент BugChecker требует клавиатуру PS/2 для ввода и линейный буфер кадров для вывода. Обратите внимание, что встроенная клавиатура многих современных ноутбуков по-прежнему является PS/2.

Возможности

  • Поддержка Windows от XP до Windows 11, x86 и x64, и SMP-ядер. Поддержка процессов WOW64 на x64.
  • Интеграция QuickJSPP — порта QuickJS для MSVC++. Перед вызовом QuickJS BugChecker сохраняет состояние FPU (на x86) и переключается на расширенный стек размером 128 КБ.
  • Команды принимают JS-выражения. Например, "U rip+rax*4" и "U MyJsFn(rax+2)" являются допустимыми командами. Пользовательские функции можно определить в окне скриптов. Регистры ЦП автоматически объявляются как переменные глобальной области видимости с помощью BugChecker.
  • Поддержка PDB-файлов символов. PDB-файлы можно указать вручную, либо Symbol Loader может загрузить их с сервера символов.
  • JavaScript-код может вызывать следующие асинхронные функции: WriteReg, ReadMem, WriteMem.
  • Точки останова могут иметь JS-условие: если условие равно 0, «breakin» не происходит. Это позволяет устанавливать «Логпоинты» и точки останова, которые могут изменять поток выполнения.
  • Окно лога показывает сообщения, отправленные отладчику ядра (например, сообщения DbgPrint).
  • Окно JavaScript с подсветкой синтаксиса.
  • Клавиша Tab позволяет по нескольким цифрам циклически перебирать все шестнадцатеричные числа на экране или по нескольким символам — все символы, содержащие эти символы.
  • EASTL и корутины C++20 делают создание новых команд лёгким. Не стесняйтесь отправлять свои pull request'ы!

Видео (YouTube)

Демонстрация BugChecker на Windows 11 22H2, внутри VirtualBox 7.0.4. Написано условие точки останова на JavaScript, изменяющее поток выполнения в потоке пользовательского режима.

Смотреть видео

BugChecker, работающий в очень ограниченной среде: Raspberry Pi 4 (4 ГБ ОЗУ) через QEMU на Windows XP (512 МБ ОЗУ). Точка останова используется для журналирования всех вызовов SYSENTER из пользовательского режима в ядро. Индекс службы сохраняется в массиве JavaScript.

Смотреть видео

BugChecker, запущенный непосредственно на «голом железе» на HP Pavilion Dv2000 — старом ПК с клавиатурой PS/2. ОС — Windows 7 Home 32-бит.

Смотреть видео

Инструкции по установке

Введение

Убедитесь, что Secure Boot отключён при установке и использовании BugChecker. Обычно его можно снова включить позже. Если вы используете VMware или VirtualBox, Secure Boot можно отключить в настройках виртуальной машины.

Также рассмотрите возможность включения устаревшего меню загрузки, если используется Windows 8, 10 или 11, с помощью команды: bcdedit /set "{current}" bootmenupolicy legacy. Это обеспечивает более плавный процесс загрузки, позволяя одновременно выбрать параметр загрузки BugChecker и отключить проверку подписи драйверов.

Инструкции

Первый шаг — запустить Symbol Loader:

Symbol Loader

При необходимости отключите драйверы дисплея, нажав кнопку «Disable Display Drvs». То же самое можно сделать в диспетчере устройств Windows. После отключения драйверов дисплея они остаются отключёнными даже после перезагрузки системы. Их можно снова включить в любое время, когда BugChecker не используется.

Суть в том, что BugChecker требует линейный буфер кадров с форматом 32 бита на пиксель для отрисовки интерфейса. При отключении драйверов дисплея Windows отключает аппаратное ускорение для рисования своего интерфейса и переходит в режим совместимости с VGA. При работе на «голом железе» или VMware следует отключить драйверы дисплея. При работе на VirtualBox следует отключить драйверы дисплея или установить параметр vm_screen в BugChecker.dat, как описано ниже. При работе на QEMU отключать драйверы дисплея не нужно, но убедитесь, что указано устройство отображения "-vga std".

Обратите внимание, что режим совместимости с VGA может ограничить максимальное разрешение экрана. VMware ограничен максимальным разрешением 1152x864. QEMU с устройством отображения "-vga std" этим ограничением не страдает.

Интересно, что если BugChecker установлен в системе с более чем одной видеокартой, можно отключить драйверы дисплея только одной видеокарты, которая будет подключена к монитору, отображающему интерфейс BugChecker. Вторая карта (установленная как основной дисплей) сохранит все свои функции 2D- и 3D-ускорения, включая поддержку OpenGL и DirectX (ПРИМЕЧАНИЕ: протестировано на VMware с Windows 11 и дисплеем DisplayLink).

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