Windows的注册表就像一个地下迷宫,每当我们感觉对它了解一些的时候,却发现它还包含着一个新的迷宫……我们拥有很多修改注册表的工具,但它们总是在注册表被软件修改之后才能用得到,怎么才能在注册表被改动的第一时间就发现呢?很多杀毒软件都忽视了对注册表的保护,而这往往是木马病毒滋生的温床!
注册表是一个庞大的数据库,我们对它只有一个静态的了解。其实,了解注册表动态数据变化更有意义,因为几乎所有软件在安装和运行过程中,都会修改注册表数据,而这些注册表数据的变化很可能是有害的,例如木马程序添加的自启动数据。通过对注册表进行监视,你就能观察到这些数据的变化,同时,通过对注册表数据动态变化的分析,你还可以了解到更多关于注册表的秘密。下面就通过三个监视注册表的实例,来了解系统的秘密。
超级兔子的秘密
许多朋友很喜欢用超级兔子来修改一些系统选项,用起来确实方便。不过,对于一些喜欢凡事问个究竟的朋友来说,可能心里一直有一个疑问:超级兔子究竟是修改了注册表中的哪些数据呢?软件作者怎么发现它们的?这些都属于超级兔子的秘密,一般来说,我们是很难得知的,不过通过Regmon软件对注册表的监视,你就能发现它其实很简单。
Regmon 小档案
软件版本:6.06 软件大小:82KB
软件性质:免费软件 适用平台:Windows 9x/2000/XP
第一步:运行Regmon,单击菜单“选项→过滤器→高亮”,在这里需要设置过滤条件,让Regmon只显示超级兔子对注册表修改的数据。在“包含”栏中输入超级兔子魔法设置的进程文件名“srms.exe”(见图1),并在下面只选中“记录写入”、“记录成功”两个选项,其他要监视的选项全部取消,这样可以大大减少无用监视数据,提高分析效率。
第二步:单击“确定”按钮,这时Regmon会提示你“要应用更新的过滤设置到当前输出吗?”,点击“是”按钮返回主界面,然后按“Ctrl+X”快捷键清除当前窗口中已经显示的监视数据。
第三步:运行超级兔子,打开“桌面与图标→图标选项”。
实例:透视“禁止使用缩略图加速”
这里来分析一下“禁止使用缩略图加速”技巧究竟是如何修改注册表的。首先选中该选项,单击“应用”按钮,切换到Regmon,你会发现窗口中显示有13个记录,这是超级兔子的设计问题,即使只修改了这个页面中的一个选项,它也会把该页面中所有选项对应的注册表数据重写一下,所以就会产生很多数据。
那怎样才能判断出究竟哪个才是对应的数据呢?只需再次取消“禁止使用缩略图加速”选项,并点击一次“应用”按钮,返回Regmon,你会发现窗口中又出现了13个记录,现在仔细对比“其他”列中前13个记录与后13个记录的数据,会发现只有两个记录的数据是不同的(见图2)。
图二
这两个记录对应的“路径”列指向的注册表键值都是相同的,即HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion
\Explorer\Advanced主键下的“DisableThumbnailCache”键值。由此我们可以分析得出结论,该键值为“1”表示禁止使用缩略图加速,键值为“0”表示允许使用缩略图加速功能。
小提示
利用Regmon的注册表动态监视功能,还可以对一些有使用天数限制的共享软件进行监视,找出记录使用时间的注册表键值,修改该键值数据就能延长使用期限。
它们都干了些什么
注册表体积与系统速度关系密切,所以大家都不希望软件在安装时向注册表中写入数据。那么,如何才能知道一个软件究竟对注册表做了什么修改呢?你可以通过以下两种方法进行侦查。
1.FC命令
安装新软件前,打开注册表编辑器,选择“注册表→导出注册表文件”,利用“全部”选项,将结果文件保存为Before.txt(不要使用REG扩展名)。安装新软件或进行用户想跟踪的其他任何更改后,打开注册表编辑器,再导出整个注册表,这一次将导出的文件命名为After.txt文件。接着打开MS-DOS命令窗口,转换到有那两个文本文件的目录中,然后执行以下命令:
FC Before.txt After.txt > Diff.txt
关闭DOS窗口,在“记事本”中打开Diff.txt文件,这里会显示在注册表所发现的所有不同之处。
2.RegShot
Regshot可以帮你了解到这些信息,它可以在软件安装前后为注册表建立两个快照。通过分析快照文件,找出有变化的注册表数据,并把比较结果输出为易读的报告文件。
Regshot 小档案
软件版本:1.72 软件大小:28KB
软件性质:免费软件 适用平台:Windows 9x/2000/XP
软件备注:Regshot是一款多国语言版软件,运行后在右下角的语言下拉框中选择“中文GB”即可切换为简体中文界面。
实例1:全面捕捉UltraISO对注册表做了什么
图三
第二步:安装要分析的软件,例如UltraISO,安装完毕后,切换到Regshot窗口单击第二个“摄取”按钮,选择“摄取”做第二个注册表快照。当快照扫描完毕后,单击“比较”按钮,Regshot会对两个快照进行比较,并自动打开生成的结果报告文件。
第三步:从报告文件中可以看到UltraISO安装时对注册表数据所做的修改,如增加的主键、增加的键值以及修改的键值等,非常直观。
小提示
一些软件自带的卸载程序并不能从注册表中彻底清除所有添加的数据,这时就可以根据Regshot生成的报告文件来手工清除这些无用的注册表数据,为注册表“减负”。
捉住注册表中的“内鬼”
一些软件安装后会自动添加自启动程序而不提示用户,更有一些木马程序则会偷偷地在系统中植入木马自启动程序,这些“动作”很难直观地看到。不过笔者发现在著名的木马检测程序The Cleaner中有一个单独的注册表实时监视工具—TCMonitor,有了它,就能保障注册表不被非法修改了。
TCMonitor 小档案
软件版本:2.0 软件大小:330KB
软件性质:免费软件 适用平台:Windows 9x/2000/XP
软件备注:以上提供的是The Cleaner的下载地址,该软件是一款共享软件,但其组件TCMonitor却是完全免费的,不过需要手工提取该组件,方法是把C:\Program Files\The Cleaner目录中的“tcm.exe”和“siren.wav”两个文件单独复制出来即可。
第一步:现在开始运行“tcm.exe”,首先它会弹出提示框,询问是否修复关联数据和禁止脚本执行,一般应选中这两个选项,并选择“Please do not ask me again”选项,让它下次不再提示,然后直接单击“OK”按钮,这时TCMonitor会自动缩小在系统托盘中后台工作。
第二步:双击托盘图标打开软件主界面,在列表中显示的就是TCMonitor正在监视的注册表主键,这些都是系统中非常重要的数据,也是病毒木马最容易入侵修改的地方,大概了解这些信息后,关闭这个界面让它继续后台工作。
第三步:当有软件或者病毒木马修改被监视的键值时,TCMonitor会马上发出声音报警提示,同时弹出提示对话框显示被修改的主键(见图4),如果确认这个修改是无害的,可直接单击“Ignore this alarm and accept the changes”按钮忽略警报并接受修改。
图四
如果不能确认,则可以单击“Examine or edit the changed data”按钮,这时TCMonitor会在新窗口中显示出修改前(Expected data)和修改后(Actual data)注册表数据的变化情况(见图5),你可以很容易地判断出为个变化是否属于正常修改。在这里单击“Reset Alarm”按钮可以取消警报,单击“Launch Editor”则会直接调用注册表编辑器打开被修改的主键,你可以手工修正被非法修改的数据。
图五
小提示
在TCMonitor中可以手工编辑要监视的注册表数据列表,利用这个功能,只需要添加IE相关数据,就能随时提醒恶意网页对IE的修改。在TCMonitor主界面中单击菜单“Edit→Edit Watch Data”,选中“Registry Watch”选项,在右边选择要监视的根键“HKLM”,并填写好主键“\SOFTWARE\Microsoft\Internet Explorer\Main”,单击“Add”按钮添加到列表,并单击“Save”存盘即可。而且TCMonitor还可以对文件和文件夹进行监视,这些功能就不再细说了。
……