系统还原攻与防
易强+彭永杰+肖静
摘 要:随着上机上网频率日益提高、机器感染病毒的机会大大增加,由于病毒具有传染性、潜伏性、可触发性和破坏性,一旦出现在网络中,破坏性非常大,可能对机房造成不可估量的损失。还原精灵是机房软件系统保护与数据恢复的重要工具,正确运用可大大降低机房软件维护工作的繁琐与重复。
关键词:逻辑扇区;十六进制编辑器;病毒;还原精灵;中断
计算机公共机房特点是软件内容繁多、机器数目庞大、人员流动性高,机房管理者的日常工作往往都比较烦琐,硬件维护维修工作随机性大;而系统的安装、软件的更新和病毒查杀等工作,则往往零碎而繁复。如何在机房的管理和维护中,防止系统和应用程序不被破坏、保护正常的上机环境、减少恢复系统的工作量,还原软件的使用显得尤为重要。作为机房管理者,笔者在工作中能够接触和使用到各种类型的保护系统和还原软件,在实际使用中我们发现,无论是联想各版本的硬盘保护系统,清华同方的同方易教以及七彩虹的智能主板系列功能其实大同小异,都基于最早的Recovery Genius(还原精灵)。
根据相关资料及笔者多年来使用经验总结,还原软件的工作原理大致如下:首先它修改引导区(MBR),它位于硬盘的0头0柱1扇区,在扩展int 13中没有头、柱、扇区这个概念,它只有逻辑扇区,在扩展的int 13中MBR位于是0扇区,如果BIOS中设置的是硬盘启动的话,系统会首先载入这个扇区到内存,然后运行这个代码,还原软件就是用的是自己的引导代码,这个方法与引导型病毒一样;这个代码接管了INT13中断,每当我们向硬盘写入数据时,其实还是写入到硬盘中,可是没有真正修改硬盘中的FAT。由于INT13被接管,当还原精灵发现是写操作,如果没有激活管理身份(写入权限),便将原先数据目的地址重新指向它自己定义的一段连续的空磁盘空间,并将先前背份的第二份FAT中的被修改的相关数据指向这片空间。当我们读取数据时,和写操作相反。所以还原软件需要被保护的磁盘上有较大的空闲空间,这就是联想硬盘保护系统在安装时必须为每个分区指定一定大小的暂存空间的原因。
由此我们发现保护程序是通过修改中断向量来达到保护硬盘不被真正写入的,其中int13是关键,它拦截了int13的处理程序,将自己的程序挂到上面,这也是无法写进数据的原因所在,有的硬件还原卡同时还修改了时钟中断来达到反跟踪,它会利用早以被它修改过的时钟中断定时检查中断向量表,它一旦发现修改为别的值.就会一一还原。用户也不可能格式化真正的硬盘,还是因为被接管的INT13,所有对硬盘的操作都要通过INT13。对于一部分还原卡,它的本质上更应该是网卡,不过它有BOOTROM启动芯片,所以启动的时候不是先启动硬盘,它里面的程序来起着与还原精灵一样的作用。对于这种类型的还原卡,以七彩虹主板C.P43 Twin的数据保护功能为例,只要进入BIOS设置里把boot from network这项关掉,系统起动时就只能进入提示符状态,不能进入桌面,其实就是找不到相应的引导文件。
还原精灵也不是无懈可击。在实际测试中我们绕过还原,在BIOS中设置从制作启动盘或从光盘启动,进入Windows后,发现托盘中的还原精灵图标已变为红色,然后运行卸载程序,重新启动后,一般会成功。如果是多系统,虽然不会马上移除,不过密码已被初始化(12345678)。最简单的方法莫过于直接运行ghost进行镜像恢复操作,虽然这时候在进入操作系统前还能通过按HOME键调出管理菜单,但还原功能已经失效,进入系统后可以直接运行安装文件卸载。不过原有系统分区可能丢失,硬盘上所有的数据都会被破坏。
用WinHex编辑运行在内存的保护文件(如hddgmon.exe)也可以破解还原精灵。运行winhex。这时你会发现有很多文件在内存中运行。选择tools→ram ediutor→hddgmon→primary memoty→ok,就可以了。接着寻找我们要的页面→search→find text,后缀为.dmb的就是原始密码。
针对以上还原精灵的破解或者漏洞,现在的硬盘保护系统也就完善了相应的功能:
1.保护模式下阻止更改CMOS参数设置,包括开机密码和网络启动项。
2.保护模式下仅能从C:盘启动,系统安装过程中会出错。
3.保护模式下防止低级格式化对硬盘数据的破坏,理论上防所有病毒,包括未知病毒。
4. 所有的功能及口令都工作在基于DOS实模式的管理界面下,使用者不能用DEBUG功能和WinHEX内存编辑进行口令追踪。
这几个方面的改进从很大程度上弥补了还原精灵的不足,实际上可以看作是其功能的完善和扩展。
参考文献:
[1]俸远祯《计算机组成原理》电子工业出版社,1996,4.
[2]张夷人《微机组装与维护》清华大学出版社,2003,7.