授之以鱼不如授之以渔:HijackThis详解

来源:互联网 发布:java eclipse安装教程 编辑:程序博客网 时间:2024/04/29 21:47

授之以鱼不如授之以渔:HijackThis详解

写在前面的话

自从HijackThis这个强力工具出现以后,各大论坛就不乏求道解惑的帖子。
而网上各种版本的中文教程也层出不穷,但都大同小异,特别是对于HijackThis的运作机理剖析不够,
以至于很多人盲目使用,轻则没有效果,重则损坏系统,让好好的一个工具成了摆设。
本文依据bleepcomputer.comHijackThis 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

使用的文件:
        c:/windows/system.ini
        c:/windows/win.ini


例子列表         F0- system.ini: shell=Explorer.exe Something.exe
        F2-REG:system.ini: UserInit=userinit,nddeagnt.exe
        F2-REG:system.ini: shell=explorer.exe beta.exe

对于 F0 ,如果你见到一个类似 Shell=Explorer.exe something.exe 的描述,那么你应该确实的删除它。你通常可以删除这些项目,
但是你应该查询 Google 和在下面列出的网站。

对于 F1 项目你应该google下在这里找到的项目以确定他们是否合法的程序。你也可以在下面的网站搜寻这些项目看看它是什么。

对于 F2, 如果你见到 “UserInit=userinit.exe,” 有或者没有 “nddeagnt.exe”,就像上述的例子中那样,那么你可以不理会它。
如果你见到 UserInit=userinit.exe(注意没有逗点) 那仍然没有问题,因此你应该不需要理会它。
如果你在 userinit.exe 后面发现其它的项目,那很可能是特洛伊木马或其他的恶意程序。
F2 Shell=也是一样:如果你单独见到 “explorer.exe”,它应该没有问题,否则,如果类似上面的例子,
那么它可能是潜在的特洛伊木马或恶意程序。你通常可以删除这些项目,但是你应该查询 Google 和在下面列出的站点。

请注意当修复这些项目的时候 HijackThis 不会删除除与它关连的文件。你一定要手动删除这些文件。

你可以在下面的站点寻找相关信息:

Bleeping Computer Startup Database
Answers that work
Greatis Startup Application Database
Pacman's Startup Programs List
Pacman's Startup Lists for Offline Reading
Kephyr File Database
Wintasks Process Library

N1,N2,N3,N4 区段

这些区段对应于Netscape和 Mozilla 浏览器的起始页和默认搜索页。

这些项目被储存在C:/Documents and Settings/YourUserName/Application Data 文件夹下不同的位置的 prefs.js 文件中。
Netscpae4 项目在通常存储在应用程序目录的 prefs.js 文件中,类似下面的位置C:/Program Files/Netscape/user/default/prefs.js。

N1 对应Netscape4 启始页和默认搜寻页。

N2 对应Netscape6 启始页和默认搜寻页。

N3 对应Netscape7 启始页和默认搜寻页。

N4 对应Mozilla 启始页和默认搜寻页。

使用的文件:prefs.js

由于间谍程序和劫机程序大多倾向于瞄准Internet Explorer所以这些项目通常是安全的。如果您发现在这里列出的网站不是您设置的,
您可以使用HijackThis修复它。目前只有一个已知的会改变这些设定的网站,就是在这里被讨论的 Lop.com。


O1 区段

这个区段对应主机(Host)文件重定向。

主机文件包含主机名(hostnames)到IP地址的映射。举例来说,如果我在我的主机文件中输入:

127.0.0.1 www.bleepingcomputer.com

当你试图访问 www.bleepingcomputer.com的时候,它将会检查主机文件,查看项目并将其转换成IP地址 127.0.0.1 而不是它的正确地址。

主机文件重定向是指,一个劫持程序修改了你的主机文件,在你的试图访问一个特定的网站时候将你重定向到另外一个网站。
因此如果某人增加一个项目类似于:

127.0.0.1 www.google.com

那么当你试图访问 www.google.com时你会被重定向到 127.0.0.1 这个你自己的计算机的地址。


例子列表         O1 - Hosts: 192.168.1.1 www.google.com

使用的文件:主机文件是能被任何文本文件编辑程序编辑的一个文本文件,在不同操作系统被预先设定储存在下列的位置中,除非你选择了不同的安装路径 -


操作系统         位置
Windows 3.1         C:/WINDOWS/HOSTS
Windows 95         C:/WINDOWS/HOSTS
Windows 98         C:/WINDOWS/HOSTS
Windows ME         C:/WINDOWS/HOSTS
Windows XP         C:/WINDOWS/SYSTEM32/DRIVERS/ETC/HOSTS
Windows NT         C:/WINNT/SYSTEM32/DRIVERS/ETC/HOSTS
Windows 2000         C:/WINNT/SYSTEM32/DRIVERS/ETC/HOSTS
Windows 2003         C:/WINDOWS/SYSTEM32/DRIVERS/ETC/HOSTS

