现在的位置: 首页 > 综合 > 正文

在Windows NT上装还原卡

2018年05月14日 ⁄ 综合 ⁄ 共 1362字 ⁄ 字号 评论关闭

(把以前写的东西搬过来)

以前只知道还原卡工作的核心技术是拦截13号中断,前几天在Windows 2000 Sever上安装了还原卡的驱动,然后电脑变得超级慢,尤其是启动时。抽时间从网上找了找还原卡工作方式的相关资料,总结如下: ­

还原卡的主体是一种硬件芯片,插在主板上与硬盘的MBR(主引导扇区)协同工作。大部分还原卡的原理都差不多,首先,还原卡和还原软件会抢先夺取引导权,将原来的0头0道1扇保存在一个其他的扇区(具体备份到那个扇区可能是不一定的),将自己的代码写入0头0道1扇区,从而能在操作系统之前得到执行权,其加载驱动的方式十分类似DOS下的引导型病毒(所以有的杀毒软件会提醒0盘0道1扇区:未查明的引导型病毒):接管BIOS的INT13中断,保存它的入口地址,将FAT、引导区、CMOS信息、中断向量表等信息都保存到卡内的临时储存单元中或是在硬盘的隐藏扇区中(用还原卡保存备份时估计就是在这里),把自己用于代替INT13H的代码写入内存,并记住入口地址,当然这种“写入内存”并不是普通的“写”,而是“常驻内存“的方法;将中断向量表中INT13H的入口地址改为这段常驻程序的入口地址(补充一点,虚拟还原程序在修改INT13H的入口后往往都会修改一些其他中断入口,当然也是通过常驻程序来实现的,这些中断用来实现对中断向量表中INT13H入口地址监控,一旦发现被修改,就马上把它改回,这样做同样是用来防止被有心人破解);再另外将FAT表信息保存到临时储存单元中,用来应付我们对硬盘内数据的修改;最后是在硬盘中找到一部分连续的空磁盘空间,然后将我们修改的数据保存到其中。
­

显然这段用来替代BIOS提供的INT13H的代码才是还原技术的主要技术核心,那么这段代码到底实现了些什么: ­

1.拦截所有INT13H中对硬盘0头0道1扇的操作 ­

这些包括读写操作,把所有的对0头0道1扇的操作改为对虚拟还原程序备份的那个扇区的操作,这样做的目的是保护虚拟还原代码不被破坏,并且不能被有心人读出进行破解,即使你用扇区编辑工具查看主引导区,实际上你看到的是这个备份的主引导区。 ­

2.拦截所有INT13H中的写硬盘操作 ­

这里包括对硬盘的磁头、磁道、扇区定位的INT13H中的写操作,和扩展INT13H中基于扇区地址方式的对大硬盘的写操作,甚至包括扩展INT13H中对一些非IDE接口的硬盘的写操作。 ­

至于拦截后做什么是还原技术实现的关键。还原厂商用的方法是大概是占用一些硬盘空间,把硬盘所进行的写操作做一个记录,等系统重新启动后还原这一记录,但是怎样科学记录硬盘的写操作,是我想不通的问题,这种“科学”应该体现在时间上和硬盘空间的占用量上的,也就是说怎么样用最少的时间和最少的硬盘空间来记录硬盘的写操作是实现关键 ­

3.备份端口70H,71H中的内容,并把最后一次执行时端口70H,71H的内容和备份的内容做比较,不一样就提示BIOS被修改,是否还原,并通过密码验证修改BIOS是否合法。 ­

­

据以上看来,还原卡对于FAT格式比较合适,但是NTFS则有些支持不足,但是Windows NT系列操作系统尤其是到了Windows2000,推荐使用NTFS分区格式,使用硬件还原卡经常出现各种各样的毛病,而Windows2003系统,已经彻底不能安装还原卡了。

抱歉!评论已关闭.