2011-01-13 1 views
0

windbg/cdb/ntdbのlogexts拡張に表示される一連のAPIを拡張するにはどうすればよいですか?私は(TraceScript.txtという名前)は、次のCDBのスクリプトを使用しての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 %* 

すべてが細かいですが、私は持っていますGUIDは、次のレジストリパスに対応

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

出力に次の行を気づきました
HKEY_CLASSES_ROOT\Interface\{7A18EDDE-7E78-4163-8DED-78E2C9CEE924} 

これはICertConfig2インターフェイスに対応しています - これは関係ないようですか?

とにかく、このインターフェイスをロガーに見えるようにすることが可能かどうかは、すべてのロギングが役に立たないためです。どのように私はそれを知っていますか? Loggerは、CoCreateInstance APIをGUID 372FCE38-4324-11D0-8810-00A0C903B83C(これは、ICertConfig2インターフェイスを実装していると思われるCertConfigクラスに対応します)という単一の呼び出しを報告します。他の証明書に関連するAPIはログには表示されません。したがって、ICertConfig2インターフェイスがなければ、ログは役に立たなくなります。

アイデア?

P.S.

私はICertConfig2 COM APIをトレースする方法を喜んで受け入れます。

答えて

1

ロガー拡張子によって使用される定義が含まれているファイルは、\ winext \(WinDbgのためのパス)の下でマニフェスト

をファイルを見てみましょう。 com.hにはインターフェイスの定義が含まれています

uuid.h GUIDからインターフェイスへのマッピングが含まれています。

ICertConfig2の定義をツールで使用される形式に変換する必要があります

+0

私はそれをまっすぐにしましょう。私は2つの.hファイルを変更し、それはそれですか?何も再コンパイルせずに?私は少し懐疑的です。あなたはそれを自分で試しましたか? – mark

+0

はい、2つのファイルを変更するだけです。 logviewerとロガーは、毎回マニフェストファイルを解析します。私はこれを他のAPIと一緒に使ってきました。 – John

+0

一部のSDKヘッダーのマニフェストはどこで入手できますか?手動でそれらを作成することは、多くの仕事の地獄です... – mark

関連する問題