Microsoft 在此处描述了 IMAGE_DEBUG_DIRECTORY 结构。
我在这里了解到,对于最近的 VisualStudio 编译的二进制文件,类型是IMAGE_DEBUG_TYPE_CODEVIEW
,即值是0x2
.
现在我有一个 vanilla VS-2015 编译的二进制文件,我正在使用 Python 模块pefile
来迭代IMAGAE_DEBUG_DIRECTORY
对象:
for debug_data_object in pe.DIRECTORY_ENTRY_DEBUG:
...
第一个条目是预期的:
0x6500 0x0 Characteristics: 0x0
0x6504 0x4 TimeDateStamp: 0x59088504 [Tue May 02 13:09:24 2017 UTC]
0x6508 0x8 MajorVersion: 0x0
0x650A 0xA MinorVersion: 0x0
0x650C 0xC Type: 0x2
0x6510 0x10 SizeOfData: 0x88
0x6514 0x14 AddressOfRawData: 0x176DC
0x6518 0x18 PointerToRawData: 0x66DC
但还有第二个。它的类型是 0xC :
0x651C 0x0 Characteristics: 0x0
0x6520 0x4 TimeDateStamp: 0x59088504 [Tue May 02 13:09:24 2017 UTC]
0x6524 0x8 MajorVersion: 0x0
0x6526 0xA MinorVersion: 0x0
0x6528 0xC Type: 0xC
0x652C 0x10 SizeOfData: 0x14
0x6530 0x14 AddressOfRawData: 0x17764
0x6534 0x18 PointerToRawData: 0x6764
这第二个条目是关于什么的?为什么会在那里?类型0xc
对应什么?
更新
除了下面的答案之外,这篇SO 帖子还包含其他详细信息。