在Windows NT/2000/XP中主机文件的位置能够通过修改注册表键来改变。

注册表键: HKEY_LOCAL_MACHINE/system/CurrentControlSet/Service/Tcpip/Parameter/: DatabasePath

如果你见到某个项目类似于上面的例子,并且你知道他们不是作为特定的原因存在的,你可以安全地移除他们。

如果你发现一个项目的主机文件位于 C:/Windows/Help/Host,这意味着你感染了 CoolWebSearch。
如果主机文件不在上表中的操作系统的默认位置上,那么它很有可能是由于被感染而引起的,你应该让 HijackThis 修复它。

你也可以下载Hoster程序使你能够恢复默认的主机文件。只要下载Hoster程序并运行它,点击Restore Original Hosts按钮然后退出即可。

O2 区段

这个区段对应于浏览器辅助程序对象(Browser Helper Object)。

浏览器辅助程序对象是为你的浏览器扩充功能的插件。他们可能被用于间谍程序和合法的程序,像是 Google 工具栏和 Adobe Acrobat Reader。
当你要决定是否移除它们的时候,你最好先研究下它们是否可能是合法的。

注册表键: HKLM/Software/Microsoft/Windows/CurrentVersion/Explorer/Browser Helper Objects
例子列表         O2 - BHO: NAV Helper - {BDF3E430-B101-42AD-A544-FADC6B084872}- C:/Program Files/Norton Antivirus/NavShExt.dll

这里有一个由Tony Klein 编译的关于浏览器辅助程序对象和工具栏的已知 CSLIDs 的优良列表,在这里:CLSID 列表
当查阅列表的时候,使用列出的在花括弧({})之间的数字作为 CLSID。
这些列出的 CLSID 相关的注册表项目包含了关于浏览器辅助程序对象和工具栏的信息。

当你用 HijackThis 修复这一类型的项目的时候, HijackThis 将会尝试删除列出的引起问题的文件。
有时即使Internet Explorer已经关闭,文件却仍然在使用中。如果在你用 HijackThis 修复它之后,文件仍然存在,
建议你重新启动进入安全模式删除有问题的文件。

O3 区段

这个区段对应于Internet Explorer 工具栏。

这些是在Internet Explorer的导航栏的下面的工具栏以及菜单。

注册表键: HKLM/Software/Microsoft/Internet Explorer/Toolbar
例子列表         O3 - Toolbar: Norton Antivrius - {42CDD1 BF-3 FFB-4238-8AD1-7859DF00B1D6} - C:/Program Files/Norton Antivirus/NavShExt.dll

这里有一个由Tony Klein 编译的关于浏览器辅助程序对象和工具栏的已知 CSLIDs 的优良列表,在这里:CLSID 列表
当查阅列表的时候,使用列出的在花括弧({})之间的数字作为 CLSID。
这些列出的 CLSID 相关的注册表项目包含了关于浏览器辅助程序对象和工具栏的信息。

当你用 HijackThis 修复这一类型的项目的时候, HijackThis 将会尝试删除列出的引起问题的文件。
有时即使Internet Explorer已经关闭,文件却仍然在使用中。如果在你用 HijackThis 修复它之后,文件仍然存在,
建议你重新启动进入安全模式删除有问题的文件。

O4 区段

这个区段对应在确定的注册表键处和启动文件夹中列出的将自动在Windows 启动时被加载的应用程序。
在这里被列出的注册表键适用于 Windows XP,NT,和 2000。如果它们也适用于其他的操作系统,请告诉我:

如果它看起来像一个注册表键,它应该在下面列出注册表键列表之中。

Startup: 这些项目提及的应用程序藉由把它们放入已登录的使用者的启动组中来加载。

Global Startup: 这些项目提及的应用程序藉由把他们放入所有的使用者的启动组中来加载。

启动注册表键:
        HKLM/Software/Microsoft/Windows/CurrentVersion/RunServicesOnce
        HKCU/Software/Microsoft/Windows/CurrentVersion/RunServicesOnce
        HKLM/Software/Microsoft/Windows/CurrentVersion/RunServices
        HKCU/Software/Microsoft/Windows/CurrentVersion/RunServices
        HKLM/Software/Microsoft/Windows/CurrentVersion/Run
        HKCU/Software/Microsoft/Windows/CurrentVersion/Run
        HKLM/Software/Microsoft/Windows/CurrentVersion/RunOnce
        HKCU/Software/Microsoft/Windows/CurrentVersion/RunOnce
        HKLM/Software/Microsoft/Windows/CurrentVersion/RunOnceEx

