999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于分區表的移動存儲介質標識方法

2009-03-02 09:33:12妙全興
現代電子技術 2009年4期

沈 瑜 妙全興

摘 要:移動存儲介質在涉及安全的應用場合需要對其進行標識。給出基于磁盤分區表實現移動存儲介質標識的方法,對分區表的結構和工作原理、在分區表空閑表項中寫入和訪問標識的方法等進行闡述,并給出核心代碼。結果表明,該方法不但可行,而且具有其他方法所沒有的優點,是對移動存儲介質進行標識和認證的一種新的手段。

關鍵詞:移動存儲介質;分區表;標識;表項;API

中圖分類號:TP393 文獻標識碼:B 文章編號:1004-373X(2009)04-096-03

Method of Marking Removable Storage Medium Based on Partition Table

SHEN Yu, MIAO Quanxing

(Armed Police Engineering College,Xi′an,710086,China)

Abstract: It is necessary for removable storage medium to be marked when involving the application of security.The new method for marking removable storage medium based on partition table is put forth.The formation and principle of partition table are discussed,the method to modify and check the vacancy partition table item is described,and some key codes are presented.The result indicates that it is a new technical method for removable storage medium to be marked and authenticated.

Keywords:removable storage medium;partition table;marking;table item;API

0 引 言

由于移動存儲介質(移動硬盤、U盤等)具有容量大、體積小、易攜帶等一系列特點,而得到了廣泛的使用,同時移動存儲介質也存在使用過于隨意,難以對其使用情況進行有效監管等問題,因而已經成為敏感數據泄漏的重要環節。因此,移動存儲介質在涉及安全的應用場合需要對其進行標識,以便于對移動介質的使用進行監管。

部分移動存儲介質有一個廠家惟一的序列號,這些序列號一般用戶無法改變,但可以使用現成的軟件或編程方法方便的讀出。然而,各廠家定義的序列號并不遵從統一的標準,不同品牌移動存儲介質的序列號長度、使用字符等不盡相同,甚至有些閃存產品根本就沒有序列號。同時移動存儲介質品牌繁雜,對所使用的移動存儲介質種類做硬性規定又不現實。因此,利用固有的序列號標識移動介質存在困難。在此提出的方法是將一個惟一的編號作為序列號寫入移動存儲介質分區表空閑字段中,該方法既適用于目前常用的各種存儲介質,又具有較好的隱蔽性和抗毀性,能實現對各種移動存儲介質統一的標識。

1 硬盤的邏輯結構

常見的移動存儲介質有U盤和移動硬盤。他們的物理結構和存儲機理都不同。如:U盤是半導體存儲設備,而移動硬盤是磁存儲設備。但是這些移動存儲介質的邏輯結構都是相同的,而且有相同的邏輯訪問方式,都是基于特定的文件系統。下面就以硬盤為例,對移動存儲介質的存儲結構,分區原理等進行詳細闡述。

1.1 硬盤的數據分布

硬盤上的數據按照不同特點和作用大致可分為5部分:主引導記錄區、DOS引導記錄區、文件分配表區、文件目錄表區和數據區。

主引導記錄區位于硬盤的0磁道0柱面1扇區,占用此扇區的前446個字節,其中存放的主引導記錄是BIOS向操作系統交接的重要入口。其后的64個字節是主分區表,用來存儲硬盤主引導分區信息。

DOS引導記錄區位于硬盤的0磁道1柱面1扇區,它包括一個引導程序和一個被稱為BPB(BIOS參數塊)的分區參數記錄表,是操作系統可以直接訪問的第一個扇區。引導程序的任務是對硬盤系統進行復位,并檢查兩個系統隱含文件的合法性,即查看它們是否處于指定根目錄區的文件目錄表中第一,第二項,若不合法,則給出提示信息。若檢查合法,則將IO.SYS讀入內存并執行。BPB參數塊主要記錄硬盤的每扇區字節數、磁頭數、目錄起始簇等重要信息。

