Microsoft Symbol Local Cacheディレクトリに使用されているハッシュアルゴリズムを把握しようとしています。Microsoft Symbol Server/Local Cache Hash Algorithm
例えば、ローカルキャッシュには、以下の
L:\Symbols \browseui.dll \44FBC679fe000 browsue.dll \browseui.pdb \44F402F62 browseui.pdb \explorer.exe \3EBF1F14f7000 explorer.exe \explorer.pdb \3EBF1F141 explorer.pdb \msvcr71.pdb \60D915C6AB6A4F3586E9096E2F8856482 msvcr71.pdb
ようなものになる可能ファイルとそのデバッグデータベースとの間の対応のいくつかの並べ替えがあるようです。それ以外に、これらの(おそらく)16進文字列フォルダの名前がどのように生成されているのかわかりません。
一部は9桁、一部は13桁、その他は33桁です。実際のライブファイル(何らかの理由でシンボルキャッシュに格納されている)のように見えますが、13桁のハッシュを持っています(ほぼ同じ)デバッグデータベースは9桁のハッシュを取得します。いくつかのデバッグデータベースは13桁のハッシュを取得します。対応するライブファイルを持っていないものの、これらのファイルを特別なものにするために何が特別なのか理解できません。
私はどのような方法で(それらの39)と、どれもマッチを知っているハッシュアルゴリズムのすべての種類のファイルをハッシュしようとした
(、まっすぐには、代替endian'dなどを逆転しました)何か案は?
更新 私は最終的にそれを見つけたと思います。 Symbol Storage Format:
SymStoreは、ファイルシステム自体をデータベースとして使用します。これは、シンボルファイルのタイムスタンプ、署名、年齢、およびその他のデータに基づいたディレクトリ名を持つ大きなディレクトリツリーを作成します。
編集 ダン、残念ながらそれだけで、ディレクトリ名はさまざまな側面(私は推測していない、非常にハッシュ)に由来しているが、正確にどのように言っていないことに言及しています。検索は
から「ファイル変更」タイムスタンプと「SizeOfImage」の16進文字列を連結して作成されます。コピーはどこにもありませんか? – nothrow
Wayback Machineでさえもはやそのページがありません。しかし、URLから判断すると、私はそれがこのスレッドのコピーであると推測しています:["Resyncing PDB and EXE"](https://groups.google.com/forum/#!searchin/microsoft.public.vc.debugger/ resyncing/microsoft.public.vc.debugger/xLVvCBIU6fI/0ErZ6YlXJDEJ)、スレッド[「ミニダンプとソースインデックス作成」](https://groups.google.com/forum/#!msg/microsoft.public.windbg/UYKSHJRtsFg/3inc6qfs-esJ) –