注意: HKLM 代表 HKEY_LOCAL_MACHINE,而 HKCU 代表 HKEY_CURRENT_USER。

启动位置的完整列表和它们的作用可以在这里找到:Windows Program Automatic Startup Locations

使用的目录:
        Startup: c:/documents and setting/username/start menu/program/startup
        Global: c:/documents and setting/all user/start menu/program/startup


例子列表         04- HKLM/../Run: [nwiz] nwiz.exe/install

当你修复 O4 项目的时候,HijackThis不会删除与项目关连的文件。你通常必须重新启动进入安全模式手动删除它们,
清除Global Startup和Startup项目的工作稍微有些不同。HijackThis 将会删除这些项目中找到的快捷方式,而不是他们所指向的文件。
如果是一个可执行程序驻留在Global Sartup或者Startup目录中那么有问题的项目将被删除。

虽然许多合法的程序也已这种方式启动,一个项目可能看起来像正常的但仍然可能是一个恶意程序。
你应该为 O4 项目查询下面的列表:

Bleeping Computer Startup Database
Answers that work
Greatis Startup Application Database
Pacman's Startup Programs List
Pacman's Startup Lists for Offline Reading
Kephyr File Database
Wintasks Process Library
Windows Startup Online Database

O5 区段

这个区段对应于控制板中的Internet选项显示控制。

至少在Windows XP中你可以藉由在 c:/windows/control.ini 中增加条目来制定哪些特定的控制板不可见的。

使用的文件: control.ini


例子列表         O5 - control.ini: inetcpl.cpl=no

如果你见到类似上面那行,那么那可能是一个信号:某个软件正在尝试使你难以改变你的设定。
除非它这么做是出于某个特定的已知理由,比如系统管理员设定的策略或者 Spybot- S&D 所做的限制,否则你可以让HijackThis修复它。

O6 区段

这个区段对应于通过变更注册表的特定设置对在Internet Explorer的选项或主页进行一个管理性的锁定。

注册表键: HKCU/Software/Policy/Microsoft/Internet Explorer/Restrictions


例子列表         O6 - HKCU/Software/Policy/Microsoft/Internet Explorer/Restrictions

这些项应该只在系统管理员故意如此设定或者使用了Spybots的Mode->Advanced Mode->Tools->IE Tweaks中的首页和选择项锁定时出现。

O7 区段

这个区段对应于通过变更注册表的一个项目从而不允许运行注册表编辑器。

注册表键: HKCU/Software/Microsoft/Windows/CurrentVersion/Policy/System


例子列表         O7 - HKCU/Software/Microsoft/Windows/CurrentVersion/Policy/System: DisableRegedit=1

请注意,许多系统管理员在办公室环境下故意将此项锁定,这时让 HijackThis 修复它可能会违背的企业的政策。
如果你是系统管理员而它在没有经你许可下就被启用了,那么让 HijackThis 修复它。

O8 区段

这一个区段对应于在Internet Explorer的上下文菜单中发现的额外的项目。

这意谓当你在你当前浏览的网页上右击的时候,你将会见到这些选项。

注册表键: HKEY_CURRENT_USER/Software/Microsoft/Internet Explorer/MenuExt


例子列表         O8 - Extra content menu item: &Google Search - res://c:/windows/GoogleToolbar1.dll/cmsearch.html

这些列出的项目表示当你右击一下的时候,将会在菜单中出现的物件,以及当你实际按下某个选项时会调用的程序。
特定例子,类似 "Browser Pal" 总是应该被移除,而且其余的应该使用Google研究下。在这里你可能找的一个合法程序的例子是Google Toolbar。

当你修复这些类型的项目的时候,HijackThis 不会删除列出的有问题的文件。建议你重新启动进入安全模式删除有问题的文件。


O9 区段

这个区段对应于在Internet Explorer工具栏上的按钮或者在Internet Explorer的‘工具’菜单中非默认安装的项目。

注册表键: HKEY_LOCAL_MACHINE/Software/Microsoft/Internet Explorer/Extension registry key。


例子列表         O9 - Extra Button: AIM (HKLM)

如果你不需要这些按钮和菜单项或者知道他们是恶意程序,你可以安全地移除他们。

当你修复这些类型的项目的时候,HijackThis 不会删除列出的有问题的文件。建议你重新启动进入安全模式删除有问题的文件。


O10 区段

这个区段对应于 Winsock 劫持程序或者其它已知的LSP.(Layered Service Provider)

