注:System Repair Engineer API HOOK检测功能是一项高级功能,仅供参考使用。本文档可能会在未通知的情况下予以变更。

什么是 API HOOK

在 Windows 操作系统里面,API是指由操作系统提供功能的、由应用程序调用的函数。这些函数在Windows操作系统里面有上千个之多,分布于不同的DLL文件里面或者EXE文件里面。应用程序通过调用这些函数来获得一些功能的支持。

API HOOK:API HOOK技术是一种用于改变API执行结果的技术,Microsoft 自身也在Windows操作系统里面使用了这个技术,如Windows兼容模式等。

API HOOK 技术并不是计算机病毒专有技术,但是计算机病毒经常使用这个技术来达到隐藏自己的目的。

隐藏:是Rootkits各种表现形式里面的一种,也是最重要的一种。

如果一个计算机病毒实现了自我隐藏,那么99%的软件将无法发现他们,包括:资源管理器、任务管理器等。

System Repair Engineer API HOOK 检测

鉴于很多计算机病毒(如灰鸽子后门程序等)采用 Win32 API HOOK 技术来达到隐藏自身的目的,System Repair Engineer (SREng) 从 2.3 版本开始正式提供对Win32 API HOOK 检测的支持。

System Repair Engineer API HOOK 检测 功能是专门为有一定计算机知识的人设计的一个高级功能,其主要目的是警示用户系统里面的哪些API和预期值不符。一个有经验的分析人员能够从不符的API名称里面得知潜在的危险是什么。

 SREng 2.4 版本新增功能
    在 System Repair Engineer (SREng) 2.4版本里面,增加了显示被HOOK的API是由系统中的哪一个文件来执行的。同时增加了HOOK 安全级别判定功能,当 System Repair Engineer确认是系统自带的模块或者安全模块来执行HOOK操作的时候,System Repair Engineer会自动的降低安全警告等级到普通,否则会显示为危险。

当 System Repair Engineer (SREng) 发现有Win32 API 被 HOOK 的时候,会在桌面右下角弹出警告气泡,同时,智能扫描的扫描日志里面也能够记录被 HOOK 的API内容。

 SREng 2.4 版本新增功能
    在 System Repair Engineer (SREng) 2.4版本里面,气泡窗口不同于早期版本,新的气泡窗口优化了显示方法,增加了查看详情的文字链接。 点击这个链接以后能够看到更详细的解释信息以及高级操作方式。

一旦你看到类似于下面的气泡提示,就需要你特别注意了:

例如:用户机器里面被植入灰鸽子后门程序以后SREng的报警提示信息:

 

从上图可以看到,在 System Repair Engineer (SREng) 的进程空间里面,有大量的API函数和预期值不符。这是因为在这台计算机上被植入了灰鸽子后门程序。

从函数名可以得出,被HOOK的API和注册表的各种枚举操作以及文件的枚举操作相关。

上述被HOOK的API函数将造成通过正常的方法是无法发现灰鸽子的文件和注册表键值的。包括一些杀毒软件都会由于这个问题而造成无法发现和清除用户系统里面正在运行的灰鸽子后门程序。

 SREng 2.4 版本新增功能
    在 System Repair Engineer (SREng) 2.4版本里面,增加了详情显示和高级操作模式。只需要在Pop窗口里面点击“查看详情”文字就可以看到高级操作模式的操作对话框。


在详细信息操作对话框里面,除了能够显示API是由谁HOOK的以外,还能够对入口点错误类型的API进行还原。只需要点击修复入口点错误按钮即可。

修复入口点以后,再查看服务列表,会发现修复前不能发现的灰鸽子远程后门软件的服务已经出现在服务列表里面了。这是因为API HOOK入口点修复完成以后,依靠API HOOK来实现自我隐藏功能已经失效所致。



注意事项:

  1. 一些正常的安全软件也会对一些API进行HOOK操作以实现安全监控功能。这类软件一般都会有明确的标示信息,例如拥有自己的数字签名或文件是存在在厂商自己的软件安装目录之下。

  2. 对于使用驱动程序进行 HOOK 的软件,例如 Kaspersky Antivirus 6.X,受制于操作系统的权限控制限制,System Repair Engineer (SREng)无法获得具体的文件路径,而只能显示HOOK指向的目标地址。

下表归纳了一些重要的基本API,如果发现这些API中的某一个或者多个被HOOK了,那么就需要非常小心的检查是否有Rootkits的存在了。

API 函数名里面含有 EnumQueryFirstNext 字符字样的所有API均属于需要特别关注的API。如:

  • FindFirstFileA
  • FindFirstFileW
  • FindFirstFileExA
  • FindFirstFileExW
  • FindNextFileA
  • FindNextFileW
  • RegEnumKeyA
  • RegEnumKeyW
  • 等……

System Repair Engineer API HOOK 详细信息指示以及恢复功能

入口点修复和HOOK详细信息指示功从 System Repair Engineer (SREng) 2.5 版本开始支持。

© Smallfrogs, 2003-2007. 保留所有权利