国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

鎖硬盤邏輯盤程序

2019-11-17 05:31:36
字體:
供稿:網(wǎng)友

  隨著微處理器的更新?lián)Q代,目前一般的中高檔微機(jī)均配備有一個(gè)容量很大的硬盤機(jī),小則幾十MB,多則上百
MB。在硬盤上要同時(shí)安裝許多公軟件和用戶文件,通常用戶文件大多是個(gè)人的私有信息,不愿讓他人隨意查看
和復(fù)制。報(bào)刊上介紹了多種硬盤的加密方法,多數(shù)是獨(dú)占整個(gè)硬盤,禁止讓不知道口令的用戶使用。本人通過
對(duì)硬盤邏輯盤結(jié)構(gòu)的具體分析,提出了對(duì)硬盤的一個(gè)邏輯盤進(jìn)行加密的有效方法,達(dá)到了獨(dú)占一個(gè)硬盤邏輯盤
的目的,從而圓滿地解決了上述問題。

一、邏輯盤的內(nèi)部結(jié)構(gòu)

FDISK把硬盤主引導(dǎo)記錄存放在硬盤的第一個(gè)物理扇區(qū),即0面0柱1扇區(qū),在該扇區(qū)的1BEH-1FDH處(共64個(gè)字
節(jié))是硬盤的分區(qū)表,我們稱這個(gè)分區(qū)表為主分區(qū)表,它由4個(gè)16字節(jié)的登記項(xiàng)組成,每個(gè)登記項(xiàng)描述一個(gè)特定
的分區(qū),其中各字節(jié)代表的意義見表1。
                    表1.分區(qū)表登記項(xiàng)各字節(jié)的意義
┌──┬──┬───────┬──┬───────┬───┬───┐
│ 意 │啟動(dòng)│   分區(qū)開始   │系統(tǒng)│   分區(qū)結(jié)束   │相對(duì)扇│扇 區(qū) │
│ 義 │標(biāo)志│頭  扇區(qū)  柱體│標(biāo)志│頭  扇區(qū)  柱體│區(qū)數(shù)  │總 數(shù) │
├──┼──┼───────┼──┼───────┼───┼───┤
│偏移│ 00 │01   02    03 │ 04 │05   06    07 │08-11 │12-15 │
└──┴──┴───────┴──┴───────┴───┴───┘
其中“系統(tǒng)標(biāo)志”字節(jié)可以取以下不同的值:
    01:DOS分區(qū),該分區(qū)FAT表每項(xiàng)為12位;
    02:XENIX分區(qū);
    04:DOS分區(qū),該分區(qū)FAT表每項(xiàng)為16位;
    05:擴(kuò)展DOS分區(qū);
    06:大DOS分區(qū),為MS DOS 4.00以上DOS版本在治理大于32MB盤或邏輯分區(qū)時(shí)所使用的標(biāo)志,分區(qū)的
    FAT表每項(xiàng)為16位。
MS/PC DOS 3.30的FDISK程序把初始DOS分區(qū)信息放在主分區(qū)表的第一個(gè)登記項(xiàng),而第二個(gè)登記項(xiàng)為擴(kuò)展DOS分
區(qū)信息,其余登記項(xiàng)為空。初始DOS分區(qū)代表C邏輯盤,擴(kuò)展DOS分區(qū)的劃分要根據(jù)它自己的分區(qū)表而定。擴(kuò)展
DOS分區(qū)的第一個(gè)扇區(qū)上記錄有該擴(kuò)展DOS分區(qū)的劃分信息,這個(gè)分區(qū)被稱為第一擴(kuò)展DOS分區(qū)表,其中的第一
個(gè)登記項(xiàng)記錄著D邏輯盤的信息,第二個(gè)登記項(xiàng)記錄了第二個(gè)擴(kuò)展DOS分區(qū)的信息;第二個(gè)擴(kuò)展DOS分區(qū)的第一
個(gè)扇區(qū)記錄了該擴(kuò)展DOS分區(qū)的信息,其第一個(gè)登記項(xiàng)記錄了E邏輯盤的信息,第二個(gè)登記項(xiàng)記錄了第三個(gè)擴(kuò)展
DOS分區(qū)的信息;依此類推,可以找到所有擴(kuò)展分區(qū)的信息。表2列出了一個(gè)62MB硬盤的所有分區(qū)信息。由表
2可以知道,F(xiàn)DISK把硬盤的分區(qū)信息,以鏈表格式存放在硬盤的不同物理扇區(qū)上,每一個(gè)邏輯盤均有一個(gè)對(duì)
應(yīng)的分區(qū)信息表,且與一個(gè)物理扇區(qū)一一對(duì)應(yīng),如C盤與0面0柱1扇區(qū)對(duì)應(yīng),D盤與0面90柱1扇區(qū)對(duì)應(yīng)。
                       表2. 一個(gè)62MB硬盤分區(qū)信息表
┌────┬───┬──┬─────┬─────┬───┬───┬──┐
│ 定  位 │系  統(tǒng)│啟動(dòng)│ 分區(qū)開始 │ 分區(qū)結(jié)束 │相  對(duì)│總  扇│邏輯│
│面 柱 扇│標(biāo)  志│標(biāo)志│面  柱  扇│面  柱  扇│扇  區(qū)│區(qū)  數(shù)│ 盤 │
├────┼───┼──┼─────┼─────┼───┼───┼──┤
│0   0  1│DOS-12│Yes │1    0  1 │7   89  26│    26│ 18694│  C │
│        │EXTEND│No  │0   90  1 │7  613  26│ 18720│108992│    │
├────┼───┼──┼─────┼─────┼───┼───┼──┤
│0  90  1│DOS-16│No  │1   90  1 │7  289  26│    26│ 41574│  D │
│        │EXTEND│No  │0  290  1 │7  389  26│ 41600│ 20800│    │
├────┼───┼──┼─────┼─────┼───┼───┼──┤
│0 290  1│DOS-16│No  │1  290  1 │7  389  26│    26│ 20774│  E │
│        │EXTEND│No  │0  390  1 │7  613  26│ 62400│ 46592│    │
├────┼───┼──┼─────┼─────┼───┼───┼──┤
│0 390  1│DOS-16│No  │1  390  1 │7  613  26│    26│ 46566│  F │
└────┴───┴──┴─────┴─────┴───┴───┴──┘