LSPs 是一种将其它程序链接到你的计算机的 Winsock 2 设备一种方法。因为LSPs彼此链接在一起,当使用 Winsock 的时候,
数据也会在链中的每个LSPs间传输。间谍软件和劫持程序能够使用 LSPs 监视在你的因特网连接之上传输的所有的流量。

当删除这些对象的时候,你应该极度的小心,如果它在没有适当地修复链中的断点之前就被移除,你有可能会失去因特网连接。


例子列表         O10 - Broken Internet access beacuse of LSP Provider 'spsublsp.dll' missing

许多病毒扫描软件开始在Winsock层扫描病毒、特洛伊木马等。问题是它们大多数在删除有问题的 LSP 之后没有以正确的顺序重建LSPs。
这可能导致 HijackThis 发现一个类似于上面例子的问题并发出警告,即使因特网仍然能够工作。
在修复这些错误的时候,你应该因此寻求来自一个富有经验的使用者的建议。同时也建议你使用在下面链接的 LSPFix 来修复它们。

Spybot通常能够修复它们但请确认你拥有最新的版本。
或许你可以使用专门为这类型的问题题设计的一个工具,叫做 LSPFix。你也可以访问Zupe's LSP List Page的列表来查看它们是否合法。

O11 区段

这个区段对应于已经被添加到 IE 的Internet选项的高级选项卡的一个非默认的选项组。

如果你打开IE的Internet选项,你将会见到一个高级选项卡。通过在一个注册表键下面增加一个项目可以在那里显示一个新的组。

注册表键: HKEY_LOCAL_MACHINE/Software/Microsoft/Internet Explorer/AdvancedOptions


例子列表         O11 - Options group: [CommonName] CommonName

据 HijackThis 的作者Merijn的表示,目前只有一个已知的劫持程序使用这个项目,它就是 CommonName。
如果你在列表中见到 CommonName,你可以安全地移除它。如果它是另外的一个项目,你应该 Google 一下。


O12 区段

这个区段对应于IE浏览器扩展。

IE浏览器扩展是当IE启动时加载的,为IE提供功能扩展的一些程序。有许多浏览器扩展是合法的,比如PDF查看器和非标准图像查看器。

注册表键: HKEY_LOCAL_MACHINE/Software/Microsoft/Internet Explorer/Plugins


例子列表         Plugin for .PDF: C:/ Program Files/Internet explorer/plugin/nppdf32.dll

大多数的浏览器扩展是合法的,在你删除它们之前因此你应该先Google一下你不认识的项目。
一个已知的你应该删除的浏览器扩展是以OFB为扩展名的Onflow plugin。

当你用 HijackThis 修复这些类型的项目的时候,HijackThis 将会尝试删除列出的有问题的文件。有时候即使IE已经关闭,文件可能仍被使用。
如果在你用 HijackThis 修复它之后,文件仍然存在,建议你重新启动进入安全模式删除有问题的文件。

O13 区段

这个区段对应于一个 IE 默认前缀(DefaultPrefix) 劫持。

默认前缀是一个Windows设置,指定如何处理没有在前面输入http://、ftp:// 等的网址。
默认情况下 Windows 将会在开头附加 http://做为默认的 Windows 前缀。你可以通过编辑注册表将这换成一个你选择的默认前缀。
CoolWebSearch 这种劫持程序正是通过将其改为 http://ehttp.cc/? 来作恶。这意谓当你想连接一个网址比如说 www.google.com
你将会访问 [url]http://ehttp.cc/?www.google.com[/url] ,这实际上是 CoolWebSearch 的网站。

注册表键: HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/URL/DefaultPrefix/


例子列表         O13 - WWW. Prefix: http:// ehttp.cc/?

如果你遇到类似上面那个例子的问题,你应该运行 CWShredder。这个程序可以移除在你的机器上的 CoolWebSearch 的所有的已知变种。
你可以该在这里阅读如何使用 CWShredder 的指导:

How to remove CoolWebSearch with CoolWeb Shredder

如果 CWShredder 没找到和修复问题,你应该总是让 HijackThis 来修复这个项目。


O14 区段

这个区段对应于 ‘重置 Web 设置’ 劫持。

在你的计算机上有一个文件用于将IE的选项重置回他们的 Windows 默认值。
这个文件储存在 c:/windows/inf/iereset.inf 中而且包含需要使用的所有的默认设定。当你重置一个设定的时候,
它将会读取该文件并且将指定的设定改为在文件中描述的值。如果一个劫持程序改变了在那一个文件中的信息,
那么当你重置那一个设定的时候,你将再次被感染,因为它将会读取来自 iereset.inf 文件的不正确的信息。


例子列表         O14 - IERESET.INF: START_PAGE_URL=http://www.searchalot.com

