[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
当Windows加载器装入PE文件时,会将相关DLL映射到内存,并将相应的地址填充到IAT里。为了加快程序加载速度,可以事先将正确的函数地址填充到IAT里。 此时BoundImport会假设:1.当进程初始化时,需要的DLL实际上加载到了它们的首选基地址中。2.自从绑定操作执行以来,DLL输出表中引用的符号位置一直没有改变。 如果上面的两个假设中有一个是假的,IAT中所有地址均是无效的,加载器会从INT表里获得所需要的信息重新填充IAT。BoundImport里就是存有这些DLL的相关信息。也就是说,你将BoundImport结构清零,不会影响程序执行,程序只是每次运行直接填充IAT,而不使用IAT中己存在的函数地址。