精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>电脑技术>>● 中文处理>>实用技巧>>注册表跟踪三利器

主题:注册表跟踪三利器
发信人: 20033339(张自力)
整理人: qiang(2001-12-11 23:53:33), 站内信件
注册表是个宝藏,操纵着软件的生杀大权、系统运行的快慢。它很强大,也很脆弱──有时一个小小的错误就能让系统崩溃。如果你想揪出罪魁祸首,从而起死回生;如果你想找出一些试用软件保存使用时间或次数的键值,从而延长试用期──跟踪注册表的变化往往会有意外收获。本文介绍三款跟踪利器给你,它们有一些共同的特点:通过在不同时间扫描系统后建立快照文件,然后经过比较自动的找出变化,都能恢复注册表,而且都适用于windows95/98/NT,且看我慢慢道来: 

利器之一:Advanced Registry Tracer (简称ART) 
  ART是一个单纯备份注册表和分析注册表变化的软件。启动ART后,首先要建立一个“快照”,点击工具栏第一个按钮“New"建立一个空数据库文件,再点击第五个按钮“Scan Registry",程序就开始扫描,稍等一会,扫描结果就会显示在窗口中。在一个快照文件中,可保存最多100个扫描结果,但每次最多只能激活两次扫描结果(因为是在两个结果中比较,激活的图标为黄色,未激活的为灰白色),每次扫描注册表的结果,都以执行扫描时的日期和时间命名保存在数据库中,每个扫描结果只包含HKLM和HKUS两大分支(因为除一个动态分支外其他分支都是由这两大分支衍生出来的)(如图1)。当一个快照文件中包含两个以上扫描结果时,就可以执行比较操作了:选择某个分支后,按“F10”或单击工具栏上“Compare From Here"按钮就开始比较所激活的两次扫描结果中该分支的不同。从整个注册表到某个小分支,可有选择地进行比较。此外,还可排除一些分支不予比较:右击左栏分支树中某个分支,在弹出的下方菜单中选择“Exclude from compare (check)”,则该分支前会出现一个红色的“×”,则进行比较时排除该分支,活用这两个功能可加快比较速度。 

  比较结束后,在弹出的窗口中,先扫描的注册表被标记为1(old),后扫描的结果标记为2(new)(如图2)。从窗口中很容易找到注册表前后的变化,它们被分为三类:Deleted - x(x为变化个数)标签下为删除掉的数据(在2注册表中已不存在),Added - x标签下为新增加的数据(1注册表中没有),Distinct in data - x标签下为被修改的数据,都可在右栏查看具体的变化。选定根键后,单击工具栏上的“Expand all Nodes”就可展开所有包含变化的分支,每个变化所在主键前都有不同颜色的“灯泡”标志提示变化的类型。程序还支持在主窗口或者比较结果窗口中查找,对于查找到的结果,你可以直接按“F5”或单击“Jump to Regedit”按钮迅速打开注册表并自动定位到该键。最为贴心的是,可以单击“Save to Undo files”将变化保存为reg(或inf,右击导入)恢复文件以便手工由2恢复为1中原样(删除新增的,添加已删除的,改回原来的),或者单击“Undo into Registry”按钮直接恢复。“Save to Redo files”、“Redo into Registry”按钮则刚好相反,是用来由1注册表变回2注册表中的数据。在窗口中选定某个分支后右击,可复制键名路径到剪贴板或者跳转到主窗口相同分支下。 

  ART以类似regedit的图形界面直观的显示扫描结果和比较结果,并可以将任何一次的扫描结果中的任何分支导出为reg文件,因此它确实是一个不错的工具,遗憾的是退出程序时耗时略长。 

