Как расширить набор API, видимых для расширения logexts в windbg / cdb / ntdb? - PullRequest
0 голосов
/ 13 января 2011

Я отслеживаю certutil, используя следующий скрипт cdb (с именем TraceScript.txt):

!logexts.loge c:\logs
!logexts.logc e *
!logexts.logo d d
!logexts.logo d t
!logexts.logo e v
g
!logexts.logb f
q

и следующий пакетный файл (с именем trace.cmd):

@echo off
set SYMBOL_PATH=srv*c:\users\markk\appdata\local\temp\symbolcache
cdb -y %SYMBOL_PATH% -cf c:\utils\TraceScript.txt %*

Все хорошо, но я заметил следующую строку в выводе:

[LogHookComInterface] Interface {7a18edde-7e78-4163-8ded-78e2c9cee924} is unknown -- not logging.

Где GUID соответствует следующему пути реестра:

HKEY_CLASSES_ROOT\Interface\{7A18EDDE-7E78-4163-8DED-78E2C9CEE924}

Что, в свою очередь, соответствует интерфейсу ICertConfig2 - кажется уместным, не так ли?

В любом случае, мне интересно, возможно ли сделать этот интерфейс видимым для регистратора, потому что без него вся регистрация бесполезна. Откуда я это знаю? Регистратор сообщает об одном вызове API CoCreateInstance с GUID 372FCE38-4324-11D0-8810-00A0C903B83C, который соответствует классу CertConfig, который, я полагаю, реализует интерфейс ICertConfig2. Никакие другие API, связанные с сертификатами, не отображаются в журнале. Так что без интерфейса ICertConfig2 журнал бесполезен.

Есть идеи?

приписка

Я с радостью приму способы отслеживания COM-интерфейса ICertConfig2.

1 Ответ

1 голос
/ 25 января 2011

Посмотрите на файлы в папке (путь к windbg) \ winext \ manifest

Файлы там содержат определения, используемые расширением регистратора. com.h содержит определения для интерфейсов

uuid.h содержит отображение GUID на интерфейсы.

вам нужно будет преобразовать определение ICertConfig2 в формат, используемый инструментом

...