镜像文件执行选项(IFEO)用于调试。然而,恶意软件不仅会检查是否有调试器活动,而且还会利用IFEO提供的特性来发挥自己的优势。

意图

IFEO设置存储在Windows注册表中。创建IFEO注册表项的目的是为开发人员提供调试软件的选项。这相对容易做到。开发人员可以使用注册表项将任何程序附加到任何可执行文件

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image文件执行选项\{可执行文件名称}

-增加价值

" Debugger " = "{调试器的完整路径}"

例如,如果你使用进程资源管理器,有一个选项“替换任务管理器”:

PE1

上述动作的结果是对应的键和值如下:

PE2

因此,如果您使用Ctrl-Alt-Del和“开始任务管理器”或任何其他通常打开任务管理器的方法,进程资源管理器也会打开。

分析师

不难想象,恶意软件分析师可以使用这个选项。例如,您可以使用它作为断点,如果您知道您正在工作的恶意软件启动另一个可执行程序,如cmd, powershell,或iexplore。很容易检查使用了哪些参数传递给调试器

Interceptor1

恶意软件

对于恶意软件作者来说,有几个原因对IFEO感兴趣:

  • 首先,它为代码提供了一个起点。您可以将可执行文件附加到流行的Windows可执行文件(最好是默认运行的),您的可执行文件也会运行。Userinit.exe和iexplorer .exe是过去经常使用的例子。
  • 其次,您可以通过将调试器附加到所述软件的主要可执行程序来干扰保护软件。一个“古老”的例子是Ushedix该公司使用这种方法禁用了当时流行的许多安全程序。
  • 最后但并非最不重要的是,恶意软件可以检查在IFEO键下是否有任何非默认条目,以此来确定它是否落在了分析师的机器上,并相应地改变其行为。

一些额外的背景信息

正如前面指出的,这些选项是用于调试的,但是由于没有检查“Debugger”值中列出的程序是否真的是一个调试器,因此可能性非常多。另一方面,选择拦截的应用程序必须是可执行的。您也可以干扰dll的正常行为,但是必须使用值BreakOnDllLoad来实现这一点。它的处理方式非常不同,因为它不会传递给另一个可执行文件或DLL。该值的唯一选项是“on”和“off”。

必威平台APP伪反恶意软件检查IFEO密钥的恶意条目,一般检测为安全。劫持或pug .可选。ifeo,并能够移除他们。

总结

映像文件执行选项用于拦截对可执行文件的调用。其预期用途是用于调试或替换应用程序,但将其作为一种简单的方法来停止执行可执行文件也是一种常见的实践。

Pieter Arntz