我使用以下cdb脚本(名为TraceScript.txt)跟踪certutil:
!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接口--似乎是相关的,不是吗?
无论如何,我想知道是否有可能使这个接口对记录器可见,因为没有它,所有的日志记录都是无用的。我怎么知道的?记录器使用GUID 372FCE38-4324-11D0-8810-00A0C903B83C报告一次对CoCreateInstance API的调用,该调用对应于CertConfig类,我猜该类实现了ICertConfig2接口。日志中没有其他与证书相关的API。因此,没有ICertConfig2接口,日志就毫无用处。
有什么想法吗?
附注:
我很乐意接受跟踪ICertConfig2 COM API的方法。
发布于 2011-01-24 23:13:19
查看(通往windbg的路径)\winext\清单下的文件
其中的文件包含记录器扩展名所使用的定义。包含接口定义的com.h
H包含从GUID到接口的映射。
您将需要将ICertConfig2的定义转换为该工具使用的格式。
https://stackoverflow.com/questions/4680968
复制相似问题