Sco*_*ing 6 hash symbols symstore pdb
我正在寻找symstore用于创建目录名称的哈希算法.我发现此链接Microsoft符号服务器/本地缓存哈希算法描述了用于生成哈希的数据元素,但它没有详细说明如何计算哈希值.我有兴趣看看symstore如何生成哈希目录,如果有人有任何可以显示的示例代码,那就太棒了!
小智 8
symstore.exe计算哈希目录名称,如下所示:
对于PDB文件,使用GUID + Age.这是一个python示例:
pdb = pdbparse.parse("some.pdb")
pdb.STREAM_PDB.load()
guid = pdb.STREAM_PDB.GUID
guid_str = "%.8X%.4X%.4X%s" % (guid.Data1, guid.Data2, guid.Data3,
guid.Data4.encode("hex").upper())
symstore_hash = "%s%s" % (guid_str, pdb.STREAM_PDB.Age)
Run Code Online (Sandbox Code Playgroud)
对于PE(exe/dll)文件,使用TimeDateStamp(来自IMAGE_FILE_HEADER)和SizeOfImage(来自IMAGE_OPTIONAL_HEADER).这是一个python示例:
pe = pefile.PE("some.exe")
symstore_hash = "%X%X" % (pe.FILE_HEADER.TimeDateStamp,
pe.OPTIONAL_HEADER.SizeOfImage)
Run Code Online (Sandbox Code Playgroud)
下面是一个示例python脚本,它为PDB和PE文件打印symstore哈希值:
https://gist.github.com/lennartblanco/9a70961a5aa66fe49df6