请注意这个设定有可能已经合法地被一个计算机制造商或机器的系统管理员改变。如果你不认识那些地址你应该修复它。

O15 区段

这个区段对应于在IE受信区域和默认协议中的站点或 IP 地址。

受信区域

IE的安全性以一组区域为基础。每个区域有不同的安全措施来确定在此区域中的站点可以运行什么脚本和应用程序。
这里有被称为受信区域的一个安全区域。这一个区域有最低的安全措施而且允许其中的站点在不需要你确认的情况下运行脚本和应用程序。
它因此成为恶意站点使用的一个常见伎俩,以便以后能很容易地通过在受信区域中的站点感染你的计算机。

注册表键:
        HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/Internet Settings/ZoneMap/Domains
        HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/ Internet Settings/ZoneMap/Domains
        HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/Internet Settings/ZoneMap/Ranges
        HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Internet Settings/ZoneMap/Ranges


例子列表         O15 - Trusted Zone: http://www.bleepingcomputer.com
        O15 - Trusted IP range: 206.161.125.149
        O15 - Trusted IP range: 206.161.125.149(HKLM)

Domains或Ranges哪个将被IE使用决定于使用者正在尝试访问的网址。如果网址中包含一个域名,那么它将会将会在Domains子键中搜寻符合的项。
如果它包含一个IP地址那就搜寻Ranges子键来查找符合的项。当网域添加为一个受信站点或者受限站点他们将被分配一个值来表示。
如果他们被分配到 *=4 这个值,那一个网域将会被添加到受限区域。如果他们的值为 *=2, 那么那一个网域将会被加到受信区域。

增加一个 IP 地址的工作稍微有些不同。在 Software/Microsoft/Windows/CurrentVersion/Internet Settings/ZoneMap/Ranges 键下,
你可以找到名为Ranges1,Ranges2,Ranges3,Ranges4,...的其他的键。每个子键对应于一个特定的信任区域/协议。
如果你增加一个 IP地址到一个安全区域,Windows 将会在以 Ranges1 为开始创建一个包涵该区域所有IP地址及特定协议的子键。
举例来说,如果你增加如一个受信站点 http://192.168.1.1 ,Windows 会产生第一个可用的的Ranges键 (Ranges1) 而且增加一个数值 http=2。
任何将来的可信赖的 http:// IP 地址将会被添加加到 Range1 键。现在如果你增加一个使用 http 协议的受限的站点 (例如 http://192.16.1.10)
Windows 会按顺序创建一个新的键,叫做Range 2。它的值会是 http=4,而且任何以后添加到受限站点的 IP 地址将会被放在这个键下。
每个协定和信任区域设定组合都会延续这种方式。

如果你曾经在这里见到任何域名或者IP地址,除非它是一个你认识的网址,比如你的公司使用的,否则通常应该移除它。如果你希望修复它们,
你可以在free.aol.com找到一个公共的列表。当他们基本上是不必要的时候,
对我个人来讲会把所有的项目从受信区域移除。

ProtocolDefaults

当你使用 IE 连接到一个站点的时候,那一个站点的安全权限授权于它所在的区域。5个区域中的每一个都有一种相关的具体的识别号码。
这些区域以及它们相关联的号码的是:

区域         区域映射
My Computer         0
Intranet         1
Trusted         2
Internet         3
Restricted         4


每一个用于连接到站点的协议,像是 HTTP、FTP、HTTPS,都被映射到这些区域其中的一个。下列各项是默认的映射:

协议         区域映射
HTTP         3
HTTPS         3
FTP         3
@vit         1
shell         0

举例来说,如果你连接到一个使用 http:// 的站点那么将会是默认的Internet区域的一部份。这是因为 http 的默认区域是 3 即Internet区域。
如果恶意软件改变了特定协议的默认区域那么就会发生问题。举例来说,如果恶意软件已经将 HTTP 协议的默认区域改为 2,
那么你使用 http 连接到的任何站点将会被认为是处于受信区域中。到现在为止尚没有已知的恶意软件利用它,但我们可能会看到HJT正在枚举这个键。

注册表键:
        HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Internet Settings/ZoneMap/ProtocolDefaults
        HKEY_CURRENT_USER/SOFTWARE/Microsoft/Windows/CurrentVersion/Internet Settings/ZoneMap/ProtocolDefaults

如果默认的设定被改变你们将会见到一个类似下面的 HJT 项目:


例子列表         O15 - ProtocolDefaults: 'http' protocol is in Trusted Zone, should be Internet Zone (HKLM)

你可以简单的通过HJT项目来修复这些设定使他们回到默认值。

O16 区段

这个区段对应于 ActiveX 对象也被称为Downloaded Program Files。

