我试图找出散列算法用于Microsoft符号本地缓存目录。
例如,本地高速缓存可以像下面这样
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
似乎有某种文件和调试数据库之间的对应关系。 除此之外,我想不出如何产生这些(大概)十六进制字符串文件夹的名称。
其中有些是9个位数,一些13位,其余为33位。 它看起来像一个实际的,活的文件(由于某种原因被存储在符号缓存)有一个13位的散列,而它的(几乎相似)调试数据库中获取一个9位数的哈希值。 一些调试数据库得到一个13位的散列; 无法找出是什么使这些特殊的人,虽然他们不具备相应的动态文件。
我试过散列以任何方式与每一种散列算法的,我知道(他们中的39),并没有匹配的文件(直线上升,逆转,备用endian'd等)
有任何想法吗?
更新我想我终于找到了。 从符号存储格式 :
SymStore使用文件系统本身的数据库。 它创建了一个大的树目录,基于这样的事情作为符号文件时间戳,签名,年龄和其他数据的目录名。
编辑荡,遗憾的是它只是提到,目录名是从各个方面得到的(不太哈希我猜),但并不完全怎么说。 继续搜索... :-(