IAT表
我们用OD查看程序中调用API时是4070BC中存储的值
4070BC中存储的是一个函数地址,这个地址是一个dll提供的空间
文件对齐和内存对齐相同
我们在文件中查看70bc调用的地址是7604
7604中存储的是MessageBox,是函数名称
可以看出程序运行前和运行后不同
是使用了动态链接库,动态链接库只有在程序运行时才会加载到程序中
如果调用是我们自己写的程序,地址都是写死的
为了防止dll文件重定位,所以调用dll中函数时不能将地址直接确定
所有dll加载完后,在确定地址
导入表
导入表在目录项中的第二项
IMAGE_THUNK_DATA可以用来表示函数名,也可以表示函数导出序号
程序真正加载后系统调用GetProcAddress函数获得INT表中函数地址放入IAT表中
NAME只有一个字节,是第一个字符,沿着一直往后找,一直到0