Я отслеживаю 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.