- UID
- 20765
注册时间2006-8-25
阅读权限30
最后登录1970-1-1
龙战于野

该用户从未签到
|
授之以鱼不如授之以渔:HijackThis详解
写在前面的话
自从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
使用的文件:
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的列表来查看它们是否合法。
[ 本帖最后由 Flyeagle 于 2006-9-12 15:39 编辑 ] |
|