空心雨毕业论文网提供毕业论文、职称论文、硕士论文、计算机论文等的代写服务,同时还提供各种期刊论文的发表。如果你有需要,请联系我们QQ:5599630;电话:13350726595;E-mail:singlehearted@vip.qq.com
RSS
 

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

来源:网络转载 作者:okxy168.com 时间:2008-01-10 浏览:1 字体:【

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

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

那么怎样利用这几项数据防拷贝呢?这里所说的防拷贝是指可以拷贝但拷贝后的文件不能执行或不能被使用,包括数据文件和可执行文件。若是可执行文件,则其本身包括一段检测代码,用以判断其本身是否已被非法移动。若是数据文件,则在使用该数据文件的可执行文件中包括一段检测代码,来判断该数据文件是否已被非法移动。当第一次将一个文件装入硬盘后,它所占有的硬盘的簇号已是固定的了。这样我们就可以作一个加密程序,在该程序里,约定一个或多个秘密的值N,N1,N2…,然后将文件指针分别移动到N或N1,N2…,在SFT中取出那几项硬盘位置数据,再用约定的秘密算法加以运算,就得到了包含被加密文件位置信息的“钥匙”,将它存于另一个文件中或干脆附加在被加密文件的末尾。在使用该文件的可执行文件的检测代码中,按同样的算法取得当前的“钥匙”,与先前保存的“钥匙”相比较,若相等,则说明文件没有被移动过,程序正常执行,否则,说明文件已不在先前的位置了,即已被非法移动过了,则程序异常执行。

我们先看看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=http://localhost/picnet/200508/05111309232753770.gif;附图@@

打开文件取得文件句柄是3,所对应的SFT的序号是6。

下面就给出一个可执行文件防拷贝的例子。

假设我们用C 语言编一个完成某一功能的程序NO-COPY.CPP,经过编译连接生成可执行文件NO-COPY.EXE,要对这个可执行文件实行硬盘防拷贝。我们先编写一个设置“钥匙”的程序PUT-KEY,在该程序中按上述方法取得NO-COPY.EXE的“原钥匙”(它包含了NO-COPY.EXE初次装入硬盘时的位置信息),存于一个专用文件LOC-KEY.DAT中(当然也可直接附加在NO-COPY.EXE的末尾,取时也到文件末尾去取),在NO-COPY.EXE中必须包含一段检测代码。

它也用PUT-KEY的方法取出自己的“当前钥匙”,与存于LOC-KEY.DAT中的“原钥匙”比较,相等则说明文件还在原处,正常执行。否则,说明正在执行的NO-COPY.EXE是被拷贝的副本,停止执行或异常执行。

这里,不用考虑“钥匙”的安全性,“钥匙”是可以公开的,只要取得“钥匙”的方法是保密的,非法拷贝者就无可奈何。可以这样理解这个防拷贝方法:可执行文件本身具有自锁性,在它每拷贝到一个新地点时就按文件位置上了一把新锁,当它执行时,它到一个固定的地方去取“钥匙”,打开本身的锁执行。当它被移动后,可理解为锁换了(因为位置变了)。用“原钥匙”打不开,所以“原钥匙”是可以公开的,PUT-KEY.EXE就是用来设置“原钥匙”的。当合法用户想把NO-COPY.EXE拷贝到一个新地方,只需运行一次PUT-KEY.EXE就可以使用新的NO-COPY.EXE了。所以PUT-KEY.EXE必须由合法用户保管。

阅读更多内容1 · 2 · 下一页>>
1
最新评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
      本站是由一个众多学科的博士群体组建而成,主要创办者为成都各重点高校博士。本论文网内理工科写手均为博士,文科类写手大部分为博士,且领域涵盖广泛,写作势力强大,若有部分专业,没有相关的写手,我们给你寻找合适的写手! 依托强大的人力资源,我们本着诚心交流的宗旨,专门为您排解写作上的难题。从在科研及实践工作中稳扎稳打的经历,我们具备了研究问题,解决问题的能力。论文写作和论文发表,作为教育体系的一个重要环节,我们确实有能力给您解决好问题,正所谓,真金不怕火来炼,请相信我们的势力,没有把握的事,我们不会做!
      本站受多家期刊委托,其中包括国家级中文核心期刊目录正刊,CSSCI目录正刊,增刊,省级以上公开出版的优秀期刊正刊,本站负责论文推荐发表,加急1个月即可发表。本站负责论文发表,不发表承诺退款!!目前主要负责法律,管理,经济,理工,农学,行政,医学,艺术,英语等类论文发表论文代写。详细期刊目录见本站相关内容。
赞助商链接