我最近在处理有关 PE 和 COFF 规范的Microsoft 文档。
第 5 章显示了几个或多或少的“软”指标和特征,以识别一个部分包含什么样的内容。然而,对于几个不同的部分,部分特征标志通常是相同的,正如我所读到的,部分名称可以是任意值,所以它也没有太大帮助。
实际上,我只能通过查看是否IMAGE_SCN_MEM_EXECUTE
设置了标志来确定代码部分,因为其他部分不应该设置此标志。
但是,例如,我如何识别资源目录?它只有IMAGE_SCN_CNT_INITIALIZED_DATA
或IMAGE_SCN_MEM_READ
设置,并且许多其他部分具有相同的标志。
我是否必须使用一些虚构的和典型的部分名称(RSRC
或.rsrc
对于此示例)进行评估?这意味着我可能会被自定义部分名称欺骗。我什至必须对截面数据进行试错分析才能获得更明确的截面包含的结果吗?
或者在我跳过的 PE 标头中的某处是否有一个标志,在这种情况下帮助我?