阅读:3123回复:12
请问硬盘保护卡的驱动是怎么一会事?
常碰到,可不知原理?
帮帮我! |
|
沙发#
发布于:2002-03-21 11:04
硬盘保护卡的驱动程序实质是IFS或Filter FSD。装上这种卡以后,对于系统的I/O申请,经由保护卡驱动程序产生转向,达到对文件系统的保护。具体说来:写的时候不是写到文件本来存在的地方,而是写到了另外一个地方(这样才有可能以后恢复),读的时候又是由另外一个地方读进来(让用户觉得他成功的实现了保存文件,殊不知被别人作了手脚:))。同时一般原理都是做一个R/W映射表,真实地记录用户对每一个文件的操作以及操作的结果,以便还原的时候知道从哪里恢复数据。另外对于这种驱动程序,Win9x的只能用VXD做,而2000的和NT的必须用WDM去实现。
Best Regards! |
|
|
板凳#
发布于:2002-03-21 12:47
其实硬盘保护卡是基于硬盘的,很少基于文件系统!如果基于文件系统,那么要处理的就多比基于硬盘的多很多!
这些保护卡在DOS下是替换了INT的入口 在WINDOWS下是拦截了对硬盘的读写入口 象NT或2000就是做了一层过滤层拦截在分区或硬盘上面拦截在PARTTITION0或PARTTITION1上面! |
|
地板#
发布于:2002-03-21 16:17
同时一般原理都是做一个R/W映射表,真实地记录用户对每一个文件的操作以及操作的结果,以便还原的时候知道从哪里恢复数据。另外对于这种驱动程序,Win9x的只能用VXD做,而2000的和NT的必须用WDM去实现。
你说的做一个R/W表,是什么意思呀?是不是说是地址映射什么的? 那如果我要把运行在9X上的卡子用在2000上,要怎么做呀?是不是不能启动? |
|
地下室#
发布于:2002-03-21 16:47
其实硬盘保护卡是基于硬盘的,很少基于文件系统!如果基于文件系统,那么要处理的就多比基于硬盘的多很多! 你说: 象NT或2000就是做了一层过滤层拦截在分区或硬盘上面拦截在PARTTITION0或PARTTITION1上面,是什么意思呀,我不明白? |
|
5楼#
发布于:2002-03-21 16:51
刚刚guardee老兄说的对,硬盘保护卡确实应该直接从硬盘I/O上进行拦截,从文件层进行拦截不能有效的实现保护,而且速度可能会慢得惊人。
我所说的R/W映射表是一张读/写映射表,它记录了用户对硬盘(扇区)的读写历史(当然这得视你的算法而定)。 程序在初始化的时候根据当前的硬盘存储状态建立一张资源状况表,当用户欲改写某存储单元(比如说扇区)时,就把它对应的表中的位Mark起来,同时将欲写的东西写到另外一个地方去(这得视你的算法和目的而定),记录这两个地址(其实不用记录,因为R/W表和磁盘存储单元可以一一对应起来)。恢复的时候就只要直接操作这张表就可以了。 |
|
|
6楼#
发布于:2002-03-21 17:25
强调
在NT和2000下已经没有INT13了 |
|
7楼#
发布于:2002-03-21 21:52
我的理解:
那个卡的作用就是负责还原和在DOS下替掉INT13的入口 在32位的系统下用一个驱动程序专门负责备份数据 有空的时候做一个驱动程序,把C设为只读的! 不过,不知道有没有人需要 源代码公开!其实也没什么的! |
|
8楼#
发布于:2002-03-22 09:00
在win2000/nt中不是没有了int13,而是扩展了int13.
|
|
9楼#
发布于:2002-03-22 12:48
晕
|
|
10楼#
发布于:2002-03-23 11:33
不好意思,这东西一定要有VXD的是不是呀?在2000/nt中是WDM了,所以原有的卡子就不能用了?
|
|
11楼#
发布于:2002-03-23 20:31
也不是,只要在NT/2000下做的驱动程序能够实现把数据备分的格式和它在9X下备分的格式一样就可以!
|
|
12楼#
发布于:2004-05-26 22:42
guardee你好,听你说硬盘保护卡是采用基于硬盘的驱动完成过虑的。in win2k不知道修改IDT做一个HOOK写一段读写硬盘的Ring0代码能不能绕过保护卡?!
|
|
|