|
写在前面的话
自从HijackThis这个强力工具出现以后,各大论坛就不乏求道解惑的帖子。
而网上各种版本的中文教程也层出不穷,但都大同小异,特别是对于HijackThis的运作机理剖析不够,
以至于很多人盲目使用,轻则没有效果,重则损坏系统,让好好的一个工具成了摆设。
本文依据bleepcomputer.com的HijackThis Tutorial & Guide翻译而来。
文章详细分析了HijackThis的运行机制和修复手段,对每一个区段都作了详细的说明,并随着版本的更新而不断修订。
HijackThis项目详解
R0,R1,R2,R3 区段
这一个区段包括Internet Explorer起始页、主页以及Url搜索钩子。
R0 对应于Internet Explorer起始页和搜索助手。
R1 对应于Internet Explorer搜寻功能和其他特性。
R2 目前没被使用。
R3 对应于 Url 搜索钩子。Url搜寻钩子用于当你在浏览器的地址栏中键入一个http:// 或者ftp:// 等协议的地址的时候。
当你输入这种地址时,浏览器将会尝试靠它自己理解选择正确的协议,如果失败了它将会使用在 R3 区段中列出的 UrlSearchHook 试着找到你输入的地址。
注册表键:
HKLM\Software\Microsoft\Internet Explorer\Main,Start Page
HKCU\Software\Microsoft\Internet Explorer\Main: Start Page
HKLM\Software\Microsoft\Internet Explorer\Main: Default_Page_URL
HKCU\Software\Microsoft\Internet Explorer\Main: Default_Page_URL
HKLM\Software\Microsoft\Internet Explorer\Main: Search Page
HKCU\Software\Microsoft\Internet Explorer\Main: Search Page
HKCU\Software\Microsoft\Internet Explorer\SearchURL: (Default)
HKCU\Software\Microsoft\Internet Explorer\Main: Window Title
HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings: ProxyOverride
HKCU\Software\Microsoft\Internet Connection Wizard: ShellNext
HKCU\Software\Microsoft\Internet Explorer\Main: Search Bar
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\URLSearchHooks
HKLM\Software\Microsoft\Internet Explorer\Search,CustomizeSearch=
HKCU\Software\Microsoft\Internet Explorer\Search,CustomizeSearch
HKLM\Software\Microsoft\Internet Explorer\Search,SearchAssistant
例子列表 R0 - HKCU\software\Microsoft\Internet Explorer\Main,Start = http://www.google.com/
一个通常的疑问是紧接着其中一些项目的Obfuscated代表什么意思。 当某项被标注为Obfuscated的时候意味着它将难以被察觉或者了解。
在间谍软件术语中那意谓着间谍软件或者劫持程序藉由把数值转换成它容易地了解,但人类难以理解的一些其它的形式来隐藏它们的项目,
例如把项目以十六进制的形式加入注册表。这是隐藏它们的存在且使其难以被移除的惯用伎俩。
如果你不认识R0和R1中任何一个所指向的网站,并且你想要改变它,那么你可以让 HijackThis 安全地修复它们,
使它们不会对你的 Internet Explorer 设置造成危害。如果你想看看它们是怎样的网站,你可以去访问那些站点,
而且如果它有许多弹出窗口和链接,你几乎可以总是删除它们。需要注意的是如果R0/R1指向的是一个文件,
当你用 HijackThis 修复该项目时,Hijackthis 将不会删除指定的文件,你必须手动删除它。
有些以下划线(_)结束的特定的 R3 项目。比如它会看起来像是下面这个例子:
R3 - URLSearchHook: (no name) - {CFBFAE00-17A6-11D0-99CB-00C04FD64497}_ - (no file)
注意 CLSID,它是在 {} 之间的那些数字,有一个 _ 跟在它的末尾,用 HijackThis 移除它们有些时候可能会有困难。
要修复它你需要去下面的注册表键手动删除指定的注册表项目:
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\URLSearchHooks
删除在它下面的你想要移除的CLSID项目。请不要改动 CFBFAE00-17A6-11D0-99CB-00C04FD64497 这个CLSID,因为它是合法的默认值之一。
除非你认识被用于 UrlSearchHook 的软件,否则你通常应该 Google 一下并在做过一些研究之后,再让 HijackThis 修复它。
F0,F1,F2,F3 区段
这些区段包括从你的.ini文件,system.ini,win.ini以及注册表中等效的位置加载的应用程序。
F0 对应于 system.ini中的 Shell= 语句。在 system.ini 的 shell= 语句在 Windows 9X 及以下(ME也有使用?)的操作系统中被用于
指定哪个程序会为作为操作系统的外壳。外壳是负责加载你的桌面,处理窗囗管理,而且让使用者与系统互动的程序。当Windows启动时,
在shell语句之后列出的任何的程序都会被载入,并且充当默认的外壳。有一些程序可以被做为合法的外壳替代品,
但是他们通常已经不再被使用。
Windows 95 和 98 (Windows ME?)使用 Explorer.exe 作为它们的默认外壳。Windows 3.X 使用 Progman.exe 作为它的外壳 。
也可以在与 shell= 的同一行上列出多个将在Windows加载同时启动的其他程序,例如 Shell=explorer.exe badprogram.exe。
当 Windows 启动的的时候,这一行将会载入两个程序。
F1 对应于在 win.ini 中的 Run= 或者 Load= 项目。在 Run= 或者 Load= 之后列出的任何的程序将会在Windows启动的时候载入。
Run= 语句 主要在 Windows 3.1,95和98 时期用于保持和较旧的程序的向后兼容性。大多数的现代程序不再使用这个 ini 设定,
而且如果你并不使用较旧的程序你可以确定它们是可疑的。而Load= 语句被用于为你的硬件加载驱动程序。
F2 和 F3 项目对应于 F0 和 F1 的等效位置,但是它们在Windows XP,2000 和 NT中改为在注册表中储存。
这些版本的Windows通常不使用 system.ini 和 win.ini 文件。 他们使用被称为 IniFileMapping 的一个功能来代替向后相容性。
IniFileMapping 将.ini文件的所有的内容加入注册表中,用键来存储.ini中的的每一行。
当你运行一个需要从.ini文件中读取它的设置的程序时,它将会首先检查注册表键:
HKEY_LOCAL_MACHINE\software\Microsoft\ windows nt\CurrentVersion\ IniFileMapping 做.ini 映射,
如果顺利找到将会改为读取来自那里的设置。你可以看到这个键包含了IniFileMapping所引用的.ini文件。
在 F2 经常出现的另外一个项目是UserInit项,对应于Windows NT,2000,XP以及2003中的:
HKLM\Software\Microsoft\ windows nt\CurrentVersion\Winlogon\Userinit。
这个键指明哪个程序应该在用户登陆之后启动。这个键的默认程序是 C:\windows\system32\userinit.exe。
Userinit.exe是为你的用户账户恢复自己的的配置,字型,色彩等设置的程序。可以通过将要运行的程序以逗号隔开来增加的更多的程序。
举例来说:
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit=C:\windows\system32\userinit.exe,c:\windows\badprogram.exe。
当你登录的时候,这两个程序都会启动,这是一个常被特洛伊木马、劫持程序和间谍软件所利用的位置。
注册表键:
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping |
|