当一个可执行文件运行时,Windows加载器将可执行模块映射到进程的地址空间中,加载器分
析可执行模块的输入表,并设法找出任何需要的DLL,并将它们映射到进程的地址空间中。
由于输入表中只包含DLL名而没有它的路径名,因此加载程序必须在磁盘上搜索DLL文件。首先会
尝试从当前程序所在的目录加载DLL,如果没找到,则在Windows系统目录查找,最后是在环境变
量中列出的各个目录下查找。利用这个特点,先伪造一个系统同名的DLL,提供同样的输出表,每
个输出函数转向真正的系统DLL。程序调用系统DLL时会先调用当前目录下伪造的DLL,完成相关功
能后,再跳到系统DLL同名函数里执行。这个过程用个形象的词来描述就是系统DLL被劫持
(hijack)了。
示例DELPHI源码:
利用DLL劫持内存补丁技术注入
最新推荐文章于 2024-06-07 10:46:47 发布