计算机应用 | 古代文学 | 市场营销 | 生命科学 | 交通物流 | 财务管理 | 历史学 | 毕业 | 哲学 | 政治 | 财税 | 经济 | 金融 | 审计 | 法学 | 护理学 | 国际经济与贸易
计算机软件 | 新闻传播 | 电子商务 | 土木工程 | 临床医学 | 旅游管理 | 建筑学 | 文学 | 化学 | 数学 | 物理 | 地理 | 理工 | 生命 | 文化 | 企业管理 | 电子信息工程
计算机网络 | 语言文学 | 信息安全 | 工程力学 | 工商管理 | 经济管理 | 计算机 | 机电 | 材料 | 医学 | 药学 | 会计 | 硕士 | 法律 | MBA
现当代文学 | 英美文学 | 通讯工程 | 网络工程 | 行政管理 | 公共管理 | 自动化 | 艺术 | 音乐 | 舞蹈 | 美术 | 本科 | 教育 | 英语 |

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

2013-10-11 01:28
导读:附图给出怎样找一个已打开文件的SFT。 @@02A08500.GIF;附图@@ 打开文件取得文件句柄是3,所对应的SFT的序号是6。 下面就给出一个可执行文件防拷贝的例子。

附图给出怎样找一个已打开文件的SFT。
@@02A08500.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必须由合法用户保管。
先编写一个取“钥匙”的子程序,放在MAKE-KEY.CPP文件中,在该子程序中,分别取目录项的相对索引号,目录项所在扇区的扇区号,文件指针所对应的绝对簇号。采用相加的算法,形成“钥匙”。这里只用了一个文件指针6000所对应的簇号,当然可以使用多个文件指针,采用更复杂的算法,如相乘、相除、异或、相减等。所用的文件指针和所用的算法是保密的。而算出的“钥匙”可以是公开的。 (转载自中国科教评价网www.nseac.com )
MAKE-KEY.CPP的内容如下(本文件用来被包含在PUT-KEY.CPP和NO-COPY.CPP中)。
/*本子程序用来取filename的"当前钥匙"*/
unsigned long curentlocation-key(char filename)
{
unsigned long secc;
int filehandle;
int i,iii,jjj1,jj

上一篇:谈高校图书馆对爱国主义教育地方文献资源的收 下一篇:没有了