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

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

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

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

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

Категории

Все категории
Loading categories
windbg-decompile-ext — Расширение WinDbg x64, которое дизассемблирует живые функции и использует LLM для создания верифицированного псевдокода. | Kitploit
Инструменты/GitHubGitHub/kernullist/windbg-decompile-ext
Статический анализДинамический анализ (песочница)Анализ КодаОбратная инженерияОтладчикиАнализ вредоносных программАнализ Бинарных ФайловОбучение и ОбразованиеОбратная Разработка с Помощью ИИ
Анализ Прошивок
Эксплуатация Бинарных Файлов
GitHubkernullist/windbg-decompile-ext

windbg-decompile-ext

Расширение WinDbg x64, которое дизассемблирует живые функции и использует LLM для создания верифицированного псевдокода.

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

Популярное

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

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

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

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

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

Расширение WinDbg для декомпиляции через LLM

собственный просмотрщик декомпиляции

снимок экрана

Этот проект представляет собой шаблон расширения WinDbg для Windows x64, который определяет функцию по имени или адресу, восстанавливает детерминированное представление потока управления и напрямую обращается к LLM из расширения для генерации псевдокода.

Структура

  • src/extension: DLL расширения WinDbg и команда !decomp.
  • src/shared: общий код для JSON, анализатора, протокола и верификатора, используемый расширением.
  • scripts: вспомогательные сценарии сборки и копирования сторонних библиотек.
  • third_party/dbgeng: опциональная копия поставляемых dbgeng.h и dbgeng.lib.
  • third_party/zydis: поставляемое стабильное дерево исходного кода Zydis, используемое по умолчанию при наличии.

Текущий объем

  • предположения только для x64
  • анализ активной памяти через DbgEng
  • структурированная дизассемблеризация на основе Zydis для стабильного восстановления мнемоник/операндов
  • восстановление области символа, развертывание и эвристическое восстановление диапазона функций
  • восстановление в стиле SSA-lite для входящих регистровых аргументов, локальных переменных стековых слотов, кандидатов слияния и нормализованных условий ветвления
  • низкоуровневые факты значений IR с подсказками определения-использования, каноническими копиями/константными выражениями и маркерами мертвых определений
  • факты состояния значений на уровне блоков для сходящихся достигающих определений live-in/live-out по регистрам и локальным переменным стека
  • факты областей потока управления на основе доминаторов для естественных циклов, кандидатов if/else, кандидатов switch, метаданных индукции циклов и метаданных диапазона/по умолчанию switch
  • факты ABI x64 для теневых/домашних слотов, дельт указателя стека, распознавания пролога/эпилога, невозвратных вызовов, хвостовых вызовов, thunk'ов, кандидатов оберток импорта и восстановленных регистровых/стековых аргументов вызовов
  • восстановление аргументов Microsoft x64 с учетом SIMD/FP для xmm0 – xmm3 с защитой от нулевых идиом векторов для предотвращения ложных входящих аргументов
  • подсказки восстановления типов для указателеподобных значений, локальных переменных стека, смещений полей, массивов с масштабированным индексом, сравнений по типу перечислений, проверок битовых флагов и кандидатов vtable
  • факты идиом и библиотечных шаблонов для помощников по памяти/строкам, cookies безопасности, проб стеков, аллокаторов, агрегатных инициализаторов и RIP-относительных загрузок глобальных/импортных значений
  • факты целей вызовов для прямых вызовов, косвенных вызовов через регистр/память, кандидатов виртуальных вызовов/смещений vtable, типа возврата, модели параметров, побочных эффектов, эффектов памяти, подсказок владения и уверенности
  • факты обфускации в стиле OLLVM для диспетчеров уплощения потока управления, восстановленных семантических ребер, мертвых ребер непрозрачных предикатов и идиом замены скалярных инструкций
  • факты готовности деобфускации, а также управление /deobf:on|off (включено/выключено) для указания, могут ли восстановленные факты обфускации направлять перезапись псевдокода на C
  • факты графа доказательств, связывающие анализатор высокого сигнала, PDB и факты наблюдаемого поведения обратно с привязкой к инструкциям/блокам
  • уточняющие запросы с сгенерированным анализатором скелетом псевдокода, сводками с учетом графа для областей CFG, условий и важных блоков, ранжированным выбором фактов с высоким сигналом и разреженной выборкой для больших наборов фактов
  • ссылки DML WinDbg для навигации по входным точкам/базовым блокам/доказательствам/целям вызовов, когда обратный вызов вывода поддерживает DML
  • раздельные режимы результатов для краткого вывода, объяснения доказательств, только фактов, отладочной подсказки, JSON и в стиле модели данных
  • переключатели пользовательских исправлений для подсказок no-return, типа, поля и переименования
  • факты политики анализа с учетом сеанса для активных сеансов, дампов, ядра и сеансов, подобных TTD
  • факты наблюдаемого поведения из текущего контекста отладчика, включая образцы регистровых аргументов, горячие точки памяти и предложения запросов TTD, если доступны
  • классификация строк/глобальных/IAT с RIP-относительной адресацией и подсказки сигнатур целей вызовов для запросов LLM
  • подсказки прототипов с учетом загруженного PDB, областей видимости параметров/локальных переменных, полей, перечислений и исходных строк для запросов LLM
  • прямые внутрипроцессные вызовы LLM из расширения
  • HTTP-адаптер, совместимый с OpenAI, или детерминированная заглушка
  • проход верификатора по выходным данным LLM

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

Загрузите расширение из выходных данных сборки, затем выполните !decomp для символа или адреса:```text .load C:\path\to\decomp.dll !decomp /doctor !decomp module!FunctionName !decomp 0x7ffb`12345678

Используйте `/doctor`, если настройка выглядит неверно или перед включением LLM-провайдера:```text
!decomp /doctor
!decomp /doctor:net
  • /doctor не требует цели и не вызывает провайдера. Он сообщает о конфигурации (путь/статус загрузки), сводку по провайдеру/модели/конечной точке, наличие аутентификации без секретов, настройки таймаута/токенов/разбиения на чанки, поддержку DML, класс/квалификатор сессии, тип обработчика и предупреждения PDB.
  • /doctor:net принимается как явный запрос проверки сети, но в настоящее время сообщает, что пинг провайдера пропущен. Расширение не выполняет сетевой зонд из режима doctor.
  • Секретные значения, такие как ключи API, токены носителя, токены обновления и строки запроса URL, не выводятся.

Целями могут быть публичные/приватные символы, имена экспортируемых функций или адреса. Если цель разрешается в адрес внутри функции, расширение пытается восстановить диапазон содержащей функции из символов, данных развертывания и эвристик управления потоком. Помещайте цели, содержащие пробелы, в кавычки:```text !decomp "my module!Function With Spaces"

Обычный путь команды выполняет локальный анализ, строит факты анализа, при необходимости вызывает настроенную конечную точку LLM, проверяет ответ на соответствие восстановленным доказательствам и выводит псевдо-C с указанием уверенности, предупреждений и примечаний о неопределенности:```text
!decomp ntdll!RtlAllocateHeap
!decomp kernel32!Sleep
!decomp game.exe!CheckIntegrity

Normal, brief и explain выводят компактный поток прогресса даже без /verbose. Длинные запуски LLM показывают завершение локального анализа, прогресс по фрагментам, уведомления о повторных попытках, начало слияния, проверку и подсказку об отмене с помощью Ctrl+Break. Машиночитаемые режимы, такие как /view:json, /view:facts, /view:prompt и /view:data, подавляют строки прогресса и вспомогательные ссылки DML, чтобы скрипты получали только запрошенные данные.

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