激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频

用Windows終端仿真程序實(shí)現微機遠程文件傳送

時(shí)間:2024-04-26 20:46:43 計算機畢業(yè)論文 我要投稿

用Windows終端仿真程序實(shí)現微機遠程文件傳送

有些硬盤(pán)防拷貝是通過(guò)對硬盤(pán)FAT表中的簇鏈的檢測來(lái)實(shí)現的,這與本文所推薦的方法原理一樣,都是通過(guò)檢測文件位置信息是否被改變來(lái)判斷文件是否已被移動(dòng)的。但前者涉及到定位FAT表及文件所在目錄等繁瑣工作,而且還和硬盤(pán)型號及格式化信息有關(guān),編程很不方便。本文所介紹的方法則不然,它直接與操作系統打交道,取出操作系統內核中現成的數據,即利用DOS系統文件表(SYSTEM FILE TABLE 簡(jiǎn)稱(chēng)SFT)來(lái)實(shí)現防拷貝。
當您打開(kāi)硬盤(pán)上的一個(gè)文件并移動(dòng)讀寫(xiě)指針時(shí),DOS會(huì )時(shí)刻記錄讀寫(xiě)指針所對應的硬盤(pán)位置。一個(gè)稍大些的文件在硬盤(pán)上要占用多個(gè)簇,這些簇并不是連續的,而是由操作系統一般按照“就近循環(huán)分配”原則為該文件分配的,這些簇的絕對簇號具有一定的隨機性,在FAT表中形成一個(gè)簇鏈。移動(dòng)讀寫(xiě)指針超過(guò)一個(gè)簇的大小時(shí),則所對應的絕對簇號也要變化。只要該文件沒(méi)有被移動(dòng)過(guò)(拷貝或整理硬盤(pán)),這些簇號就是固定的。一旦該文件被移動(dòng)了,根據DOS簇分配原則,這些對應的簇號就會(huì )改變。由此,我們可以檢查特定的文件指針所對應的絕對簇號是否改變了來(lái)判斷該文件是否已被非法移動(dòng)。
SFT是DOS在文件管理上的一個(gè)很重要的數據結構。只要DOS開(kāi)始引用一個(gè)文件或設備,它必然要建立一個(gè)SFT。該表記錄了文件設備名、目錄特性、設備特性、文件大小和位置、DDPB(塊設備)或設備驅動(dòng)程序標題(字符設備)的地址,以及打開(kāi)模式等有關(guān)文件的存儲、訪(fǎng)問(wèn)和操作的管理信息。其中有幾項數據可以用來(lái)確定文件在硬盤(pán)上的位置,它們是:文件讀寫(xiě)指針所對應的絕對簇號,目錄項的相對索引號(即目錄項在目錄扇區中的序號),目錄項所在扇區的扇區號。
那么怎樣利用這幾項數據防拷貝呢?這里所說(shuō)的防拷貝是指可以拷貝但拷貝后的文件不能執行或不能被使用,包括數據文件和可執行文件。若是可執行文件,則其本身包括一段檢測代碼,用以判斷其本身是否已被非法移動(dòng)。若是數據文件,則在使用該數據文件的可執行文件中包括一段檢測代碼,來(lái)判斷該數據文件是否已被非法移動(dòng)。當第一次將一個(gè)文件裝入硬盤(pán)后,它所占有的硬盤(pán)的簇號已是固定的了。這樣我們就可以作一個(gè)加密程序,在該程序里,約定一個(gè)或多個(gè)秘密的值N,N1,N2…,然后將文件指針?lè )謩e移動(dòng)到N或N1,N2…,在SFT中取出那幾項硬盤(pán)位置數據,再用約定的秘密算法加以運算,就得到了包含被加密文件位置信息的“鑰匙”,將它存于另一個(gè)文件中或干脆附加在被加密文件的末尾。在使用該文件的可執行文件的檢測代碼中,按同樣的算法取得當前的“鑰匙”,與先前保存的“鑰匙”相比較,若相等,則說(shuō)明文件沒(méi)有被移動(dòng)過(guò),程序正常執行,否則,說(shuō)明文件已不在先前的位置了,即已被非法移動(dòng)過(guò)了,則程序異常執行。
我們先看看DOS系統中SFT的具體結構,系統有多個(gè)SFT,這個(gè)數目取決于CONFIG.SYS文件中的FILES=N的N值。在DOS4.0,5.0,6.0中,每個(gè)SFT的長(cháng)度是3BH。多個(gè)SFT形成SFT數組,并不是整個(gè)系統的所有SFT組成一個(gè)連續的大數組,而是可能有多個(gè)SFT數組,每個(gè)數組由一個(gè)控制塊管理,它們之間由指針連接。每個(gè)SFT數組的結構如下:
偏移量 長(cháng)度 說(shuō)明
00H DWORD 指向下一個(gè)SFT數組的指針
04H WORD 本SFT數組內的SFT數目
06H nBYTEs 由SFT組成的數組(n=本數組中SFT數目*每個(gè)SFT所占字節數)
我們還必須知道第一個(gè)SFT數組所在的地址。這可由DOS功能調用52H先取得DOS的多重表指針,在多重表偏移量04H處即是一個(gè)長(cháng)指針,它即指向第一個(gè)SFT數組的頭部。這樣剩下的SFT數組的位置也就知道了。
每當DOS打開(kāi)一個(gè)新文件時(shí),DOS就從這些SFT數組中找一個(gè)空閑的SFT項,分配給該文件。以后DOS就用此SFT控制訪(fǎng)問(wèn)該文件。那么怎樣確定一個(gè)剛打開(kāi)的文件所對應的SFT項是SFT數組中的第幾項呢?我們利用文件句柄和文件句柄表。每個(gè)進(jìn)程都有一個(gè)文件句柄表,當我們打開(kāi)一個(gè)文件時(shí)可得到該文件的句柄,它是一個(gè)整數,設為M,則在文件句柄表中的第M項即為該文件的SFT表項在SFT數組中的位置。那么怎樣找到文件句柄表呢?我們先用DOS功能調用51H得到程序段前綴(PSP)的地址,在PSP偏移34H處即是指向該進(jìn)程文件句柄表的雙字指針。
附圖給出怎樣找一個(gè)已打開(kāi)文件的SFT。
@@02A08500.GIF;附圖@@
打開(kāi)文件取得文件句柄是3,所對應的SFT的序號是6。
下面就給出一個(gè)可執行文件防拷貝的例子。
假設我們用C 語(yǔ)言編一個(gè)完成某一功能的程序NO-COPY.CPP,經(jīng)過(guò)編譯連接生成可執行文件NO-COPY.EXE,要對這個(gè)可執行文件實(shí)行硬盤(pán)防拷貝。我們先編寫(xiě)一個(gè)設置“鑰匙”的程序PUT-KEY,在該程序中按上述方法取得NO-COPY.EXE的“原鑰匙”(它包含了NO-COPY.EXE初次裝入硬盤(pán)時(shí)的位置信息),存于一個(gè)專(zhuān)用文件LOC-KEY.DAT中(當然也可直接附加在NO-COPY.EXE的末尾,取時(shí)也到文件末尾去取),在NO-COPY.EXE中必須包含一段檢測代碼。
它也用PUT-KEY的方法取出自己的“當前鑰匙”,與存于LOC-KEY.DAT中的“原鑰匙”比較,相等則說(shuō)明文件還在原處,正常執行。否則,說(shuō)明正在執行的NO-COPY.EXE是被拷貝的副本,停止執行或異常執行。
這里,不用考慮“鑰匙”的安全性,“鑰匙”是可以公開(kāi)的,只要取得“鑰匙”的方法是保密的,非法拷貝者就無(wú)可奈何?梢赃@樣理解這個(gè)防拷貝方法:可執行文件本身具有自鎖性,在它每拷貝到一個(gè)新地點(diǎn)時(shí)就按文件位置上了一把新鎖,當它執行時(shí),它到一個(gè)固定的地方去取“鑰匙”,打開(kāi)本身的鎖執行。當它被移動(dòng)后,可理解為鎖換了(因為位置變了)。用“原鑰匙”打不開(kāi),所以“原鑰匙”是可以公開(kāi)的,PUT-KEY.EXE就是用來(lái)設置“原鑰匙”的。當合法用戶(hù)想把NO-COPY.EXE拷貝到一個(gè)新地方,只需運行一次PUT-KEY.EXE就可以使用新的NO-COPY.EXE了。所以PUT-KEY.EXE必須由合法用戶(hù)保管。
先編寫(xiě)一個(gè)取“鑰匙”的子程序,放在MAKE-KEY.CPP文件中,在該子程序中,分別取目錄項的相對索引號,目錄項所在扇區的扇區號,文件指針所對應的絕對簇號。采用相加的算法,形成“鑰匙”。這里只用了一個(gè)文件指針6000所對應的簇號,當然可以使用多個(gè)文件指針,采用更復雜的算法,如相乘、相除、異或、相減等。所用的文件指針和所用的算法是保密的。而算出的“鑰匙”可以是公開(kāi)的。
MAKE-KEY.CPP的內容如下(本文件用來(lái)被包含在PUT-KEY.CPP和NO-COPY.CPP中)。
/*本子程序用來(lái)取filename的"當前鑰匙"*/
unsigned long curentlocation-key(char filename)
{
unsigned long secc;
int filehandle;
int i,iii,jjj1,jj

【用Windows終端仿真程序實(shí)現微機遠程文件傳送】相關(guān)文章:

計算機畢業(yè)論文-用Windows終端仿真程序實(shí)現微機遠程文件傳送03-06

用Borland C 3.1實(shí)現外設與Windows應用程序實(shí)時(shí)通信03-21

Windows CE中實(shí)現藍牙串口驅動(dòng)程序03-18

在 DOS 下使用Windows *.WAV 文件03-03

遠程終端監控系統03-08

用Protel99SE實(shí)現脈沖電路的仿真03-18

Windows 中斷程序設計03-28

用MSP430實(shí)現的嵌入式因特網(wǎng)終端設計03-18

在Windows系統中用VC 實(shí)現鉤子機制03-18

激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频