为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > 用windows终端仿真程序实现微机远程文件传送1 计算机应用论文

用windows终端仿真程序实现微机远程文件传送1 计算机应用论文

2018-05-01 4页 doc 16KB 7阅读

用户头像

is_614050

暂无简介

举报
用windows终端仿真程序实现微机远程文件传送1 计算机应用论文用windows终端仿真程序实现微机远程文件传送1 计算机应用论文 用Windows终端仿真程序实现微机远程文件传送1 计算机应用论文 有些硬盘防拷贝是通过对硬盘FAT表中的簇链的检测来实现的,这与本文所推荐的方法原理一样,都是通过检测文件位置信息是否被改变来判断文件是否已被移动的。但前者涉及到定位FAT表及文件所在目录等繁琐工作,而且还和硬盘型号及格式化信息有关,编程很不方便。本文所介绍的方法则不然,它直接与操作系统打交道,取出操作系统内核中现成的数据,即利用DS系统文件表SYSTE FILE TABLE 简称SFT)来...
用windows终端仿真程序实现微机远程文件传送1 计算机应用论文
用windows终端仿真程序实现微机远程文件传送1 计算机应用 用Windows终端仿真程序实现微机远程文件传送1 计算机应用论文 有些硬盘防拷贝是通过对硬盘FAT中的簇链的检测来实现的,这与本文所推荐的原理一样,都是通过检测文件位置信息是否被改变来判断文件是否已被移动的。但前者涉及到定位FAT表及文件所在目录等繁琐工作,而且还和硬盘型号及格式化信息有关,编程很不方便。本文所介绍的方法则不然,它直接与操作系统打交道,取出操作系统内核中现成的数据,即利用DS系统文件表SYSTE FILE TABLE 简称SFT)来实现防拷贝。当您打开硬盘上的一个文件并移动读写指针时,DS会时刻读写指针所对应的硬盘位置。一个稍大些的文件在硬盘上要占用多个簇,这些簇并不是连续的,而是由操作系统一般按照“就近循环分配”原则为该文件分配的,这些簇的绝对簇号具有一定的随机性,在FAT表中形成一个簇链。移动读写指针超过一个簇的大小时,则所对应的绝对簇号也要变化。只要该文件没有被移动过拷贝或整理硬盘),这些簇号就是固定的。一旦该文件被移动了,根据DS簇分配原则,这些对应的簇号就会改变。由此,我们可以检查特定的文件指针所对应的绝对簇号是否改变了来判断该文件是否已被非法移动。SFT是DS在文件管理上的一个很重要的数据结构。只要DS开始引用一个文件或设备,它必然要建立一个SFT。该表记录了文件设备名、目录特性、设备特性、文件大小和位置、DDPB块设备)或设备驱动程序标题字符设备)的地址,以及打开模式等有关文件的存储、访问和操作的管理信息。其中有几项数据可以用来确定文件在硬盘上的位置,它们是:文件读写指针所对应的绝对簇号,目录项的相对索引号即目录项在目录扇区中的序号),目录项所在扇区的扇区号。那么怎样利用这几项数据防拷贝呢?这里所说的防拷贝是指可以拷贝但拷贝后的文件不能执行或不能被使用,包括数据文件和可执行文件。若是可执行文件,则其本身包括一段检测代码,用以判断其本身是否已被非法移动。若是数据文件,则在使用该数据文件的可执行文件中包括一段检测代码,来判断该数据文件是否已被非法移动。当第一次将一个文件装入硬盘后,它所占有的硬盘的簇号已是固定的了。这样我们就可以作一个加密程序,在该程序里,约定一个或多个秘密的值N,N1,N2„,然后将文件指针分别移动到N或N1,N2„,在SFT中取出那几项硬盘位置数据,再用约定的秘密算法加以运算,就得到了包含被加密文件位置信息的“钥匙”,将它存于另一个文件中或干脆附加在被加密文件的末尾。在使用该文件的可执行文件的检测代码中,按同样的算法取得当前的“钥匙”,与先前保存的“钥匙”相比较,若相等,则说明文件没有被移动过,程序正常执行,否则,说明文件已不在先前的位置了,即已被非法移动过了,则程序异常执行。我们先看看DS系统中SFT的具体结构,系统有多个SFT,这个数目取决于NFIG.SYS文件中的FILES=N的N值。在DS4.0,5.0,6.0中,每个SFT的长度是3BH。多个SFT形成SFT数组,并不是整个系统的所有SFT组成一个连续的大数组,而是可能有多个SFT数组,每个数组由一个控制块管理,它们之间由指针连接。每个SFT数组的结构如下:偏移量 长度 说明00H DRD 指向下一个SFT数组的指针04H RD 本SFT数组内的SFT数目06H nBYTEs 由SFT组成的数组n=本数组中SFT数目*每个SFT所占字节数)我们还必须知道第一个SFT数组所在的地址。这可由DS功能调用52H先取得DS的多重表指针,在多重表偏移量04H处即是一个长指针,它即指向第一个SFT数组的头部。这样剩下的SFT数组的位置也就知道了。每当DS打开一个新文件时,DS就从这些SFT数组中找一个空闲的SFT项,分配给该文件。以后DS就用此SFT控制访问该文件。那么怎样确定一个刚打开的文件所对应的SFT项是SFT数组中的第几项呢?我们利用文件句柄和文件句柄表。每个进程都有一个文件句柄表,当我们打开一个文件时可得到该文件的句柄,它是一个整数,设为,则在文件句柄表中的第项即为该文件的SFT表项在SFT数组中的位置。那么怎样找到文件句柄表呢?我们先用DS功能调用51H得到程序段前缀PSP)的地址,在PSP偏移34H处即是指向该进程文件句柄表的双字指针。附图给出怎样找一个已打开文件的SFT。@@02A08500.GIF;附图@@打开文件取得文件句柄是3, 所对应的SFT的序号是6。下面就给出一个可执行文件防拷贝的例子。假设我们用++语言编一个完成某一功能的程序N-PY.PP,经过编译连接生成可执行文件N-PY.EXE,要对这个可执行文件实行硬盘防拷贝。我们先编写一个设置“钥匙”的程序PUT-KEY,在该程序中按上述方法取得N-PY.EXE的“原钥匙”它包含了N-PY.EXE初次装入硬盘时的位置信息),存于一个专用文件L-KEY.DAT中当然也可直接附加在N-PY.EXE的末尾,取时也到文件末尾去取),在N-PY.EXE中必须包含一段检测代码。它也用PUT-KEY的方法取出自己的“当前钥匙”,与存于L-KEY.DAT中的“原钥匙”比较,相等则说明文件还在原处,正常执行。否则,说明正在执行的N-PY.EXE是被拷贝的副本,停止执行或异常执行。这里,不用考虑“钥匙”的安全性,“钥匙”是可以公开的,只要取得“钥匙”的方法是保密的,非法拷贝者就无可奈何。可以这样理解这个防拷贝方法:可执行文件本身具有自锁性,在它每拷贝到一个新地点时就按文件位置上了一把新锁,当它执行时,它到一个固定的地方去取“钥匙”,打开本身的锁执行。当它被移动后,可理解为锁换了因为位置变了)。用“原钥匙”打不开,所以“原钥匙”是可以公开的,PUT-KEY.EXE就是用来设置“原钥匙”的。当合法用户想把N-PY.EXE拷贝到一个新地方,只需运行一次PUT-KEY.EXE就可以使用新的N-PY.EXE了。所以PUT-KEY.EXE必须由合法用户保管。先编写一个取“钥匙”的子程序,放在AKE-KEY.PP文件中,在该子程序中,分别取目录项的相对索引号,目录项所在扇区的扇区号,文件指针所对应的绝对簇号。采用相加的算法,形成“钥匙”。这里只用了一个文件指针6000所对应的簇号,当然可以使用多个文件指针,采用更复杂的算法,如相乘、相除、异或、相减等。所用的文件指针和所用的算法是保密的。而算出的“钥匙”可以是公开的。AKE-KEY.PP的内容如下本文件用来被包含在PUT-KEY.PP和N-PY.PP中)。/*本子程序用来取filenae的"当前钥匙"*/unsigned lng urentlatin-keyhar filenae)unsigned lng se;int filehandle;int i,iii,jjj1,jjj2;unsigned har u-har=0;unsigned int u-int=0;unsigned lng u-lng=0;unsigned int ffst1,segnt1,ffst2,segnt2;vid psp-ptrr;unsigned har far ptrr1, ptrr2;FILE Strea;Strea=fpenfilenae,"r+b");ifStrea==NULL) puts"pen errr");exit1); filehandle=filenStrea); //取文件句柄;fseekStrea,6000,0); //将文件指针置于6000处;fread i,2,1,Strea); //读一次,使DS按此文件指针修正SFT;as push esas v ah,51has int 21h //取程序段前缀PSP)段地址;as v es,bxas v ax,rd ptr es:[52] //偏移量34H为文件句柄表FHT)地址;as v bx,axax v ax,rd ptr es:[54]as v es,axas add bx,filehandle //文件句柄表中偏移filehandle 处的一字节;as v al,byte ptr es:[bx] //为该文件的SFT在SFT数组中的序号;as xr ah,ahas pp esas v iii,ax //iii中存放文件的SFT在SFT数组中的序号;
/
本文档为【用windows终端仿真程序实现微机远程文件传送1 计算机应用论文】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索