ActiveX 对象是从网站下载到你的计算机上的程序。这些对象被储存在 C:/Windows/Download Program Files下。
它们同样以在花括号之间的那串数值作为 CLSID 来被注册表引用。这里有许多合法的 ActiveX,比如这个iPix Viewer的例子。


例子列表         O16 - DPF: {11260943-421B-11D0-8 EAC-0000C07D88 CF}-(iPix ActiveX 控制) http:// www.ipix.com/download/ipixx.cab

如果你发现不认识的名字或地址,你应该 Google 下看看它们是否是合法的。如果你感觉它们不是,你可以修复它们。
即便删除了你计算机上的几乎所有 ActiveX 对象也不会有什么问题,因为你可以再次下载它们,
要知道有一些公司的应用程序也会使用ActiveX对象,所以要小心。你应该总是删除带有sex、porn、dialer、free、casino等词语的 016 项目。

有一个叫做SpywareBlaster的带有大量恶意 ActiveX 对象的数据库的程序。你可以下载和通过它搜寻已知的 ActiveX 对象数据库。
关于使用 SpywareBlaster 的指南可以在这里找到:

Using SpywareBlaster to protect your computer from Spyware, Hijackers, and Malware.

当你修复 O16 项目的时候,HijackThis 将会尝试从你的硬盘删除他们。通常这不会有什么问题,但是有时候 HijackThis 可能不能删除有问题的文件。
如果发生了这种情况,请重新启动进入安全模式删除它。

O17 区段

这个区段对应于 Lop.com 域名入侵。

当你使用主机名像是 www.bleepingcomputer.com 而不是IP地址访问一个网站的时候,你的计算机通过一个DNS服务器将主机名解析为一个IP地址。
域名入侵是指,劫持程序改变你的机器上的 DNS 服务器指向他们自己的服务器,他们能将你定向到他们希望的任何的位置。
藉由把 google.com 加入他们的 DNS 服务器,他们能在你试图访问 www.google.com 的时候,把你重定向到一个他们的选择的网站。


例子列表         017- HKLM/system/CS1/service/VxD/ MSTCP: NameServer=69.57.146.14,69.57.147.175

如果你见到此项目而它并不属于你所认识的ISP或者公司的网域,以及 DNS 服务器不属于你的ISP或者公司,那么你应该让HijackThis修复它。
你可以到 Arin 查询下 whois a 通过DNS服务器的IP地址来判断他们属于哪个公司。

O18 区段

这个区段对应于额外的协议和协议劫持。

这个方法通过将你的电脑使用的标准协议驱动更改为劫持程序所提供的驱动来实现。这让劫持程序可以控制你的计算机以特定方式发送接受信息。

注册表键:
        HKEY_LOCAL_MACHINE/Software/Class/PROTOCOLS/
        HKEY_LOCAL_MACHINE/Software/Class/CLSID
        HKEY_LOCAL_MACHINE/Software/Class/Protocol/Handler
        HKEY_LOCAL_MACHINE/Software/Class/Protocol/Filter

HijackThis 首先读取非标准的协议的注册表协议区段。一但找到便在列出的CLSID中查询于关于它的文件路径的信息。


例子列表         O18 - Protocol: relatedlinks - {5AB65DD4-01 FB-44D5-9537-3767AB80F790} - C:/PROGRA~1/COMMON~1/MSIETS/msielink.dll

通常嫌犯是CoolWebSearch,Related Links和Lop.com。如果你发现了这些项,你可以让 HijackThis 修复它。

使用Google来看看文件是否是合法的。你也可以使用Castlecop's O18 List来帮助你确认文件。

需要注意的是修复这些项目似乎不会删除与它有关的注册表项目或文件。你应该重新启动进入安全模式手动删除有问题的文件。

O19 区段

这个区段对应于用户式样表劫持。

式样表是描述html页面的布局,彩色和字型如何显示的一个模板。这一类型的劫持程序会重写为残障人士设计的默认式样表单,
并引起大量的弹出窗口和潜在的速度降低。

注册表键: HKEY_CURRENT_USER/software/Microsoft/Internet Explorer/Style/: User Stylesheets


例子列表         O19 - User style sheet: c:/Windows/Java/my.css

除非你确实创建了自己的式样,否则你通常可以移除它们。

当你修复项目的这些类型的时候, HijackThis 不会删除在列的有问题的文件。 建议你重新启动到安全模式删除式样表单。


O20 区段

AppInit_DLLs

这个区段对应于通过 AppInit_DLLs 的注册表值和 Winlogon Notify 子键载入文件

