HijackThis日志细解正文(三)
如果您在HijackThis的扫描日志中发现了F2项并进行了修复,一旦因为某些原因想要反悔,请“不要”使用HijackThis的恢复功能来取消对F2项目的修改(我指的是config菜单——Backups菜单——Restore功能),因为据报告HijackThis在恢复对F2项的修改时,可能会错误地修改注
此bug涉及的注册表键值是
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon:UserInit
一旦对上面键值相关的F2项使用HijackThis修复后再使用HijackThis的恢复功能恢复对这一项的修改,可能会错误修改另一个键值
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon:Shell
所以,如果您在HijackThis的扫描日志中发现了类似下面的F2项并进行了修复,一旦因为某些原因想要反悔,请手动修改上面提到的UserInit键值(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon:UserInit)
F2 - REG:-System.ini: UserInit=C:\WINDOWS\System32\Userinit.exe
F2 - REG:-System.ini: UserInit=C:\Windows\System32\wsaupdater.exe,
不过,说实话,在我的记忆中我从没有处理过含有F2项的HijackThis扫描日志。
1. 项目说明
F - ini文件中的自动运行程序或者注册表中的等价项目
F0 - ini文件中改变的值,system.ini中启动的自动运行程序
F1 - ini文件中新建的值,win.ini中启动的自动运行程序
F2 - 注册表中system.ini文件映射区中启动的自动运行程序或注册表中UserInit项后面启动的其它程序
F3 - 注册表中win.ini文件映射区中启动的自动运行程序
F0和F1分别对应system.ini和win.ini文件中启动的自动运行程序。
F0对应在System.ini文件中“Shell=”这一项(没有引号)后面启动的额外程序。在Windows 9X中,System.ini里面这一项应该是
Shell=explorer.exe
这一项指明使用explorer.exe作为整个操作系统的“壳”,来处理用户的操作。这是默认的。如果在explorer.exe后面加上其它程序名,该程序在启动Windows时也会被执行,这是木马启动的方式之一(比较传统的启动方式之一)。比如
Shell=explorer.exe trojan.exe
这样就可以使得trojan.exe在启动Windows时也被自动执行。
F1对应在win.ini文件中“Run=”或“Load=”项(均没有引号)后面启动的程序。这些程序也会在启动Windows时自动执行。通常,“Run=”用来启动一些老的程序以保持兼容性,而“Load=”用来加载某些硬件驱动。
F2和F3项分别对应F0和F1项在注册表中的“映像”。在Windows NT、2000、XP中,通常不使用上面提到的system.ini和win.ini文件,它们使用一种称作IniFileMapping(ini文件映射)的方式,把这些ini文件的内容完全放在注册表里。程序要求这些ini文件中的相关信息时,Windows会先到注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping这里查找需要的内容,而不是去找那些ini文件。F2/F3其实和F0/F1相类似,只不过它们指向注册表里的ini映像。另外有一点不同的是,F2项中还报告下面键值处额外启动的程序
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit
此处默认的键值是(注意后面有个逗号)
C:\WINDOWS\system32\userinit.exe,
(根据您的Windows版本和安装目录的不同,路径里的“C”和“windows”可能不尽相同,总之这里默认指向%System%\userinit.exe
%System%指的是系统文件目录
对于NT、2000,该键值默认为X:\WINNT\system32\userinit.exe
对于XP,该键值默认为X:\WINDOWS\system32\userinit.exe
这里的X指的是Windows安装到的盘的盘符。此问题后面不再重复解释了。)
这个键值是Windows NT、2000、XP等用来在用户登录后加载该用户相关信息的。如果在这里添加其它程序(在该键值中userinit.exe后的逗号后面可以添加其它程序),这些程序在用户登录后也会被执行。比如将其键值改为
C:\windows\system32\userinit.exe,c:\windows\trojan.exe
则c:\windows\trojan.exe这个程序也会在用户登录后自动执行。这也是木马等启动的方式之一。
总之,F项相关的文件包括
c:\windows\system.ini
c:\windows\win.ini
(根据您的Windows版本和安装目录的不同,路径里的“C”和“windows”可能不尽相同,总之这里指的是%windows%目录下的这两个ini文件
%Windows%目录指的是Windows安装目录
对于NT、2000,Windows安装目录为X:\WINNT\
对于XP,Windows安装目录为X:\WINDOWS\
这里的X指的是Windows安装到的盘的盘符。此问题后面不再重复解释了。)
F项相关的注册表项目包括
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping
2. 举例
F0 - system.ini: Shell=Explorer.exe trojan.exe
上面的例子中,在system.ini文件中,默认的Shell=Explorer.exe后面又启动了一个trojan.exe,这个trojan.exe十分可疑。
F1 - win.ini: run=hpfsched
上面的例子中,在win.ini文件中,启动了hpfsched这个程序,需要分析。
F2 - REG:-System.ini: UserInit=userinit,trojan.exe
上面的例子中,UserInit项(说明见上)中额外启动了trojan.exe
F2 - REG:-System.ini: Shell=explorer.exe trojan.exe
上面的例子其实相当于第一个例子F0 - system.ini: Shell=Explorer.exe trojan.exe,在注册表中的system.ini文件“映像”中,额外启动了trojan.exe。
3. 一般建议
基本上,F0提示的Explorer.exe后面的程序总是有问题的,一般应该修复。
F1后面的需要慎重对待,一些老的程序的确要在这里加载。所以应该仔细看看加载的程序的名字,在电脑上查一下,网上搜一搜,具体问题具体分析。
对于F2项,如果是关于“Shell=”的,相当于F0的情况,一般应该修复。如果是关于“UserInit=”的,除了下面的“疑难解析”中提到的几种情况另作分析外,一般也建议修复。但要注意,一旦修复了关于“UserInit=”的F2项,请不要使用HijackThis的恢复功能恢复对这一项的修改,这一点上面着重提到了。当然,您也可以利用“UserInit=”自己设置一些软件开机自启动,这是题外话了,相信如果是您自己设置的,您一定不会误删的。
4. 疑难解析
(1) F2 - REG:-System.ini: UserInit=C:\WINDOWS\System32\Userinit.exe
注意到这一项与默认情况的区别了吗?其实,这一项之所以被HijackThis报告出来,是因为丢失了键值最后的一个逗号。但这并不是真正的问题,可以不予理会。
(2) F2 - REG:-System.ini: UserInit=userinit,nddeagnt.exe
nddeagnt.exe是Network Dynamic Data Exchange Agent,这一项出现在userinit后面也是正常的。
(3) F2 - REG:-System.ini: UserInit=C:\Windows\System32\wsaupdater.exe,
这一个比较特别,这是广告程序BlazeFind干的好事,这个广告程序修改注册表时不是把自己的wsaupdater.exe放在userinit的后面,而是直接用wsaupdater.exe替换了userinit.exe,使得注册表这一项
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit
的键值从默认的
C:\WINDOWS\system32\userinit.exe,
变为
C:\Windows\System32\wsaupdater.exe,
如果您使用Ad-aware 6 Build 181清除该广告程序,重启动后可能会造成用户无法登录系统。这时需要使用光盘或者软盘启动,将userinit.exe复制一份,命名为wsaupdater.exe放在同一目录下,以使得系统能够正常登录,然后将上面所述的注册表中被广告程序修改的键值恢复默认值,再删除wsaupdater.exe文件。
该问题存在于Ad-aware 6 Build 181,据我所知,HijackThis可以正常修复这一项。
具体信息清参考
http://www.lavahelp.com/articles/v6/04/06/0901.html