导入表
反汇编后,对MessageBox和ExitProcess函数的调用变成了对0040101A和00401020地址的调用,但是这两个地址显然是位于程序自身模块而不是DLL模块中,实际上,这是由编译器在程序所有代码的后面自动加上的Jmp dword ptr[xxxxxxxx]类型的指令,这个指令是一个间接寻址的跳转指令,xxxxxxxx地址中存放的才是真正的导入函数的地址。在这个例子中,00402000地址(内存地址)处存放的就是ExitProcess函数的地址。
导入表由一系列的IMAGE_IMPORT_DESCRIPTOR结构组成
装入内存之后,first thunk指向函数的入口地址
网友评论