• 标 题:硬盘保护卡的原理分析 (2千字)
  • 作 者:dOSKEY_lEE
  • 时 间:2002-8-29 9:00:46
  • 链 接:http://bbs.pediy.com

硬盘保护卡的原理分析
                      dOSKEY lEE
    以下内容只是个人分析结果(想象),如果有不符合事实的情况请大家不~要~扁~我~!由于我自己没有硬盘保护卡,只是在网吧用过几次,所以……:)
    用很简单的一句话来说,硬盘保护的运作机制很类似引导型病毒。它修改引导区,在起动时自动加载自己的驱动程序,它的驱动程序可能是放在某些隐藏扇区中或放在文件中(.SYS DOS下的驱动程序,类似CD-ROM驱动程序)。如果是放在隐藏扇区中则可以有效的提高自己的隐秘性和安全性,而放在文件中则是为了减少复杂性。您可能怀疑,放到文件中安全吗?不会被别人删除吗?且慢,请听我慢慢倒来。
    加载的驱动十分类似DOS病毒。它接管INT13中断和INT18,将FAT,引导区,CMOS信息,中断向量表等信息都保存到卡内的临时储存单元中。另外,再另外将FAT信息保存到临时储存单元中,用来应付我们对硬盘内数据的修改。保护卡可能是在硬盘中找到一部分连续的空磁盘空间然后,将我们修改的数据保存到其中。
    每当我们向硬盘写入数据时,其实还是写入到硬盘中,可是没有真正修改硬盘中的FAT。由于保护卡接管INT13,当卡发现写操作,便将原先数据目的地址重新指向先前的连续空磁盘空间,并将先前背份的第二份FAT中的被修改的相关数据指向这片空间。当我们读取数据时,和写操作相反,当某程序访问某文件时,保护卡先在第二份背份的FAT中查找相关文件,如果是起动后修改过的,便在重新定向的空间中读取,否则在第一份背份的FAT中查找并读取相关文件。删除和写入数据相同,就是将文件的FAT记录重第二份背份的FAT中删除掉。
    当硬盘保护卡收到INT18,或收到复位(RESET)等重新起动的信息后,首先将原来的FAT,引导区,CMOS,中断向量等信息从卡内临时储存单元恢复到系统中。当你从新起动后发现上次修改的数据都丢失了。先前的那部分用来保存修改数据的空间,由于没有写硬盘的FAT,所以还是空的磁盘空间。
    另外,用户不可能格式化真正的硬盘,还是因为被接管的INT13。INT13的功能05H和06H便是格式化。如果用户是快速格式化(FORMAT DRIVE /Q),保护卡只须将相关驱动器的FAT清空为格式化以后的模样便可(当然是卡内保存的第二份FAT)。如果是普通的格式化(每个扇区清空),保护卡也会配合工作得将其转换为快速格式化,还是只改FAT。
    对于其他的磁盘访问机制由于我不大了解(低格?低格!),所以在此不再阐述,如果您对我的胡言乱语有什么看法或您对硬盘保护卡也有所研究请电邮到doskey_lee@hotmail.com。我会尽量回答您的问题。另外,您读过本文后是否有一种感觉,好像这个硬盘保护卡可以用软件方法实现?我也这么认为,我正在查找相关资料,开发一套硬盘保护的软件,大家一起赚钱啦~!
    本文欢迎转载,但不得删改其中任何部分和本信息。