文件分配表區 (File Allocation Table)是用來記錄文件存儲位置的表格,文件的存放是以鏈式存儲的方式存放在磁盤的非連續區域內的,通過指針將分段存放的文件聯系在一起。當讀寫文件時,操作系統通過文件分配表可以準確地讀出文件。文件分配表一般有兩個,第二個文件分配表作為第一個的備份。

文件目錄表區(DIRECTORY)就是文件的目錄,它記錄著每個文件的起始單元、文件的屬性等,與文件分配表共同配合,確定文件的位置。

數據區(DATA)是真正存儲數據的區域,其組織與管理由系統根據前4個區域的內容來完成。

1.2 硬盤的分區

分區是硬盤上的一組連續的扇區。硬盤上的任何扇區均要位于某一特定的分區中才能被系統直接訪問。分區有兩種:一種是主分區;另一種是擴展分區,擴展分區通常不含系統文件,并可以分成若干個邏輯驅動器,相應的,分區表也分為主分區表和擴展分區表兩類。由于擴展分區又可分為許多邏輯分區,每個邏輯分區對應一個擴展分區表,因此有多少個邏輯分區就會有多少個擴展分區表。擴展分區表包含在擴展分區的第一扇區或邏輯驅動器“二級擴展分區”的第一扇區。

1.2.1 主分區表的結構

主分區表中最多可以包含4個分區表項,即最多可以將硬盤劃分成4個主分區,且每個主分區可以安裝不同的操作系統。一個分區表項為16B,它可以確定一個分區的邊界 、分區的類型和分區的大小(扇區數),分區表項的格式見圖1[1]。其中,表項的第一字節為引導標志,若該字節為80H則表示該分區為可引導的活動分區,若該字節為0則表示該分區為非活動分區,最多只能有1個分區為活動分區。

1.2.2 擴展分區表的結構

在擴展分區表所在扇區中沒有主引導程序,只有分區表,擴展分區表中只包含2項(32 B):第一項描述本邏輯分區的情況,另一項指向下一個邏輯驅動器的分區扇區的位置。主分區表和所有擴展分區表形成一個鏈表結構,即在主分區表中有一個分區表項指向第一擴展分區表,每個擴展分區表又有一個分區表項指向下一個擴展分區表。這樣在主引導扇區中僅需要存儲一個分區表項數據的擴展分區,通過這個擴展分區的數據可以找到下一個邏輯分區的起始位置,以此起始位置類推可以找到所有的邏輯分區。如圖2所示為擴展分區表結構示意圖[2]。

當移動硬盤首次接入操作系統時,需要進行高級格式化。這種高級格式化是按照擴展分區類進行的,因此移動硬盤將作為一個普通的邏輯分區加入到已有的擴展分區鏈表中;而且其上面分區數據的分布和硬盤上一個邏輯分區的數據分布一樣,都是擴展分區下面的一個邏輯分區,因此,移動硬盤可作為操作系統下面一個文件系統而存在。

2 技術原理及核心代碼

2.1 技術原理

移動存儲介質標識符應滿足以下要求:每個介質標識符要具有惟一性;標識符的存在不影響正常使用;標識符具有一定的耐久性,不會因正常的使用而去掉。要滿足第三條要求,標識符只能存儲在介質的系統區。理論分析表明,擴展分區表中分區表信息只占用前兩個分區表項,后面兩個分區表項暫時未用(32個字節),在對磁盤進行高級格式化時,這兩個分區表項的內容并不發生改變,是用來存放標識符的理想位置。

2.2 核心代碼

利用VC++實現對硬盤扇區數據的訪問,對其中空閑區域的數據進行修改,將移動介質標識符編寫進扇區,再將數據寫回到硬盤扇區。

2.2.1 訪問扇區數據

