2011-01-13 44 views
0

我跟蹤的certutil使用下面的CDB腳本(名爲TraceScript.txt):如何將可見的API集擴展到windbg/cdb/ntdb的logexts擴展?

!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接口 - 似乎是相關的,不是嗎?

無論如何,我想知道是否有可能讓這個界面對記錄器可見,因爲沒有它,所有的記錄都是無用的。我怎麼知道它?記錄器報告CoCreateInstance API與GUID 372FCE38-4324-11D0-8810-00A0C903B83C的單個調用,該GUID對應於CertConfig類,我猜測它實現了ICertConfig2接口。日誌中沒有其他證書相關的API出現。所以沒有ICertConfig2接口,日誌就沒用了。

任何想法?

P.S.

我很樂意接受跟蹤ICertConfig2 COM API的方法。

回答

1

看看文件下(路徑的WinDbg)\ winext \清單

那裏的文件包含由記錄器擴展使用的定義。 com.h包含接口定義

uuid.h包含從GUID到接口的映射。

您需要將ICertConfig2的定義轉換爲該工具使用的格式

+0

讓我直說吧。我修改了兩個.h文件,就是這樣嗎?沒有重新編譯任何東西?我有點懷疑。你自己試過了嗎? – mark 2011-01-25 11:43:02