Win64 .pdata 需要是一个单独的 COFF 部分吗?

逆向工程 视窗 聚乙烯 二进制格式
2021-06-14 08:12:12

似乎Windows通常通过查看头信息(尤其是OptionalHeader.DataDirectory[])来找到PE内部的支持结构,这意味着这些数据块和某些COFF部分之间没有强制映射(尽管有点习惯,与 .rsrc 一样)。因此,当可执行文件被打包程序、“保护程序”或其他类似内容修改时,COFF 部分及其名称往往会随处可见。

然而,似乎视窗确定.pdata(的阵列的位置和大小RUNTIME_FUNCTION经由.pdata COFF节头)。那是对的吗?

这将使该部分独一无二,因为即使是最笨拙的“保护者”也必须以正确的名称发出准确的信息,或者动态注册该信息......

1个回答

不,Windows 加载程序不关心.pdata的名称它不是RUNTIME_FUNCTION根据节名称查找结构,而是根据NtHeader->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXCEPTION].

此外,RUNTIME_FUNCTION结构不需要位于“单独的 COFF 部分”中。