AppInit_DLLs 注册表值包含了当 user32.dll被载入时将会载入的一连串的动态链接库。而大多数的 Windows 可执行程序都会使用user32.dll,
这意谓着任何在 AppInit_DLLs 注册表键列出的DLL也会被载入。当它被多个进程里面载入的时候,要移除 DLL 将会变得非常困难,
其中一些很难在不引起系统不稳定的情况下被终止。user32.dll文件也被很多当你登录时系统自动启动的进程使用。
这意谓着 AppInit_DLLs 中的文件将会非常早在我们可以访问系统之前就被载入,Windows 启动程序可以允许DLL隐藏自身或保护自身。

这一个方法已知被一个 CoolWebSearch 的变种使用而且只能在注册表编辑器中同过右击数值查看,并且选择修改二进制数据。
另外 Registrar Lite 也可以相对容易的查看这些DLL。

注册表键: HKEY_LOCAL_MACHINE/Software/Microsoft/Windows NT/CurrentVersion/Windows//AppInit_DLLs


例子列表         O20 - AppInit_DLLs: C:/Windows/system32/winifhi.dll

有些使用这个注册表键的合法程序,所以当删除在列的文件的时候,你应该小心。
使用我们的Bleeping Computer Startup DatabaseCastlecops O20 list 来帮助你确认文件。

当你修复这一类型的项目的时候,HijackThis 不会删除在列的有问题的文件。建议你重新启动进入安全模式删除有问题的文件。


Winlogon Notify

Winlogon Notify键通常被 Look2Me 感染。HijackThis 将会列出所有非标准的Winlogon Notify键,以便你能容易地发现哪一个是本不属于那里的。
你可以通过列出的在%SYSTEM%目录下的一个随机名字的Dll来确认 Look2ME 感染的键。即使它并不属于那里,该键也会有一个看似正常名字。

注册表键: HKEY_LOCAL_MACHINE/Software/Microsoft/Windows NT/CurrentVersion/Winlogon/Notify


例子列表         O20 - Winlogon Notify: Extensions -C:/Windows/system32/i042laho1d4c.dll

当你修复这个项目的时候它将会移除注册表中的键但保留文件。你必须手动删除这个文件。

O21 区段

这个区段对应于通过 ShellServiceObjectDelayLoad 注册表键载入的文件。

这个注册表以于Run键相似的方式包含数值。与直接指向文件本身不同的是,它指向CLSID的InProcServer,它包含有关于正在被使用的特定DLL文件的资讯。

当你的计算机启动的时候,在这个键下面的文件自动地被 Explorer.exe 载入。因为 Explorer.exe 是你的计算机的外壳程序,它总是会启动,
那么这样一来在这个键下面的文件也总是会被载入。因此这些文件在任何人为干预发生之前就早在启动过程中载入了。

使用方法的劫持程序能被下列项目辨认出:


例子列表         R0 - HKCU/Software/Microsoft/Internet Explorer/Main,Start Page = C:/Windows/secure.html
        R1 - HKCU/Software/Microsoft/Internet Explorer/Main,Default_Page_URL = C:/Windows/secure.html

注册表键: HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/ShellServiceObjectDelayLoad


例子列表         O21 - SSODL: System - {3CE8EED5-112D-4E37-B671-74326D12971E} - C:/Windows/system32/system32.dll

HijackThis 使用内部的的白名单来排除这个键下面的合法项目。如果你为这见到了这个个列表,那么它就不是标准的而且应该被视为可疑的。
使用我们的Bleeping Computer Startup DatabaseCastlecops O20 list 来帮助你确认文件。

当你修复这些类型的项目时,HijackThis 不会删除在列的有问题的文件。建议你重新启动进入安全的模式删除有问题的文件。

O22 区段

这个区段对应于通过 SharedTaskScheduler 注册表值载入的文件。

当你启动Windows的时候,这一个注册表项目会自动地运行。当前只有CWS.Smartfinder使用这个键。

注册表键: HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/Explorer/SharedTaskScheduler


例子列表         O22 - SharedTaskScheduler: (no name){3F143C3A-1457-6CCA-03A7-7AAA23B61E40F} - c:/windows/system32/mtwirl32.dll

小心地移除该键所列出的项目,因为有些是合法的。你的可以使用 google 来了解它是否合法的。CWS.Smartfinder可以用CWShredder移除。
使用我们的Bleeping Computer Startup DatabaseCastlecops O20 list 来帮助你确认文件。

Hijackthis 将会删除与SharedTaskScheduler相关的项目,但不会删除它指向的 CLSID 以及CSLID 的 Inprocserver32 指向的文件。
因此你应该总是重新启动到安全模式手动删除这些文件。

O23 区段

这个区段对应于XP,NT和2003的系统服务。