利器之二:RegSnap 
  RegSnap不仅能跟踪注册表的变化,还可以比较windows目录下文件、win.ini、system.ini、autoexec.bat、config.sys和windows系统有关设置文件的变化,这都是ART不具有的功能(图3)。 

  启动程序后,会弹出“Startup Wizard”对话框。初次运行,可以单击“New Snap”建立一个新的快照;如果已建立,可以选定Recent documents列表框中某个快照文件后单击“Open”按钮来打开该快照;当你建立两个以上快照后,可以单击“Compare”进行比较。在“Startup action”下设置程序启动时自动执行的操作,依次为:自动打开“Startup Wizard”对话框、自动打开最后创建的快照、自动创建新快照、只进入主界面其他什么也不做。选中你想做的就行了。 

  要建立快照,也可通过单击主界面工具栏的“New Snap”按钮打开对话框。在弹出的“Save snapshot”对话框中首先需要设置一些选项:选择“Snap all”则扫描全部(包括系统文件);选择“Registry only”则只扫描注册表;如果想在快照中保存键值和系统中DLL文件的版本信息,请复选“Save key values”和“Save DLLs verinfo”;如果需要,还可以在底部的输入框中添加注解。最后单击“OK”开始扫描,完毕后会打开一个文档窗口显示快照建立的时间、用户名等信息。 

  单击工具栏上“Compare”按钮打开比较对话框后,首先分别在“First snapshot”“Second snapshot”设置要比较的两个快照文件,然后在“Report options”中比较结果报告方式:选择Show modified key names only则将比较结果创建为一个只显示被修改的主键的报告,选择Show modified key names and key values则报告中同时显示变化的键名和键值(不过要求两个快照扫描时都保存了键值)。复选Generate REG files则将变化导出为reg文件用来复原或重复注册表。在“Output filename”中设置比较结果的输出类型(txt或html文件)和文件名。在“Advanced options”中还可设置比较时要排除的分支。设置好后,单击“OK”按钮就开始比较,完成后会自动打开报告文件供你查看。 

  附:一个功能类似但完全免费的软件:http://coobe.cs.hn.cninfo.net/%7Etianwei/regst101j.zip(29K) 

利器之三:RegView   
  RegView是一个小巧但功能强大的注册表编辑器,在regedit的基础上新增了常用工具栏,增加了查找并删除、查找并替换的功能。最重要的是,程序还提供了备份注册表、ini初始化文件、记录硬盘中已有目录和文件等相关信息的功能,因此它能比前两个工具更全面地了解系统的变化(如图4)。 

  在RegView中只保留一次系统扫描结果,重新扫描后会覆盖以前的记录。选择“Tools”菜单下的Record Current Registry、Record INI Files、Record DIRs & FILEs可分别扫描并记录当前注册表(可以在弹出的窗口中设置只扫描部分根键以加快扫描速度)、系统中的INI文件、磁盘上的目录结构和文件大小数量等信息。先根据需要记录下某项初始状态,当系统被修改后就可以用它来查找变化、恢复系统:执行Tools菜单下的Compare to Last Recorded Registry命令可将当前注册表和最后扫描的注册表记录进行比较(如图5),比较完毕后,会弹出一个窗口,显示出前后的改变:在Status栏下标明键值的变化是增加(Added)、删除(Deleted),还是更改(Changed),在Key栏下显示变化所处分支,另外四栏则显示变化前后的具体数据。单击某行,可立即跳转到主界面的相同分支。利用底部的按钮,可以复制结果到剪贴板,将初始数据导出为.reg复原文件(Restore Export,将该文件导入即可使注册表恢复到初始状态),或者将新数据导出为重做文件(Redo Export,导入该文件则变为最新状态),如果要删除新增的数据(Added),则必须用Restore Save保存为.rrg文件然后执行File下的Restore RegView Registry Files……导入该文件来删除,因为不能用.reg删除注册表中的键值或数据。Restore All 用来列表中所有变化复原,Restore只变化恢复选定的一行或多行。执行Compare to Last Recorded INI Files可比较恢复INI文件。执行Compare to Last Recorded DIR s & FILEs则比较硬盘目录和文件的增减,不过,由于软件不备份非系统文件,因此该对话框中的恢复只对“Added”的文件有效——因为恢复就是删除新增加的文件(图6)。 

  RegView的缺点是扫描和比较速度较慢,在扫描、比较整个注册表时尤其明显。其最新的版本增加了许多功能,可惜作者不肯在网上发布试用版。 

  从以上介绍,它们各有所长,配合使用效果更好,不过,无论使用哪种跟踪软件,都应该在较短的时间内,在装卸软件、修改系统设置前后扫描变化,这样无用的干扰信息才能减少,否则时间一长,系统变化太多,跟踪到变化也无多大意义了。当然,有经验的朋友,用regmon实时跟踪软件对注册表的操作,有时会更奏效! 



摘自赛迪网 

[关闭][返回]