遍历 IAT¶
一旦你知道 IAT 仍然完好,就可以开始遍历它,这就是 IAT 钩子开始变得难看的地方。IAT 是称为导入描述符的结构数组。每个依赖有一个导入描述符,每个导入描述符指向称为 thunk 的结构数组,每个 thunk 表示从依赖导入的一个函数。
幸运的是,Windows API 通过 IMAGE_IMPORT_DESCRIP TOR 和 IMAGE_THUNK_DATA 结构分别暴露了导入描述符和 thunk。有预定义的结构省去了自己创建,但并不会让遍历 IAT 的代码更好看。
要明白我的意思,看看清单 8-7,它建立在清单 8-4 到 8-6 之上。