随笔 - 37  文章 - 0  评论 - 150  阅读 - 29万

[Windows]关于映像劫持

什么是映像劫持

也许你曾遇到过这种情况:无论你将软件安装在什么地方,在运行的时候总会出现“系统找不到指定的文件”的错误提示,导致软件无法运行。如果你将软件的exe文件改个名称,就可以正常运行了。这种现象就叫做映像劫持。映像劫持是一种影响系统正常运转的手段,很多病毒、木马都会使用这种手段阻止安全软件的运行。

 

映像劫持的原理

映像劫持是利用WindowsIFEOImage File Execution Options)功能来实现的。IFEO实际上是Windows的一项正常功能,主要用于调试程序,其初衷是在程序启动的时候开启调试器来调试程序,这样一来可以在调试器中观察程序在难以重现的环境中的行为。例如,某个程序在随用户登录自动启动时会出错,但在登录后手动启动时却一切正常,这就可以通过IFEO设置一个调试器,无论程序何时启动,都会开启这个调试器对其进行调试,以便找出问题。

 

在注册表中,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options就是保存IFEO设置的地方。下面来演示一下IFEO正常的用法(假设你已经安装了Visual Studio):

 

打开注册表编辑器,在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options中添加一个新的项,取名为“calc.exe”。

 

打开刚刚创建的calc.exe项,在右侧的窗格中右击,新建一个字符串值,取名为“Debugger”,取值为“vsjitdebugger.exe”。关闭注册表编辑器。

 

此时运行系统自带的计算器,会弹出一个应用程序错误窗口,选择“调试程序”,就会启动Visual Studio对计算器进行调试。

 

当你运行calc.exe的时候,系统首先会在注册表的Image File Execution Options中寻找名为“calc.exe”的项,如果存在该项,则继续寻找名为“Debugger”的字符串值,如果找到,则转而启动Debugger值中指定的程序,即vsjitdebugger.exe,并将calc.exe的完整路径作为参数传递给它。所以,当你运行计算器的时候,系统实际上执行的是“vsjitdebugger.exe C:\Windows\System32\calc.exe”这个命令行,而不是“calc.exe”。

 

IFEO的初衷是很好的,但它的设计显然不够完善。在上面的例子中,如果你将“vsjitdebugger.exe”改成“cmd.exe”,那么运行计算器的时候却打开了一个命令行窗口;如果改成任意一个不存在的程序名称,例如“abc”,那么运行计算器的时候就会出现“系统找不到指定的文件”的错误,此时calc.exe这个程序(映像)被“劫持”了。

 

由此可以看出,映像劫持并不等于IFEO,反之亦然。映像劫持的正式英文名称其实是“Image Hijack”。

 

 

 

下面是我开发的一个用于编辑IFEO的小程序,其前身是skycn上的“映像劫持编辑器”。该程序由于被扫描出含有病毒,被停止下载了。对此我想说的是,IFEO属于注册表的敏感区域,修改这个区域的程序都有可能被杀毒软件封杀。如果你不放心的话,最好还是不要使用了。

 

==========

IfeoEditor

系统支持:XP/Vista/Win7

 

最新版本:2.0.0 Beta

下载地址:https://files.cnblogs.com/zplutor/IfeoEditor_2.0.0_Beta.rar

posted on   Zplutor  阅读(4889)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
< 2011年2月 >
30 31 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 1 2 3 4 5
6 7 8 9 10 11 12

点击右上角即可分享
微信分享提示