服务是在Windows启动时自动载入的程序。这些服务无论是否有使用者登陆到计算机都会被载入,而且经常被广泛用处理系统任务,
像是Windows操作系统功能,防病毒软件或应用程序服务器。近来恶意软件利用服务来感染计算机呈增加趋势。
因此仔细调查列出的看起来不正确的每一个服务是很重要的。你可能找到的常见的恶意软件服务是Home Search Assistant和Bargain Buddy的新变种。
你可以在下面找到一些相关的例子。

多数的微软服务已经被加到白名单,因此他们将不会被列出。如果你想同时查看它们你可以使用 /ihatewhitelists 参数启动 HijackThis。

合法服务的例子:


例子列表         O23 - Service: AVG7 Alert Manager Server (Avg7 Alrt)- GRISOFT , s.r.o。 - C:/PROGRA~1/Grisoft/AVGFRE~1/avgamsvr.exe

Home Search Assistant的例子:


例子列表         O23 - Service: Workstation NetLogon Service - Unknown - C:/Windows/system32/crxu.exe

Bargain Buddy 的例子:


例子列表         O23 - Service: ZESOFT - Unknown - C:/Windows/zeta.exe
        O23 - Service: ISEXEng - Unknown - C:/Windows/system32/angelex.exe

当你修复一个 O23 项目的时候 Hijackthis 将会将这一个服务改为已禁用,并停止该服务,然后要求使用者重新启动。
它将不会删除注册表中的服务或者它指向的文件。为了删除它你需要知道服务名。这个名字是在括号之间的文本。
如果显示出的名字和服务名字相同,那么它就不会再列出服务名字。

有你可以用三种方法来删除服务:


    1. 通过在命令行提示符下键入 XP 的 SC 指令来删除它:

       sc delete servicename

       你可以使用下列的例子中的注册表文件来删除服务:

    2. 使用注册表文件删除服务。下面的注册表文件是一个该如何移除 Angelex.exe Bargain Buddy变种的例子:

       REGEDIT4

       [-HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Enum/Root/LEGACY_ISEXENG]
       [-HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/ISEXEng]
       [-HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Enum/Root/LEGACY_ISEXENG]
       [-HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/ISEXEng]
       [-HKEY_LOCAL_MACHINE/SYSTEM/ControlSet003/Enum/Root/LEGACY_ISEXENG]
       [-HKEY_LOCAL_MACHINE/SYSTEM/ControlSet003/Services/ISEXEng]

    3. 使用 HijackThis 删除服务。你可以点击ConfigMiscTools,按下Delete an NT service.. 按钮。当它打开以后你应该输入服务名按下OK


要小心的移除这些键中列出的项目,它们大部分是合法的。你可以使用Bleeping Computer Startup Database来研究 O23 项目。

结论

HijackThis 是检查浏览器的细节以及Windows 正在运行什么的一个非常有力的工具。不幸地是要诊断 HijackThis 的扫描结果可能会很复杂。
希望我的忠告和解释将会略微减轻它的复杂度。这个程序需要谨慎的使用,如果不正确地移除了一些项目会引起合法的程序出问题。
如果你有任何的疑问可以在我们的间谍软体论坛中贴出来。

如果你希望得到关于使用HijackThis和其他的反间谍软件移除的恶意软件的更多资讯,你可以参加 Bleeping Computer HijackThis Trainee 计划。

--
Lawrence Abrams
Bleeping Computer Internet Security and Spyware Tutorials

校订信息:
03/30/04: 增加所有的启动位置到 O4 区段。增加关于 F2 区段的资讯。增加在文件末尾的已命名的锚链标签使人们能够链接到我。
03/31/04: 增加更完整的关于 F2 和 F3 区段的资讯。
04/01/04: 增加更多的迫切的关于病毒扫描器的不适当地链接了 LSPs的警告到 O10 区段。
04/09/04: 增加关于 CWShredder 的资讯到 O13 区段。
04/24/04: 增加关于 Obfuscated 的意义的资讯到 R 区段。
04/25/04: 增加在顶部的骗子警告并改变了风格以反映较新的指南。
05/21/04: 增加关于以_结束的 R3 项目的资讯。
07/09/04: 增加关于新的 O20,O21,O22 项目,新的进程管理和主机文件管理的资讯,以及在 1.98 版中的错误修正校订。
12/24/04: 增加关于 1.99.0 版的新功能扩展更新了 O15 项目的资讯,在 O23 项目方面的信息以及新功能像是多进程终止、广告间谍和程序介面的信息。
02/16/05: 增加关于 1.99.1 版的新功能的资讯。以及在新的 O15 项目的重点: 默认协议和 O20 Winlogon Notify 键。
5/29/06: 更新了 O6 项目以反映免疫功能的正确位置。