在Windows操作系統中采取訪問安全保護機制,如:不能直接訪問物理內存,不能使用各種DOS,BIOS中斷等。但在采取“實保護”措施的同時也提供了另外的一種有別于在DOS下訪問硬件設備的方法,允許按照對文件的讀寫方式對其進行數據存取訪問。在Windows下把所有的設備都當作文件進行操作。通過Windows API中提供的CreateFile()函數可以直接對磁盤扇區進行訪問。通過此接口函數,可以“打開”設備驅動程序,得到設備的句柄。與對串行端口的訪問類似,也需要用與文件存放路徑相類似的方式指出要操作的硬件設備(硬盤)。一般存儲設備的名稱是微軟規定好的,如:軟盤驅動器用A:,B:標識;邏輯驅動器用C:,D:,E:標識;而物理驅動器則用PHYSICALDRIVE X(X=0,1,2)標識;對于第一個物理驅動器,訪問格式為“\\\\.\\PHYSICALDRIVE 0”。如:需要對磁盤進行讀取操作,而他是第四個物理驅動器,則使用:HANDLE hDev=CreateFile(“\\\\.\\PHYSICALDRIVE 3”,…)。一般調用CreateFile獲得設備句柄時,訪問方式參數設置為0或GENERIC_READ|GENERIC_WRITE,共享方式參數設置為FILE_SHARE_READ|FILE_SHARE_WRITE,創建方式參數設置為OPEN_EXISTING,因為訪問的是已經存在的物理設備,其他參數設置為0或NULL。利用這樣的方法,就可以對分區扇區中的空閑字段數據進行訪問操作。

2.2.2 讀取與寫入扇區數據

當用CreateFile()函數訪問磁盤扇區后,采用hDev保存磁盤扇區的句柄,

下面就可以通過ReadFile()或WriteFile()函數實施相應的讀寫操作,具體操作與文件讀寫差別不大。最后,在完成訪問操作后,以CloseHandle()關閉文件句柄釋放資源,從而完成一次完整的磁盤扇區數據讀取與寫入操作。利用這種方法,標識符就可以保存在磁盤分區扇區分區表中的空閑字段,起到移動介質標識的作用。

2.2.3 關鍵代碼

關鍵代碼如下所示:

Int main(void)

{

HANDLE hDev=CreateFile("\\\\.\\PHYSICALDRIVEX",GENERIC_READ|GENERIC_WRITE,

FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL);//打開分區扇區

if(hDev==INVALID_HANDLE_VALUE)

{

ExitProcess(0);

}

DWORD dwByte=512;

DWORD dwReadsize;

BOOL b_Ret;

LPTSTR lpsectBuff;

lpsectBuff=(LPTSTR)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,512);

b_Ret=ReadFile(hDev,lpsectBuff,dwByte,&dwReadsize;,NULL);//讀取分區扇區

if(b_Ret==FALSE||dwReadsize<512)

{

CloseHandle(hDev);

ExitProcess(0);

}

BYTE bSECT[512]={0};

for(int i=0;i<512;i++)

{

bSECT=lpsectBuff;

}

bSECT[0x185]=50;

bSECT[0x186]=51;

bSECT[0x187]=52;

bSECT[0x188]=53;

bSECT[0x189]=54;

bSECT[0x18A]=55;//嵌入12位標識符:505152535455到空閑字段

b_Ret=WriteFile(hDev,lpsectBuff,dwByte,&dwReadsize;,NULL);//將修改寫回扇區

if(b_Ret==FALSE||dwReadsize<512)

{

CloseHandle(hDev);

ExitProcess(0);

}

CloseHandle(hDev);

Return 1;

}

3 結 語

為了能惟一標識移動存儲介質,在此提出了一種新的標識方法,將具有惟一標識的移動介質標識符嵌入移動介質中分區表中的空閑字段,而在移動介質的正常使用中,對用戶完全透明,不會被用戶覺察。在高級格式化的操作中,這些寫入分區表中的信息也不會被重寫。在需要時,可以將嵌入的信息讀取出來。雖然這種方法是可行的,但考慮到如果對移動存儲介質進行低級格式化后,移動介質里的數據就會全部被清除,也包括標識,因此,在這一方面還需做進一步的研究,以便找到更好的標識方法。

參 考 文 獻

