admin管理员组

文章数量:1570221

“映像劫持” —— IFEO(Image File Execution Options:映像文件执行参数),其实应该被称为 “Image Hijack”

原理

原理请看 tombkeeper 所表:

Windows NT系统在执行一个从命令行调用的可执行文件运行请求时,首先会检查这是否是一个可执行文件,如果是,又是什么格式的,然后就会检查是否存在: [HKLM/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Image File Execution Options/ImageName] 如果存在,首先会试图读取这个键值: [HKLM/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Image File Execution Options/ImageName] "Debugger"="debug_prog" 如果存在,就执行“debug_prog ImageName”

来源与说明

在 Windows NT 架构的系统里,IFEO 是为一些在默认系统环境中运行时可能引发错误的程序执行体提供特殊的环境设定,微软为何这么做?因为在 NT 时代,系统使用的是一种早期的堆管理机制,(这里的堆英文名为 Heap,应用程序管理的内存区域)后面引用了动态内存分配,但这样就会使得有些程序再也无法正常运行,怎么办?为了兼容,微软特此造出了 IFEO 技术,当有这么一个程序,它无法在新的系统正常运行,为了让系统为其提供旧的堆管理机制,这时候就是 FIEO 大显身手的时候,它会介入进来,使得系统给它提供旧的对管理机制,达到让其正常运行的目的。
除此之外,微软想着如果加入路径控制会带来判断上的麻烦并且操作上也不灵活,以及注册表冗余,所以微软就采用忽略路径的方式来达到 FIEO 对该可执行程序进行控制的目的,所以当 FIEO 指定了一个可执行程序文件进行控制,那么无论这个可执行程序在哪里,它都将受 FIEO 的控制,楚门的世界?

已知 FIEO 参数有:
  ApplicationGoo
  Debugger
  PageHeapFlags
  DisableHea

本文标签: 映像ImageHijack