映像劫持 Image Hijack

本文介绍了Windows中的IFEO(Image File Execution Options)技术,主要用于解决旧程序在新系统中运行时的问题。IFEO通过设置Debugger参数实现映像劫持,使得程序在旧的堆管理机制下运行。恶意使用可能导致安全问题,如防火墙、杀毒软件被劫持。防范措施包括监测FIEO变化、限定权限等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

“映像劫持” —— 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值