[1]蔣華龍,夏齡.大容量硬盤邏輯分區的隱藏與恢復[J].四川理工學院學報:自然科學版,2004,17(3):57-58.

[2]李為,劉嘉勇.一種基于分區引導扇區控制的移動存儲介質安全控制方法[J].成都信息工程學院學報,2007,22(1):92-97.

[3]袁建東,趙強,鄭見靈.Windows系統下FAT32分區信息分析與獲取方法[J].河北工業科技,2007,24(1):11-12.

[4]黃國盛,梁平元,周小清.Windows環境中分區表結構剖析與安全修復[J].吉首大學學報:自然科學版,2003,24(1):56-57.

[5]張載鴻,余永進,何渝,等.MS-DOS6技術精萃[M].北京:清華大學出版社,1994.74-93.

[6]佚名.VC++實現Win2000下直接讀寫磁盤扇區[EB/OL].http://www.VCZX.com/article/list.php,2004.

作者簡介 沈 瑜 女,1984年出生,陜西西安人,碩士研究生。主要研究方向為指揮自動化。

妙全興 男,1965年出生,陜西岐山人,副教授,研究生導師。主要研究方向為計算機網絡、信息安全。

主站蜘蛛池模板: 国产原创自拍不卡第一页| 国产精品手机视频一区二区| 久久精品国产免费观看频道| 九一九色国产| 波多野结衣一二三| 又黄又爽视频好爽视频| 国产日韩精品欧美一区喷| 亚洲一级色| 日本www在线视频| 又黄又湿又爽的视频| 2022国产无码在线| 71pao成人国产永久免费视频 | 天天色天天操综合网| 久久亚洲美女精品国产精品| 国产日本欧美亚洲精品视| 国产欧美日韩在线在线不卡视频| 在线免费观看AV| 99久久性生片| 91小视频在线观看| 国产成人91精品免费网址在线| 欧美在线视频不卡第一页| 久久永久免费人妻精品| 日本黄色a视频| 欧美激情首页| 欧洲欧美人成免费全部视频| 狼友视频国产精品首页| 国产欧美一区二区三区视频在线观看| 男人天堂亚洲天堂| 国产高潮视频在线观看| 亚洲婷婷在线视频| 亚洲一级毛片免费看| 亚洲欧州色色免费AV| 老司机精品99在线播放| a在线亚洲男人的天堂试看| 国产制服丝袜91在线| 99这里只有精品免费视频| 欧美日韩中文字幕二区三区| 精品久久久久成人码免费动漫| 欧美午夜理伦三级在线观看| 91破解版在线亚洲| 四虎成人在线视频| 国产成人一区免费观看| 欧美综合一区二区三区| 亚洲第一天堂无码专区| 午夜福利网址| 91麻豆精品国产91久久久久| 精品国产美女福到在线直播| 无码精品一区二区久久久| 老色鬼欧美精品| 亚洲人成在线精品| 久久国产黑丝袜视频| 国产福利免费在线观看| 久久香蕉国产线看观看亚洲片| 超碰aⅴ人人做人人爽欧美| 国产精品片在线观看手机版 | 日本亚洲成高清一区二区三区| 四虎精品国产AV二区| 伊在人亚洲香蕉精品播放| 99视频在线观看免费| 91麻豆久久久| 国产国语一级毛片| 国产噜噜噜视频在线观看| 亚洲va视频| 波多野结衣中文字幕一区| 久久99热66这里只有精品一| 真实国产乱子伦高清| 丁香六月激情综合| 视频一区视频二区日韩专区| 一本一本大道香蕉久在线播放| 亚洲日韩Av中文字幕无码| 久久国产乱子| 99久久精品久久久久久婷婷| 热久久国产| 香蕉综合在线视频91| 凹凸精品免费精品视频| 日韩乱码免费一区二区三区| 成年人国产网站| 国产一级一级毛片永久| 成人日韩精品| 色哟哟国产精品一区二区| 成人无码一区二区三区视频在线观看| 青青青视频蜜桃一区二区|