Краткий ответ:
IAT (таблица адресов импорта) указана для PE-файла (dll и exe).
Длинный ответ:
Когда загрузчик загружает exe-файл, он копирует каждый раздел PE в память процесса, если для этих разделов не установлено IMAGE_SCN_MEM_DISCARDABLE. IAT находится в разделе .idata ( msdn ):
В разделе .idata PE-файла содержится информация, необходимая загрузчику для определения адресов целевых функций и внесения их в исполняемый образ. Раздел .idata (или таблица импорта, как я предпочитаю ее называть) ...
IMAGE_SCN_MEM_DISCARDABLE не установлен для секции idata. Поэтому раздел idata скопирован в память, и как exe, так и dll имеют этот раздел, то есть IAT соответствует PE.
Я написал простой загрузчик DLL здесь , если это поможет вам понять.