加入收藏 | 设为首页
广告位出租
中国论文网 >> 计算机 >> 计算机网络 >> 用Windows终端仿真程序实现微机远程文件传送

用Windows终端仿真程序实现微机远程文件传送

发布时间:2006-09-15 00:26

  有些硬盘防拷贝是通过对硬盘FAT表中的簇链的检测来实现的,这与本文所推荐的方法原理一样,都是通过检测文件位置信息是否被改变来判断文件是否已被移动的。但前者涉及到定位FAT表及文件所在目录等繁琐工作,而且还和硬盘型号及格式化信息有关,编程很不方便。本文所介绍的方法则不然,它直接与操作系统打交道,取出操作系统内核中现成的数据,即利用DOS系统文件表(SYSTEM FILE TABLE 简称SFT)来实现防拷贝。

当您打开硬盘上的一个文件并移动读写指针时,DOS会时刻记录读写指针所对应的硬盘位置。一个稍大些的文件在硬盘上要占用多个簇,这些簇并不是连续的,而是由操作系统一般按照“就近循环分配”原则为该文件分配的,这些簇的绝对簇号具有一定的随机性,在FAT表中形成一个簇链。移动读写指针超过一个簇的大小时,则所对应的绝对簇号也要变化。只要该文件没有被移动过(拷贝或整理硬盘),这些簇号就是固定的。一旦该文件被移动了,根据DOS簇分配原则,这些对应的簇号就会改变。由此,我们可以检查特定的文件指针所对应的绝对簇号是否改变了来判断该文件是否已被非法移动。

SFT是DOS在文件管理上的一个很重要的数据结构。只要DOS开始引用一个文件或设备,它必然要建立一个SFT。该表记录了文件设备名、目录特性、设备特性、文件大小和位置、DDPB(块设备)或设备驱动程序标题(字符设备)的地址,以及打开模式等有关文件的存储、访问和操作的管理信息。其中有几项数据可以用来确定文件在硬盘上的位置,它们是:文件读写指针所对应的绝对簇号,目录项的相对索引号(即目录项在目录扇区中的序号),目录项所在扇区的扇区号。

我们先看看DOS系统中SFT的具体结构,系统有多个SFT,这个数目取决于CONFIG.SYS文件中的FILES=N的N值。在DOS4.0,5.0,6.0中,每个SFT的长度是3BH。多个SFT形成SFT数组,并不是整个系统的所有SFT组成一个连续的大数组,而是可能有多个SFT数组,每个数组由一个控制块管理,它们之间由指针连接。每个SFT数组的结构如下:

偏移量 长度 说明

00H DWORD 指向下一个SFT数组的指针

04H WORD 本SFT数组内的SFT数目

06H nBYTEs 由SFT组成的数组(n=本数组中SFT数目*每个SFT所占字节数)

我们还必须知道第一个SFT数组所在的地址。这可由DOS功能调用52H先取得DOS的多重表指针,在多重表偏移量04H处即是一个长指针,它即指向第一个SFT数组的头部。这样剩下的SFT数组的位置也就知道了。
分页:[1] 2 3 4 5 6  下一页
版权申明:未经书面授权请勿转载本站信息!!作品版权归所属媒体与作者所有!!
发表评论: 匿名发表 用户名: 查看评论
您将承担一切因您的行为、言论而直接或间接导致的民事或刑事法律责任
留言板管理人员有权保留或删除其管辖留言中的任意内容
本站提醒:不要进行人身攻击。谢谢配合。
Copyright © 2006 Chinalww.com. All rights reserved.中国论文网 版权所有