在win64上的pe中读取从kernel32.dll导入的函数

时间:2017-05-22 08:43:36

标签: portable-executable win64

我尝试在win64上读取pe中kernel32.dll导入的函数。似乎零填充的IMAGE_THUNK_DATA是IMAGE_THUNK_DATA数组的结尾。但是我发现在kernel32.dll的IMAGE_THUNK_DATA数组中,第二个IMAGE_THUNK_DATA是0填充的。这意味着kernel32只有一个导入的函数?或者如何获得IMAGE_THUNK_DATA数组的大小?

1 个答案:

答案 0 :(得分:1)

An In-Depth Look into the Win32 Portable Executable File Format, Part 2:

  

每个IMAGE_IMPORT_DESCRIPTOR通常指向两个   相同的数组。这些数组已被多个名称调用,但是   两个最常见的名称是导入地址表(IAT)和   导入名称表(INT)。

     

...

     

两个数组都有IMAGE_THUNK_DATA类型的元素,它是一个   指针大小的联合。每个IMAGE_THUNK_DATA元素对应一个   从可执行文件导入的函数。两个数组的末端都是   由IMAGE_THUNK_DATA元素指示,值为零。