关于C#:dumpbin /imports显示的输入地址表和输入名称表是什么?

What is Input Address Table and Input Name Table as displayed by dumpbin /imports?

dumpbin /imports显示的Input Address TableInput Name Table是什么?

1
2
3
4
5
6
7
8
9
10
11
Dump of file c:\\windows\\System32\\kernel32.dll

File Type: DLL

  Section contains the following imports:

    API-MS-Win-Core-RtlSupport-L1-1-0.dll
              78DBC000 Import Address Table
              78E18D58 Import Name Table
                     0 time date stamp
                     0 Index of first forwarder reference

我最初的猜测是,它是 RVA IMAGE_IMPORT_DESCRIPTOR.FirstThunk,但看看 IAT 的值,它看起来相当大,是一个 RVA。我也猜想,它不能是绝对地址,因为那样该值将毫无意义(因为这意味着 w.r.t PE 加载地址)。

用例

我正在创建一个 C 库来模拟 dumpbin,我目前想知道这两个值将映射到什么?


我相信,dumpbin 会将这两个值(FirstThunk 和 OriginalFirstThunk)显示为基于模块的首选基地址(映像基址)的虚拟地址。

在此示例中,值为"来自可选标头 FirstThunk/OriginalFirstThunk 的 ImageBase"。