二、硬盤數(shù)據(jù)保密的原理

DOS對(duì)邏輯盤的治理是通過一個(gè)單鏈將若干個(gè)相互獨(dú)立的連續(xù)盤區(qū)聯(lián)系起來,每個(gè)連續(xù)的盤區(qū)均有一套完整的
分區(qū)引導(dǎo)記錄、FAT、文件目標(biāo)和數(shù)據(jù)區(qū)。DOS在啟動(dòng)過程中,根據(jù)每個(gè)分區(qū)表中每個(gè)登記項(xiàng)的系統(tǒng)標(biāo)志字節(jié)的
內(nèi)容來識(shí)別邏輯分區(qū),假如該字節(jié)的值為DOS分區(qū)的有效值,則DOS將其視為有效分區(qū),系統(tǒng)啟動(dòng)后,用戶通過
一邏輯盤使用這個(gè)分區(qū);否則認(rèn)為是無效分區(qū),系統(tǒng)啟動(dòng)后,不為這個(gè)分區(qū)分配邏輯盤符,用戶也就無法使用
此分區(qū),其數(shù)據(jù)也就暫時(shí)“隱含”起來了。
根據(jù)上述原理,我們可以使用BIOS提供的13H號(hào)中斷完成硬盤分區(qū)表的讀寫和系統(tǒng)標(biāo)志字節(jié)的更改,實(shí)現(xiàn)邏輯
分區(qū)的鎖閉與解鎖,達(dá)到個(gè)人數(shù)據(jù)和機(jī)密數(shù)據(jù)的安全與保密。

三、程序設(shè)計(jì)及其使用方法

程序設(shè)計(jì)的基本思路是:首先把分區(qū)表鏈讀入內(nèi)存,分析各分區(qū)的狀態(tài),根據(jù)用戶的要求,若對(duì)某一分區(qū)加鎖
,則判定該分區(qū)的當(dāng)前狀態(tài),如已鎖,則返回,否則,對(duì)代表該分區(qū)的登記項(xiàng)的系統(tǒng)標(biāo)志字節(jié)求反,提示用戶
輸入口令,最后將修改了的分區(qū)表寫回對(duì)應(yīng)的物理扇區(qū),重新啟動(dòng)機(jī)器后,該分區(qū)就“消失”了;解鎖的過程
基本同上,不過多了一道校驗(yàn)口令的過程。
本人應(yīng)用TURBO C 2.0編寫了一個(gè)程序HDL.C,經(jīng)過編譯生成執(zhí)行文件后,在DOS系統(tǒng)下直接運(yùn)行,能方便地
完成硬盤邏輯分區(qū)的鎖閉與解鎖,并且可以加上用戶自己的口令,某邏輯盤鎖了以后,不知道口令的用戶是
無法打開的。
    程序的使用方法很簡(jiǎn)單,其使用格式為:
        HDL <d:> </switch>
其中d為邏輯分區(qū)對(duì)應(yīng)的盤符,如C、D等,switch為選擇開關(guān),可以選:
    L -- 為鎖邏輯分區(qū);
    U -- 為解鎖邏輯分區(qū);
尖括號(hào)代表參數(shù)可以缺省。例如直接執(zhí)行“HDL”顯示程序的幫助信息;執(zhí)行“HDL D:”顯示D邏輯盤的當(dāng)
前狀態(tài);執(zhí)行“HDL D: /L”鎖D邏輯盤。

四、源程序清單
/********************************************************/
/*  程序名稱: HDL.C 1.10                                */
/*  作    者: 董占山                                    */
/*  完成日期: 1992,1995                                 */
/*  用    途: 對(duì)指定的硬盤邏輯分區(qū)加鎖或解鎖            */
/*  編譯方法: 用下列命令編譯連接可以得到HDL.COM:        */
/*  tcc -mt hdl                                         */
/*  tlink c:/tc/lib/c0t+hdl,hdl,,c:/tc/lib/cs/lib /t    */
/********************************************************/

#include <stdio.h>
#include <PRocess.h>
#include <dos.h>
#include <string.h>

#define TRUE 1;
#define FALSE 0;

/* 定義分區(qū)表結(jié)構(gòu) */
strUCt PartitionTypeTemp
     {
        unsigned char BootIndicator,StartHead,StartSector,StartCylinder,
      SysIndicator,EndHead,EndSector,EndCylinder;
      &nb


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 灌阳县| 剑川县| 陆丰市| 新干县| 通辽市| 观塘区| 文安县| 崇信县| 西昌市| 宣化县| 珠海市| 包头市| 山阳县| 西充县| 勐海县| 云龙县| 长海县| 永泰县| 清远市| 晋城| 鄂托克前旗| 南通市| 渑池县| 玉林市| 德令哈市| 宜兰县| 八宿县| 英山县| 加查县| 禹州市| 长顺县| 宁陵县| 讷河市| 泽州县| 武功县| 吉木萨尔县| 萨嘎县| 樟树市| 马尔康县| 汉川市| 万载县|