




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
3.取證技術(shù)基礎(chǔ)目錄CONTENTS3.1存儲基礎(chǔ)3.1.1 存儲原理 3.1.2 存儲系統(tǒng)結(jié)構(gòu) 3.1.3 存儲設(shè)備 3.2文件系統(tǒng)及編碼3.2 文件系統(tǒng)及編碼 3.2.1 文件系統(tǒng) 3.2.2 編碼與解碼 3.3操作系統(tǒng)3.3.1 Windows 3.3.2 MacOS 3.3.3 Unix/Linux 3.3.4 Android 3.3.5 iOS 目錄CONTENTS3.4網(wǎng)絡(luò)基礎(chǔ)3.4.1 網(wǎng)絡(luò)的分類 3.4.2 網(wǎng)絡(luò)體系結(jié)構(gòu) 3.4.3 網(wǎng)絡(luò)協(xié)議 3.5惡意代碼分析基礎(chǔ)3.5.1 惡意代碼簡介 3.5.2 惡意代碼分類 3.5.3 惡意代碼的分析原理 3.6移動終端取證基礎(chǔ)3.6.1 移動終端概述 3.6.2 移動終端的操作系統(tǒng) 3.6.3 移動通信技術(shù) 3.6.4 移動終端的存儲 3.1存儲基礎(chǔ)3.1.1存儲原理數(shù)據(jù)在計算機(jī)中的存儲,都是以二進(jìn)制為基礎(chǔ)的。存儲單位按照不同要求,具有不同格式:
二進(jìn)制位(bit):又稱為比特,是計算機(jī)中存儲的最小信息單位,只有“0”和“1”兩種狀態(tài)。計算機(jī)中最直接、最基本的操作就是對二進(jìn)制位的操作。字節(jié)(Byte):一個字節(jié)是8位二進(jìn)制,即1Byte=8bit。字節(jié)是計算機(jī)處理數(shù)據(jù)的基本單位,即以字節(jié)為單位解釋信息。通常,一個ASCII碼占1個字節(jié);一個漢字國標(biāo)碼占2個字節(jié);整數(shù)占2個字節(jié)。字(word):是計算機(jī)內(nèi)部進(jìn)行信息處理的基本單位,是計算機(jī)可以同時處理的二進(jìn)制數(shù)的位數(shù),即一組二進(jìn)制數(shù)碼作為一個整體來參加運(yùn)算或處理的單位。一個字通常由一個或多個字節(jié)構(gòu)成,用來存放一條指令或一個數(shù)據(jù)。3.1.1存儲原理存儲單元:表示一個數(shù)據(jù)的總長度稱為計算機(jī)的存儲單元。在計算機(jī)中,當(dāng)一個數(shù)據(jù)作為一個整體存入或取出時,這個數(shù)據(jù)存放在一個或幾個字節(jié)中組成一個存儲單元。存儲單元一般是字節(jié)的整數(shù)倍,常見的有8位、16位、32位、64位。32位的系統(tǒng)存放數(shù)據(jù)的形式是對每個數(shù)據(jù)用32個二進(jìn)制位來存放,64位的意思就是用64個二進(jìn)制位來存放,位數(shù)越多每次處理存儲的數(shù)據(jù)也就多地址:計算機(jī)中每個存儲單元都有一個編號,稱為地址,是以字節(jié)為單位進(jìn)行的。地址號與存儲單元是一一對應(yīng)的,CPU通過地址對存儲單元中的數(shù)據(jù)進(jìn)行訪問和操作。地址也是用二進(jìn)制編碼表示,為便于識別通常采用十六進(jìn)制。3.1.2存儲系統(tǒng)結(jié)構(gòu)雖然存儲介質(zhì)的物理結(jié)構(gòu)、存儲原理不盡相同,但是從數(shù)據(jù)存儲的邏輯層面來看,它們具有相似的邏輯結(jié)構(gòu),這也是電子數(shù)據(jù)取證能夠?qū)Σ煌橘|(zhì)上的數(shù)據(jù)進(jìn)行取證的基本原理。下面以電子數(shù)據(jù)取證中最常見的硬盤為例,介紹電子數(shù)據(jù)組織的知識。1.存儲的常識硬盤在存儲數(shù)據(jù)之前,一般需經(jīng)過低級格式化、分區(qū)、高級格式化三個步驟之后才能使用。硬盤經(jīng)過這三個步驟的處理,將建立一定的邏輯數(shù)據(jù)結(jié)構(gòu),如果是FAT文件系統(tǒng),一般會將硬盤分為5個區(qū)域,即主引導(dǎo)記錄區(qū)(MBR)、操作系統(tǒng)引導(dǎo)記錄區(qū)(DBR)、文件分配表區(qū)(FAT)、文件目錄表區(qū)(FDT)和數(shù)據(jù)區(qū)(DATA),以實(shí)現(xiàn)對數(shù)據(jù)的存儲和管理。高級格式化后,硬盤也并不是所有空間都能使用,由于數(shù)據(jù)不可能全部占滿空間,因此產(chǎn)生了松弛區(qū)和未分配空間。3.1.2存儲系統(tǒng)結(jié)構(gòu)(1)低級格式化硬盤低級格式化(LowLevelFormat)簡稱低格,也稱為物理格式化(PhysicalFormat),用于檢測硬盤磁介質(zhì)、劃分磁道、為每個磁道劃分扇區(qū)、安排扇區(qū)在磁道中的排列順序、硬盤表面測試、為每個扇區(qū)寫入某一ASCII碼字符等。(2)分區(qū)硬盤的容量比較大,為了便于硬盤的規(guī)劃和文件管理,通常需要進(jìn)行邏輯分區(qū)。通過分區(qū)不僅根據(jù)用戶需求將硬盤的存儲空間進(jìn)行了合理劃分,而且還在硬盤的0柱面、0磁頭、1扇區(qū)上建立硬盤的主引導(dǎo)記錄(MasterBootRecorder,MBR),即主引導(dǎo)扇區(qū)。(3)高級格式化高級格式化又被稱為邏輯格式化,是根據(jù)用戶選定的文件系統(tǒng)(如FAT12、FAT16、FAT32、NTFS、Ext2、Ext3等),在硬盤的特定區(qū)域?qū)懭胩囟〝?shù)據(jù),以達(dá)到初始化硬盤或硬盤分區(qū)、清除原硬盤或硬盤分區(qū)中所有文件的操作。3.1.2存儲系統(tǒng)結(jié)構(gòu)(4)文件松弛區(qū)(Slack)
硬盤存儲空間是以簇為單位分配的,如果文件的長度不是簇長度的整數(shù)倍,那么分配給文件的最后一簇中會有未被當(dāng)前文件占用的剩余空間,這部分空間叫文件松弛區(qū)(Slack)。文件松弛區(qū)中可能包含了先前文件遺留下來的信息,這部分信息可能是有用的證據(jù)。如下圖所示:(5)未分配空間(Allocatedspace)
沒有分配給任何卷的可用硬盤空間稱為未分配空間。這部分空間同樣會保存有重要數(shù)據(jù)。在犯罪嫌疑人重新格式化硬盤或者刪除分區(qū)之后,這些區(qū)域中還有留存有重要信息,通過特定技術(shù),可以還原出硬盤原有分區(qū)乃至所有未被覆蓋信息。3.1.2存儲系統(tǒng)結(jié)構(gòu)2.存儲結(jié)構(gòu)當(dāng)前主流的存儲結(jié)構(gòu)主要包括MBR硬盤分區(qū)、動態(tài)硬盤分區(qū)、GPT硬盤分區(qū)、Solaris硬盤分區(qū)、APM硬盤分區(qū)等。這里主要闡述最為常用的MBR硬盤分區(qū)、動態(tài)硬盤分區(qū)、GPT硬盤分區(qū)三種分區(qū)結(jié)構(gòu)。(1)MBR硬盤分區(qū)MBR硬盤分區(qū)是使用最為廣泛的一種分區(qū)結(jié)構(gòu),不僅應(yīng)用于微軟的操作系統(tǒng)平臺中的分區(qū)結(jié)構(gòu),而且Linux系統(tǒng)、基于x86架構(gòu)的UNIX系統(tǒng)都能夠支持MBR硬盤分區(qū)。MBR硬盤分區(qū)都有一個引導(dǎo)扇區(qū),被稱為主引導(dǎo)記錄(MainBootRecord,即MBR)。MBR位于整個硬盤的第一個扇區(qū),即0柱面0磁頭1扇區(qū),其LBA地址為0,共有512字節(jié)。3.1.2存儲系統(tǒng)結(jié)構(gòu)(2)動態(tài)硬盤分區(qū)
MBR硬盤分區(qū)是通過分區(qū)表項(xiàng)對分區(qū)進(jìn)行管理,由于分區(qū)表項(xiàng)中管理分區(qū)大小的參數(shù)是由4個字節(jié)組成的,所以能夠管理的分區(qū)最大為2048GB,也就是2TB。隨著硬盤容量的不斷增大,用戶對存儲空間的需求增大,2TB的分區(qū)限制已經(jīng)無法滿足用戶的需求,微軟提供的動態(tài)硬盤分區(qū)就很好地解決了這個問題。動態(tài)硬盤分區(qū)能夠?qū)崿F(xiàn)數(shù)據(jù)的容錯、高速的讀/寫操作、相對隨意的修改卷大小、跨越硬盤建立分區(qū)等操作。Windows的邏輯硬盤管理(LogicDiskManager,LDM)子系統(tǒng)負(fù)責(zé)管理動態(tài)硬盤,動態(tài)硬盤的結(jié)構(gòu)布局如下圖所示:3.1.2存儲系統(tǒng)結(jié)構(gòu)
動態(tài)硬盤的第一個扇區(qū)與MBR硬盤一樣,是一個MBR,MBR的分區(qū)表中有一項(xiàng)MS-DOS類型的分區(qū)表項(xiàng),在6號扇區(qū)是動態(tài)硬盤的私有頭,它是動態(tài)硬盤的重要結(jié)構(gòu),在LDM數(shù)據(jù)庫中還有兩個備份,私有頭的結(jié)構(gòu)如下表所示:字節(jié)偏移字段長度(字節(jié))字段名和定義字節(jié)偏移字段長度(字節(jié))字段名和定義00H8為固定值PRIVHEAD112H9總為零08H4校驗(yàn)和(本扇區(qū)所有字節(jié)之和)11BH8邏輯硬盤起始地址0CH2主版本號123H8邏輯硬盤大小0EH2次版本號12BH8LDM數(shù)據(jù)庫的起始地址10H4未知133H8LDM數(shù)據(jù)庫的大小14H4更新時間13BH8TOC數(shù)量3.1.2存儲系統(tǒng)結(jié)構(gòu)18H4總為零143H8TOC大小1CH4更新序列號14BH4配置信息數(shù)量20H8私有頭第一備份地址14FH4日志數(shù)量28H8私有頭第二備份地址153H8配置信息大小30H64硬盤ID15BH8日志大小70H64主機(jī)ID163H4硬盤簽名B0H64硬盤組ID167H16硬盤集GUIDF0H32硬盤組名177H16硬盤集GUID110H2未知
LDM軟分區(qū)區(qū)域用于給動態(tài)硬盤劃分軟分區(qū),LDM通過一個單獨(dú)的數(shù)據(jù)庫來存儲系統(tǒng)動態(tài)硬盤的分區(qū)信息,包括多分區(qū)卷的設(shè)置,LDM的數(shù)據(jù)庫保存在每個動態(tài)硬盤最后1MB的保留空間內(nèi),LDM數(shù)據(jù)庫結(jié)構(gòu)如下圖、表所示:3.1.2存儲系統(tǒng)結(jié)構(gòu)扇區(qū)地址扇區(qū)數(shù)結(jié)構(gòu)名稱01總為零11目錄表1(TOCBLOCK)21目錄表2(TOCBLOCK)171數(shù)據(jù)庫的配置信息(VMDB)181481數(shù)據(jù)庫的配置記錄(VBLK)1498224數(shù)據(jù)庫的日志記錄(KLOG)18561私有頭的第二個備份20451目錄表2的備份20461目錄表1的備份20471私有頭的第一個備份3.1.2存儲系統(tǒng)結(jié)構(gòu)(3)GPT硬盤分區(qū)GPT(GUIDPartitionTable,全局唯一標(biāo)識分區(qū)表)是解決MBR硬盤分區(qū)無法支持2TB以上容量問題的又一種硬盤分區(qū),是一種由基于Itanium計算機(jī)中的可擴(kuò)展固件接口(EFI*)使用的硬盤分區(qū)架構(gòu)。在MBR硬盤中,分區(qū)信息直接存儲于主引導(dǎo)記錄(MBR)中。如下圖所示,在GPT硬盤中,分區(qū)表的位置信息儲存在GPT中,但出于兼容性考慮,硬盤的第一個扇區(qū)仍然用作MBR,之后才是GPT,傳統(tǒng)MBR信息存儲于LBA0,GPT頭存儲于LBA1,接下來是GPT分區(qū)表,64位Windows操作系統(tǒng)使用16,384字節(jié)(或32扇區(qū))作為GPT分區(qū)表,每個分區(qū)表大小為128字節(jié),每個扇區(qū)存儲4個分區(qū)表。接下來的LBA34是硬盤上第一個分區(qū)的開始。為了減少分區(qū)表損壞的風(fēng)險,GPT在硬盤最后保存了一份GPT頭和分區(qū)表的副本。GPT頭和GPT頭備份分別位于硬盤的第二個扇區(qū)(即LBA1)以及硬盤的最后一個扇區(qū)(標(biāo)記為LBA-1)。3.1.2存儲系統(tǒng)結(jié)構(gòu)
在GPT硬盤上可以創(chuàng)建EFI系統(tǒng)分區(qū)(EFISystemPartition,ESP)、微軟保留分區(qū)(MicrosoftReservedPartition,MSR)、LDM元數(shù)據(jù)分區(qū)、LDM數(shù)據(jù)分區(qū)、OEM分區(qū)和主分區(qū)6種分區(qū),這6種分區(qū)在GPT硬盤上通常的排列順序是ESP(如果有)、OEM(如果有)、MSR、其他的分區(qū)。在將基本的GPT硬盤轉(zhuǎn)換為動態(tài)GPT硬盤時,系統(tǒng)會創(chuàng)建LDM元數(shù)據(jù)分區(qū)和LDM數(shù)據(jù)分區(qū),LDM元數(shù)據(jù)分區(qū)大小為1MB,用于存儲LDM數(shù)據(jù)庫,而LDM數(shù)據(jù)分區(qū)用于存儲轉(zhuǎn)換時創(chuàng)建的動態(tài)卷。OEM分區(qū)時系統(tǒng)制造商創(chuàng)建的分區(qū),系統(tǒng)制造商會將附加內(nèi)容放在特定的OEM分區(qū)中。主分區(qū)是GPT分區(qū)的基本數(shù)據(jù)分區(qū),用于存儲用戶數(shù)據(jù)。3.1.3存儲設(shè)備
電子數(shù)據(jù)的主要載體是機(jī)械硬盤、U盤、固態(tài)硬盤和光盤,以及新型的、形形色色的各種電存儲器,這些載體統(tǒng)稱為存儲介質(zhì)。1.機(jī)械硬盤(1)機(jī)械硬盤的物理結(jié)構(gòu)
機(jī)械硬盤由一個或幾個表面鍍有磁性物質(zhì)的金屬或玻璃等物質(zhì)盤片以及盤片兩面所安裝的磁頭和相應(yīng)的控制電路組成。
機(jī)械硬盤工作時,盤片以設(shè)計轉(zhuǎn)速高速旋轉(zhuǎn),設(shè)置在盤片表面的磁頭則在電路控制下徑向移動到指定位置??梢詫?shù)據(jù)“讀取”或者“寫入”。讀取數(shù)據(jù)時,盤片表面磁場使磁頭產(chǎn)生感應(yīng)電流或線圈阻抗產(chǎn)生變化,經(jīng)相關(guān)電路處理后還原成數(shù)據(jù);寫入數(shù)據(jù)時,磁頭電流產(chǎn)生磁場使盤片表面磁性物質(zhì)狀態(tài)發(fā)生改變,并在寫電流磁場消失后仍能保持,這樣數(shù)據(jù)就被存儲。
機(jī)械硬盤的尺寸主要為3.5英寸和2.5英寸,還有少部分為1.8英寸等其他尺寸。其中3.5英寸的機(jī)械硬盤主要用于臺式機(jī)和服務(wù)器中,2.5英寸和1.8英寸的機(jī)械硬盤主要用于筆記本和便攜式設(shè)備中。3.1.3存儲設(shè)備(2)機(jī)械硬盤的邏輯結(jié)構(gòu)
機(jī)械硬盤由多個盤片組成,每個盤片都有兩個面,這兩個面都可以用來存儲數(shù)據(jù),依次稱為0面、1面、2面……,每個盤片的每個面都有一個讀寫磁頭。按照機(jī)械硬盤的容量和規(guī)格不同,盤片數(shù)不同,面數(shù)也就不同。如果有N個盤片,就有2N個面,對應(yīng)2N個磁頭(Heads),從0、1、2開始編號。
由于機(jī)械硬盤在讀寫時是以電機(jī)主軸為軸高速旋轉(zhuǎn)的,則連續(xù)寫入的數(shù)據(jù)是排列在一個圓周上的,這個圓周稱為“磁道(Heads)”,讀寫磁頭可以沿著盤片半徑方向移動,所以每個盤片可以劃分成若干邏輯上的同心圓磁道[根據(jù)硬盤規(guī)格不同磁道數(shù)可以是幾百到數(shù)千不等,一個磁道上可以容納數(shù)量不等的數(shù)據(jù)。磁道是不可見的。];磁道又被劃分成若干段,每段稱為“扇區(qū)(Sector)”,一個扇區(qū)一般存放512字節(jié)的數(shù)據(jù),扇區(qū)從1開始,稱為1扇區(qū),2扇區(qū)……。這樣每個盤片同樣的磁道,邏輯上形成了一個以電機(jī)主軸為軸的“柱面(Cylinders)”,從外至里編號為0、1、2……。硬盤的物理容量就為:柱面(Cylinders)×磁頭(Heads)×扇區(qū)(Sector)×512KB。3.1.3存儲設(shè)備2.閃存
閃存(Flash存儲器)技術(shù)上屬于帶電可擦除可編程只讀存儲器(EEPROM)的一種。但與普通EEPROM在字節(jié)單位上進(jìn)行刪除和重寫操作的存儲原理不同,閃存的存儲以數(shù)據(jù)塊單位進(jìn)行。因此,閃存的優(yōu)勢在于寫入大量數(shù)據(jù)時的高速度。
1984年,日本人舛岡富士雄首先提出快速閃存存儲器的概念。1988年,Intel推出了第一款閃存芯片(NOR),存儲容量只有256Kbit,但它是早期可移除式快閃存儲介質(zhì)的基礎(chǔ)。1989年,日本東芝公司研制出第二代閃存,NAND閃存,與NOR閃存相比,具有更快的擦除時間,存儲單元面積更小,存儲密度更高,成本更低。隨著技術(shù)的不斷進(jìn)步,閃存存儲介質(zhì)主要有U盤、SD卡、XD卡、記憶棒等。
閃存存儲器在物理封裝方式上,TSOP48和BGA是最常見的兩種封裝方式。3.1.3存儲設(shè)備
TSOP又稱薄型小尺寸封裝,是在內(nèi)存芯片周圍做出GullWing形式引腳,采用表面安裝技術(shù)(SMT技術(shù))直接將芯片附著在PCB板上,具有引腳與外部通信,整個封裝體呈矩形,厚度在0.95-1.05mm范圍內(nèi),總高度不超過1.2mm,是一種使用金屬引線框架的封裝方式。TSOP48是TSOP封裝的一種,是指封裝引腳數(shù)為48的TSOP封裝方式,一般用于內(nèi)存或者U盤中。BGA又稱球柵陣列封裝,相比TSOP,封裝體積更?。ㄖ挥蠺SOP封裝的三分之一),具有更好的電性能和散熱性。BGA封裝的I/O端子以柱狀或圓形焊點(diǎn)按陣列形式分布在封裝體下面,I/O引腳數(shù)目增多,引腳間距離增大,封裝成功率提高。BGA是目前主流的閃存存儲的封裝方式,多用于內(nèi)存、顯存、固態(tài)硬盤和U盤中。3.1.3存儲設(shè)備(1)U盤
以U盤(全稱為USB閃存盤,UniversalSerialBusflashdisk)為例來簡要說明閃存存儲器的構(gòu)成。U盤是一種采用USB接口的移動存儲器,其存儲介質(zhì)為閃存,只需通過USB接口連接到計算機(jī)上就可以進(jìn)行讀寫操作,實(shí)現(xiàn)了即插即用。U盤的結(jié)構(gòu)很簡單,主要有外殼和機(jī)芯兩部分構(gòu)成。外殼的主要作用是保護(hù)內(nèi)部機(jī)芯不受損壞;機(jī)芯主要由PCB板、閃存、主控芯片、晶振、穩(wěn)壓IC等組成。(2)固態(tài)硬盤
在架構(gòu)上,固態(tài)硬盤(Solid-StateDrive,SSD)與傳統(tǒng)機(jī)械硬盤基本相似,只是將原來機(jī)械部分的馬達(dá)、碟片、磁頭換成了閃存顆粒。主控芯片、總線接口均保留了下來。固態(tài)硬盤相對傳統(tǒng)機(jī)械硬盤,改變的僅僅是存儲介質(zhì)。但是制造技術(shù)門檻大大降低,固態(tài)硬盤出現(xiàn)了大量廠商。主流固態(tài)硬盤廠商有:Intel,Samsung、Toshiba、OCZ等。目前主流的固態(tài)硬盤的讀寫速度超過500MB/s,性能遠(yuǎn)遠(yuǎn)超過機(jī)械硬盤。3.1.3存儲設(shè)備3.存儲設(shè)備指標(biāo)
在電子數(shù)據(jù)取證過程中取證人員不僅要了解存儲介質(zhì)的結(jié)構(gòu)和存儲原理,還需要了解存儲介質(zhì)的主要技術(shù)指標(biāo)。電子數(shù)據(jù)取證涉及的存儲設(shè)備的指標(biāo)有:存儲容量、數(shù)據(jù)傳輸率和接口。(1)存儲容量
存儲容量是存儲介質(zhì)中可以容納二進(jìn)制信息的總量,即。(2)數(shù)據(jù)傳輸率
數(shù)據(jù)傳輸率是指單位時間內(nèi)存儲器所存取的信息量,度量單位通常為位(bit)/秒或字節(jié)(Byte)/秒,是衡量電子數(shù)據(jù)取證效率的重要技術(shù)指標(biāo)。3.2文件系統(tǒng)編碼3.2.1
文件系統(tǒng)②FAT16文件系統(tǒng)
Fat16文件系統(tǒng)是伴隨DOS3.0推出的,采用了16位長度的FAT項(xiàng),最多可以管理4GB的分區(qū)。由于FAT16分區(qū)對大容量硬盤利用效率低、不支持4GB以上分區(qū)等原因,現(xiàn)在應(yīng)用范圍越來越小。③FAT32文件系統(tǒng)
FAT32文件系統(tǒng)是從Windows95開始推出的,采用了32位長度的FAT表,硬盤的管理能力大大增強(qiáng),能夠支持從32MB到32GB的分區(qū)管理,提高了硬盤的利用率,但是由于FAT表變長,運(yùn)行速度較FAT16要慢很多,而且不支持大于4GB的單個文件,現(xiàn)在主要應(yīng)用于存儲卡、U盤或WindowsXP系統(tǒng)盤等。3.2.1
文件系統(tǒng)2)FAT文件系統(tǒng)結(jié)構(gòu)
FAT文件系統(tǒng)由DBR區(qū)、FAT區(qū)、FDT區(qū)和DATA區(qū)4個區(qū)域組成。計算機(jī)系統(tǒng)啟動后,由MBR引導(dǎo)調(diào)入活動分區(qū)的DBR,控制權(quán)移交給DBR,再由DBR來引導(dǎo)操作系統(tǒng)。通過讀取DBR扇區(qū)內(nèi)的“保留扇區(qū)數(shù)”和“每FAT扇區(qū)數(shù)”,系統(tǒng)可以定位到文件目錄表FDT區(qū)。FAT表對于FAT文件系統(tǒng)是極為關(guān)鍵的一個組成部分,DATA區(qū)中的數(shù)據(jù)文件都是以簇為單位進(jìn)行存儲的,每一個簇都會與FAT表中的有且僅有一個FAT項(xiàng)相對應(yīng)。文件系統(tǒng)寫入數(shù)據(jù)時只是改寫相應(yīng)的FAT區(qū)、FDT區(qū)和DATA區(qū)。各區(qū)域數(shù)據(jù)結(jié)構(gòu)如下圖所示:3.2.1
文件系統(tǒng)3.2.1
文件系統(tǒng)①DBR區(qū)
引導(dǎo)記錄區(qū)(DOSBootRecord),開始于硬盤0柱面1磁頭1扇區(qū),是操作系統(tǒng)可以直接訪問的第一個扇區(qū)。DBR的主要功能是:在DOS/Windows操作系統(tǒng)進(jìn)行引導(dǎo)時,DBR是除硬盤的MBR之外第一個需裝載的程序段。DBR被引導(dǎo)調(diào)入內(nèi)存后,便開始執(zhí)行引導(dǎo)程序段,引導(dǎo)操作系統(tǒng),其主要任務(wù)是裝載DOS的系統(tǒng)隱藏文件IO.SYS。3.2.1
文件系統(tǒng)②FAT區(qū)
文件分配表(FileAllocationTable),是文件系統(tǒng)用來給每個文件分配硬盤物理空間的表格,其中記錄著數(shù)據(jù)區(qū)中每個數(shù)據(jù)文件對應(yīng)的簇,以及每個簇的當(dāng)前使用狀態(tài)。FAT文件系統(tǒng)一般都有兩個FAT表:FAT1是基本FAT表,F(xiàn)AT2是備份FAT表。兩個表都由格式化程序在對分區(qū)進(jìn)行格式化時創(chuàng)建,長度和內(nèi)容相同,F(xiàn)AT1緊接著DBR之后存放,F(xiàn)AT2跟在FAT1之后。
文件分配表(FAT)由表頭和簇映射(ClusterMap)組成。FAT表的表頭包含緊跟在引導(dǎo)扇區(qū)之后的兩個項(xiàng):分區(qū)所在的介質(zhì)類型和分區(qū)狀態(tài)。在FAT表頭之后的是簇映射。簇映射由FAT表項(xiàng)構(gòu)成,每個FAT表項(xiàng)都與數(shù)據(jù)區(qū)中的簇一一對應(yīng),分區(qū)上每一個可用的簇在FAT中都有且僅有一個FAT表項(xiàng)與之相對應(yīng)。FAT表項(xiàng)值用于標(biāo)記該簇的使用狀態(tài),其中記錄簇的使用狀態(tài)包括Unallocated(未分配簇),Allocated(已分配簇),以及Bad(壞簇)。各個簇描狀態(tài)具體說明如下:3.2.1
文件系統(tǒng)
未分配簇:是指該簇可以用于存儲數(shù)據(jù)。當(dāng)一個文件被刪除時,文件系統(tǒng)就會更新刪除文件所對應(yīng)簇的FAT表項(xiàng)值來聲明該文件對應(yīng)的所有簇都是可用的,直到有新的文件寫入硬盤并占用那些簇,否則那里的數(shù)據(jù)仍然是存在的,可以對其進(jìn)行數(shù)據(jù)恢復(fù)。
已分配簇:是指該簇當(dāng)前被占用,正存儲著數(shù)據(jù)。當(dāng)一個文件占用多個簇時,這些簇的簇號不一定是連續(xù)的,但這些簇號會形成一個有確定順序的簇號鏈存儲在簇映射中,借此可以找到文件下一個簇在硬盤中的物理位置。3.2.1
文件系統(tǒng)
壞簇:是指該簇中包含一個或多個壞扇區(qū),系統(tǒng)不會將之分配給用戶文件。在格式化過程中,損壞的簇可以由Format命令發(fā)現(xiàn)并記錄在相應(yīng)的FAT表項(xiàng)中。一個簇中只要有一個扇區(qū)損壞,該簇就不能使用,但十六進(jìn)制編輯器或取證工具仍有可能對這些扇區(qū)進(jìn)行瀏覽和讀取。有時壞簇也作為用戶故意進(jìn)行數(shù)據(jù)隱藏的一種手段,通過將部分扇區(qū)標(biāo)記為壞扇區(qū),使操作系統(tǒng)無法正常讀取,達(dá)到特定目的。3.2.1
文件系統(tǒng)
EOF:是指該簇是一個文件項(xiàng)的結(jié)束。
當(dāng)一個文件較大,占用了多個簇的空間,這些簇的空間又不是連續(xù)的,這時就會形成硬盤碎片(Fragmentation),使用工具進(jìn)行碎片整理就是合并這些碎片數(shù)據(jù)以使某些文件的大部分簇保持連續(xù)的過程。碎片整理對于電子數(shù)據(jù)取證工作會產(chǎn)生一定影響,其對取證分析有利的可能是,即使原文件在新的位置已經(jīng)被擦除了,但一些被合并的簇中的數(shù)據(jù)可能在一段時間內(nèi)不會被覆蓋,為數(shù)據(jù)恢復(fù)提供了可能,但其弊端是驅(qū)動器開頭部分的簇有可能會被擦除得很干凈。3.2.1
文件系統(tǒng)③FDT區(qū)
文件目錄表(FileDirectoryTable),位置緊跟在FAT2之后,用于存儲目錄名稱以及操作系統(tǒng)使用的文件的有關(guān)信息。在FAT文件系統(tǒng)的FDT表中會為每個文件和文件夾分配一個文件目錄項(xiàng),用以記錄文件或文件夾的名稱、屬性、大小、起始簇號、創(chuàng)建時間(CreatedTime)、創(chuàng)建日期、訪問日期、修改日期、最近修改時間(ModifiedTime)等內(nèi)容。3.2.1
文件系統(tǒng)
在電子數(shù)據(jù)取證分析中,文件創(chuàng)建、訪問、修改的日期和時間都有可能是重要信息,盡管有些信息可能通過使用程序或改變系統(tǒng)時間被有意或無意地進(jìn)行修改,但FDT中的信息經(jīng)常會在調(diào)查中發(fā)揮重要作用,修改時間(ModifiedTime)是文件被修改的時間;訪問時間(AccessedTime)是應(yīng)用程序引用該文件的時間;但是并不是所有應(yīng)用程序都一定會更新訪問時間(AccessedTime),例如備份程序讀取這些文件時就不會更新訪問時間(AccessedTime);創(chuàng)建時間(CreatedTime)是指文件首次被寫入FDT中的時間。3.2.1
文件系統(tǒng)④DATA區(qū)
數(shù)據(jù)區(qū)(DATA),是FAT文件系統(tǒng)的主要區(qū)域,用于實(shí)際存儲文件數(shù)據(jù),以“簇”為單位進(jìn)行管理。FAT32文件系統(tǒng)DATA區(qū)的內(nèi)容主要包含三部分內(nèi)容:根目錄、子目錄和文件內(nèi)容,以“樹”形結(jié)構(gòu)存儲數(shù)據(jù),DATA區(qū)存儲數(shù)據(jù)是取證的主要對象。每個文件系統(tǒng)(FAT、NTFS等)都會記錄如下內(nèi)容:
對象(文件/文件夾)的基本屬性,包括名稱、日期、時間、長度等。
對象的起始位置,即起始簇。
對象的數(shù)據(jù)片段(不連續(xù)的簇)。
邏輯卷上所有簇的狀態(tài)。3.2.1
文件系統(tǒng)2.NTFS文件系統(tǒng)
TFS是新技術(shù)文件系統(tǒng)(NewTechnologyFileSystem)的簡稱,是隨著WindowsNT操作系統(tǒng)的誕生而產(chǎn)生的文件系統(tǒng)。NTFS是一個建立在保護(hù)文件和目錄數(shù)據(jù)基礎(chǔ)上,同時兼顧節(jié)省存儲資源、減少硬盤占用量的一種先進(jìn)的文件系統(tǒng)。NTFS是目前主流的文件系統(tǒng)。(1)NTFS文件系統(tǒng)的特點(diǎn)
NTFS文件系統(tǒng)之所以能夠取代老式的FAT文件系統(tǒng),是因?yàn)橄噍^于FAT,NTFS具有許多新的特性和優(yōu)點(diǎn),在安全性、可恢復(fù)性、容錯性、文件壓縮和硬盤配額等方面都較為出色。NTFS基于可恢復(fù)文件結(jié)構(gòu)而設(shè)計,能有效降低用戶數(shù)據(jù)文件丟失或毀壞的風(fēng)險;提供容錯結(jié)構(gòu)日志,通過全部記錄用戶的操作來保護(hù)系統(tǒng)的安全;使用中不易產(chǎn)生文件碎片,有效節(jié)約硬盤占用;利用B+樹文件管理方法來跟蹤文件在硬盤上的位置,相較于在FAT文件系統(tǒng)中使用的鏈表技術(shù)具備更多的優(yōu)越性,B+樹排序方法如下圖所示:3.2.1
文件系統(tǒng)
在NTFS文件系統(tǒng)中,使用“卷”(Volume)來表示一個邏輯硬盤,卷可以是一個基本分區(qū),一個擴(kuò)展分區(qū)中的邏輯硬盤,或者是一個被視為非DOS分區(qū)的硬盤上的一部分空間,一個卷也可以是被操作系統(tǒng)指定為一個邏輯驅(qū)動器的硬盤空間,它甚至可以不是一個硬盤上的相鄰空間。NTFS支持大容量硬盤和在多個硬盤上存儲文件,基于NTFS的大型數(shù)據(jù)庫可能會跨越不同的硬盤。NTFS文件系統(tǒng)與FAT文件系統(tǒng)一樣,也是以簇為基本單位管理硬盤空間和文件存儲的,一個文件總是占用若干個簇,即使在最后一個簇沒有完全用完的情況下,也是占用了整個簇的空間,這樣造成了硬盤空間的浪費(fèi),但是也為殘留數(shù)據(jù)的恢復(fù)提供了可能。與其他文件系統(tǒng)一樣,NTFS文件系統(tǒng)也記錄以下內(nèi)容:
3.2.1
文件系統(tǒng)①對象(文件/文件夾)的基本屬性,包括名稱、日期時間信息、大小、屬性等。②對象的起始位置,即起始簇。③對象的數(shù)據(jù)片段(不連續(xù)的簇)。④邏輯卷上所有簇的狀態(tài)。
NTFS和FAT文件系統(tǒng)記錄這些數(shù)據(jù)的方法不同,NTFS的原則是硬盤上只有文件,所有存儲在卷上的數(shù)據(jù)都包含在文件中。NTFS文件系統(tǒng)將文件作為屬性/屬性值的集合來處理,文件的數(shù)據(jù)部分作為未命名屬性的值,其他文件屬性包括文件名、文件擁有者和時間標(biāo)記等。3.2.1
文件系統(tǒng)(2)NTFS文件系統(tǒng)結(jié)構(gòu)
NTFS文件系統(tǒng)結(jié)構(gòu)如下圖所示:NTFS文件系統(tǒng)和FAT文件系統(tǒng)一樣,第一個扇區(qū)為引導(dǎo)扇區(qū),即DBR扇區(qū),其中有NTFS分區(qū)的引導(dǎo)程序和一些BPB參數(shù),在第一個扇區(qū)之后的15個扇區(qū)是NTLDR區(qū)域,這16個扇區(qū)共同構(gòu)成$Boot文件。在NTLDR后(但不一定是物理上相連的)是主文件表(MasterFileTable,MFT)區(qū)域,主文件表由文件記錄(FileRecord,F(xiàn)R)構(gòu)成,每個文件記錄占2個扇區(qū),用來記錄文件在硬盤上的存儲位置,NTFS文件系統(tǒng)分配給主文件表的區(qū)域大約占據(jù)了硬盤空間的12.5%,剩余的硬盤空間用來存放其他元文件和用戶的文件。
3.2.1
文件系統(tǒng)NTFS文件系統(tǒng)中文件的文件名、擴(kuò)展名、建立時間(CreatedTime)、訪問時間(AccessedTime)、修改時間(ModifiedTime)、文件屬性、文件大小、文件在硬盤中所占用的簇等信息被稱為屬性,包括文件內(nèi)容在NTFS中也稱為屬性,各種屬性被放在文件記錄中進(jìn)行管理,如果一個屬性太大,文件記錄中存放不下時,就會分配多個文件記錄進(jìn)行存放,而如果一個屬性太小時,可能這個文件的所有屬性,甚至包括這個文件的數(shù)據(jù)都會包含在一個文件記錄中。3.2.1
文件系統(tǒng)
NTFS文件系統(tǒng)的主文件表中還記錄了一些非常重要的系統(tǒng)數(shù)據(jù),這些數(shù)據(jù)被稱為元數(shù)據(jù)(metadata)文件,簡稱為“元文件”,其中包括了用于文件定位和恢復(fù)的數(shù)據(jù)結(jié)構(gòu)、引導(dǎo)程序數(shù)據(jù)及整個卷的分配位圖等信息,這些數(shù)據(jù)被NTFS文件系統(tǒng)當(dāng)做文件進(jìn)行管理,這些文件的文件名的第一個字符都是“$”,這些文件是隱藏的,不允許用戶訪問。在NTFS文件系統(tǒng)中,這樣的文件主要有16個,包括引導(dǎo)文件($Boot)、MFT本身($Mft)、MFT鏡像($MftMirr)、日志文件($LogFile)、卷文件($Volume)、屬性定義表($AttrDef)、根目錄($Root)、位圖文件($Bitmap)、壞簇文件($BadClus)、安全文件($Secure)、大寫文件($UpCase)、擴(kuò)展元數(shù)據(jù)文件($Extendedmetadatadirectory)、重解析點(diǎn)文件($Extend\$Reparse)、變更日志文件($Extend\$UsnJrnl)、配額管理文件($Extend\$Quota)、對象ID文件($Extend\$ObjId)等,這16個元數(shù)據(jù)文件占據(jù)著MFT的前16項(xiàng)記錄,在這16項(xiàng)之后就是用戶建立的文件和文件夾的記錄了。除了$Boot文件以外,其他元文件的位置不是固定的,有時$Mft也會出現(xiàn)在$MftMirr文件之后,雖然NTFS文件系統(tǒng)最后一個扇區(qū)是DBR的備份,但是這個扇區(qū)并不屬于NTFS文件系統(tǒng)。3.2.1
文件系統(tǒng)(3)NTFS文件記錄結(jié)構(gòu)
MFT以文件記錄(FR)來實(shí)現(xiàn)對文件的管理,每個文件記錄都對應(yīng)著不同的文件,每個文件記錄占用2個扇區(qū),如果一個文件有多個屬性或是分散成很多碎片,就可能需要多個文件記錄,這時存放其文件記錄位置的第一個記錄就稱做“基本文件記錄”,文件記錄在MFT中物理上是連續(xù)的,從0開始依次按順序編號。文件記錄分為兩部分:一部分是文件記錄頭,一部分是屬性列表,最后以FFFFFFFFH為結(jié)束標(biāo)志,文件記錄結(jié)構(gòu)如下圖所示:3.2.1
文件系統(tǒng)①文件記錄頭的結(jié)構(gòu)在同一個操作系統(tǒng)中,文件記錄頭的長度和偏移位置的數(shù)據(jù)含義是基本不變的,屬性列會隨數(shù)據(jù)的不同而不同,不同的屬性列的含義也不相同。如下圖所示,偏移量00H~37H是一個文件記錄頭,文件記錄頭的信息含義如下表所示。偏移長度含義00H4MFT標(biāo)志,總為字符串“FILE”04H2更新序列號(UpdateSequenceNumber)的偏移位置06H2更新序列號的大小與數(shù)組,包括第一個字節(jié)3.2.1
文件系統(tǒng)08H8日志文件序列號($LogFileSequenceNumber,LSN)10H2序列號(SequenceNumber)12H2硬連接數(shù)(HardLinkCount),即有多少目錄指向該文件14H2第一個屬性的偏移地址16H2標(biāo)志(Flag),00H表示刪除文件,01H表示正常文件,02H表示刪除目錄,03H表示正常目錄18H4文件記錄的實(shí)際長度1CH4文件記錄的分配長度20H8基本文件記錄中的文件索引號28H2下一屬性ID,當(dāng)增加新的屬性時,將該值分配給新屬性,然后該值增加,如果MFT記錄重新使用,則將它置為0,第一個實(shí)例總是02AH2邊界,WindowsXP中為偏移30H處2CH4文件記錄參考號,WindowsXP中使用,Windows2000中無此參數(shù)30H2更新序列號32H4更新數(shù)組3.2.1
文件系統(tǒng)②文件記錄中的屬性結(jié)構(gòu)
在NTFS文件系統(tǒng)中所有與文件相關(guān)的數(shù)據(jù)均被認(rèn)為是屬性,包括文件的內(nèi)容,文件記錄是一個與文件相對應(yīng)的文件屬性數(shù)據(jù)庫,記錄了文件數(shù)據(jù)的所有屬性。每個文件記錄中都有多個屬性,它們相對獨(dú)立,有著各自的類型和含義,每個屬性的偏移00H~03H為該屬性的類型標(biāo)志,屬性類型及含義如下表所示。屬性類型屬性類型名屬性描述10000000$STANDARD_INFORMATION標(biāo)準(zhǔn)信息,包括只讀、系統(tǒng)、存檔等基本文件屬性和創(chuàng)建時間、最后修改時間等時間屬性,以及多少目錄指向該文件20000000$ATTRIBUTE_LIST屬性列表,當(dāng)一個文件需要多個文件記錄時,用來描述文件的屬性列表30000000$FILE_NAME文件名,用Unicode字符表示的文件名,由于MS-DOS不能識別長文件名,因此NTFS文件系統(tǒng)會自動生成一個8.3文件名40000000$VOLUME_VERSION早期NTFSv1.2中的卷版本40000000$OBJECT_ID對象ID,具有64字節(jié)的標(biāo)識符,其中最低位的16字節(jié)對卷來說是唯一的50000000$SECURITY_DESCRIPTOR安全描述符,為向后兼容而保留的,用于保護(hù)文件以防止未授權(quán)的訪問,該屬性在Windows2000/XP中已存放在$Secure元數(shù)據(jù)中3.2.1
文件系統(tǒng)60000000$VOLUME_NAME卷名,即卷標(biāo)識,該屬性僅存在于$Volume元文件中70000000$VOLUME_INFORMATION卷信息,該屬性僅存在于$Volume元文件中80000000$DATA文件數(shù)據(jù),即文件的數(shù)據(jù)內(nèi)容90000000$INDEX_ROOT索引根A0000000$INDEX_ALLOCATION索引分配B0000000$BITMAP位圖C0000000$SYMBOLIC_LINK早期NTFSv1.2中為符號鏈接C0000000$REPARSE_POINT重解析點(diǎn)D0000000$EA_INFORMATION擴(kuò)充屬性信息E0000000$EA擴(kuò)充屬性F0000000$PROPERTY_SET早期NTFSv1.2中才有00100000$LOGGED_UTILITY_STREAMEFS加密屬性,該屬性用于存儲實(shí)現(xiàn)EFS加密的有關(guān)加密信息,如合法用戶列表、解碼密鑰等3.2.1
文件系統(tǒng)
每個屬性都可以分為屬性頭和屬性體兩部分。如果一個文件很小,其所有屬性都可以存放在MFT的文件記錄中,那么該屬性就稱為常駐屬性(ResidentAttribute);如果一個屬性的屬性體太大而不能存放在1KB大小的MFT文件記錄中,那么文件系統(tǒng)將從MFT之外為其分配區(qū)域,這些區(qū)域稱為數(shù)據(jù)流(DataRun),這樣的屬性就稱為非常駐屬性(NonresidentAttribute)。一個屬性根據(jù)其是否常駐和是否有屬性名,可以出現(xiàn)四種不同的情況,即常駐沒有屬性名的屬性頭、常駐有屬性名的屬性頭、非常駐沒有屬性名的屬性頭、非常駐有屬性名的屬性頭,這四種屬性頭的結(jié)構(gòu)有一定差別,由于篇幅限制,這里就不做分別介紹了。3.2.1
文件系統(tǒng)3.exFAT
exFAT全稱為ExtendedFileAllocationTableFileSystem,即擴(kuò)展文件分配表,是微軟在WindowsEmbeded6.0(包括WindowsCE5.0、6.0,WindowsMobile5、6、6.1)中引入的一種適合于閃存(如U盤、存儲卡等)的文件系統(tǒng),是基于FAT文件系統(tǒng)能夠管理的空間有限、NTFS文件系統(tǒng)對閃存介質(zhì)芯片損耗較大的原因而推出的。(1)exFAT文件系統(tǒng)的特點(diǎn)與FAT文件系統(tǒng)對比,exFAT主要有如下特點(diǎn):3.2.1
文件系統(tǒng)◆支持的單文件大小理論上最大可達(dá)16EB(16×1024×1024TB);◆支持的簇最大為32MB;◆支持訪問控制列表(AccessControlLists);◆采用了剩余空間分配表,剩余空間分配性能改進(jìn);◆同一目錄下最大文件數(shù)可達(dá)65536個;◆支持Transaction-SafeFAT文件系統(tǒng)(TFAT),即安全FAT文件系統(tǒng);◆提供給OEM的可定義參數(shù)可以使這個文件系統(tǒng)適應(yīng)有不同特點(diǎn)的設(shè)備;◆時間戳能夠使用通用協(xié)調(diào)時間UTC;◆增強(qiáng)了臺式計算機(jī)與移動設(shè)備的互相兼容性;◆降低了硬盤空間文件系統(tǒng)的開銷。測試發(fā)現(xiàn),4GB的閃存驅(qū)動器格式化為NTFS,文件系統(tǒng)開銷為47.2MB,而使用exFAT僅為96KB。3.2.1
文件系統(tǒng)(2)exFAT文件系統(tǒng)結(jié)構(gòu)exFAT文件系統(tǒng)由DBR及保留扇區(qū)、FAT、簇位圖文件、大寫字符文件、用戶數(shù)據(jù)區(qū)等5部分組成,其結(jié)構(gòu)如下圖所示。①DBR及其保留扇區(qū):操作系統(tǒng)引導(dǎo)記錄,與FAT文件系統(tǒng)相似。在DBR之后往往有一些保留扇區(qū),其中12號扇區(qū)為DBR的備份;②FAT:文件分配表,與FAT文件系統(tǒng)相同;③簇位圖文件:exFAT文件系統(tǒng)中的一個元文件,類似于NTFS文件系統(tǒng)中的元文件$Bitmap,用來管理分區(qū)中簇的使用情況;④大寫字符文件:exFAT文件系統(tǒng)中的第二個元文件,類似于NTFS文件系統(tǒng)中的元文件$UpCase,Unicode字母表中每一個字符在這個文件中都有一個對應(yīng)的條目,用于比較、排序、計算Hash等方面,該文件大小固定為5836字節(jié)。⑤用戶數(shù)據(jù)區(qū):exFAT文件系統(tǒng)的主要區(qū)域,用來存放用戶的文件及目錄。3.2.1
文件系統(tǒng)4.HFS/HFS+
蘋果操作系統(tǒng)主要采用的文件系統(tǒng)包括HFS/HFS+兩種格式。早期的Apple計算機(jī)使用MFS文件系統(tǒng)。1985年,蘋果公司發(fā)布了HFS文件系統(tǒng),取代了MFS文件系統(tǒng),但是HFS文件系統(tǒng)的結(jié)構(gòu)和數(shù)據(jù)管理方式存在很多不足,1998年,蘋果公司又發(fā)布了HFS+文件系統(tǒng),針對HFS文件系統(tǒng)的一些不足做出了改進(jìn)。因此,HFS+文件系統(tǒng)是目前蘋果操作系統(tǒng)默認(rèn)最常用的文件系統(tǒng)。本部分主要講解HFS+文件系統(tǒng)的結(jié)構(gòu)、特點(diǎn)以及文件刪除原理。
HFS+文件系統(tǒng)的結(jié)構(gòu)
HFS+文件系統(tǒng)把“卷”稱為“宗卷”,HFS+卷有5種特殊的文件,被稱為“元文件”,用來保存文件系統(tǒng)結(jié)構(gòu)的數(shù)據(jù)性數(shù)據(jù)和屬性,它們分別是編錄文件(CatalogFile)、盤區(qū)溢出文件(ExtentsOverflowFile)、分配文件(AllocationFile)、屬性文件(AttributesFile)和啟動文件(StartupFile),這些特殊文件只有數(shù)據(jù)分支,沒有資源分支,起始地址和大小都在卷頭中加以描述,HFS+文件系統(tǒng)的結(jié)構(gòu)如下圖所示:3.2.1
文件系統(tǒng)(1)卷頭
HFS+宗卷的前兩個扇區(qū)是保留不用的,一般為空扇區(qū),沒有任何數(shù)據(jù),但這兩個保留不用的扇區(qū)所在的塊在分配文件內(nèi)會被標(biāo)記為“已使用”。每個HFS+都必須有一個卷頭,卷頭通常位于第三個扇區(qū),也就是2號扇區(qū),卷頭內(nèi)存儲著各種與宗卷相關(guān)的信息,如建立的時間、大小等,在宗卷的倒數(shù)第二個扇區(qū)有一個卷頭的備份。宗卷的前兩個扇區(qū)和最后一個扇區(qū)都保留不用。(2)編錄文件(CatalogFile)
編錄文件存儲著宗卷內(nèi)所有文件和目錄的重要信息,采用B-樹結(jié)構(gòu)對數(shù)據(jù)進(jìn)行組織。HFS+文件系統(tǒng)利用編錄文件中的信息來維系宗卷內(nèi)的文件和目錄的層次關(guān)系。(3)盤區(qū)溢出文件(ExtentsOverflowFile)
HFS+存儲數(shù)據(jù)的基本單位為“塊”,“盤區(qū)”是一系列連續(xù)的分配塊,如果文件不是連續(xù)存放的,就會有多個盤區(qū)。對于一個用戶文件,前8個盤區(qū)的信息保存在宗卷的編錄文件中,如果多于8個,那么從第9個盤區(qū)開始往后的盤區(qū)信息需要保存在盤區(qū)溢出文件中。3.2.1
文件系統(tǒng)(4)分配文件(AllocationFile)
分配文件用來描述一個分配塊是否已經(jīng)分配給文件系統(tǒng)使用。相當(dāng)于一個位圖文件,每個位都與宗卷內(nèi)的一個塊相對應(yīng)。(5)屬性文件(AttributesFile)
屬性文件是用來保存文件或目錄的信息的文件,結(jié)構(gòu)和編錄文件一樣,采用B-tree結(jié)構(gòu)。另外,屬性文件的節(jié)點(diǎn)大小最小為4KB。(6)啟動文件(StartupFile)
啟動文件是一個特殊文件,作用是從HFS+卷上啟動非MacOS。(7)壞塊文件
壞塊文件是用來記錄硬盤上有缺陷或不能正常存儲數(shù)據(jù)的塊的重要文件,可以避免文件系統(tǒng)對硬盤缺陷塊進(jìn)行分配。壞塊文件既不屬于用戶文件,也不屬于元文件,在文件系統(tǒng)的卷頭中沒有對其進(jìn)行描述,卷頭和編錄文件中都找不到壞塊文件的信息。3.2.1
文件系統(tǒng)HFS+文件系統(tǒng)的特點(diǎn)
HFS+文件系統(tǒng)的特點(diǎn)主要體現(xiàn)在以下幾個方面:
(1)Mac系統(tǒng)把硬盤空間劃分為一個個大小為512字節(jié)的邏輯塊(LogicBlock),邏輯塊其實(shí)就是扇區(qū)。所有扇區(qū)從0開始編號,直到硬盤的最大扇區(qū)數(shù)減1。
(2)文件系統(tǒng)中文件的分配單元不是扇區(qū),而是“分配塊”(AllocationBlock),一個分配塊占用一組連續(xù)的扇區(qū)。分配塊就相當(dāng)于FAT、NTFS文件系統(tǒng)中的簇,只是工作環(huán)境與名稱不同而已。每個分配塊的大小為2N扇區(qū)。因?yàn)镠FS+用32位記錄分配塊的數(shù)量,所以一個宗卷中最多可以管理232個分配塊。一般情況下,分配塊的大小為4KB,這是最優(yōu)化的分配塊大小。
(3)所有的文件結(jié)構(gòu),包括卷頭,都包含在一個或者幾個分配塊中。用每分配塊的大小字節(jié)數(shù)除以512字節(jié)所得到的每分配塊大小扇區(qū)數(shù),直接乘以分配塊號就能得到一個分配塊的第一個扇區(qū)所在位置。3.2.1
文件系統(tǒng)HFS+文件系統(tǒng)的特點(diǎn)HFS+文件系統(tǒng)的特點(diǎn)主要體現(xiàn)在以下幾個方面:(1)Mac系統(tǒng)把硬盤空間劃分為一個個大小為512字節(jié)的邏輯塊(LogicBlock),邏輯塊其實(shí)就是扇區(qū)。所有扇區(qū)從0開始編號,直到硬盤的最大扇區(qū)數(shù)減1。(2)文件系統(tǒng)中文件的分配單元不是扇區(qū),而是“分配塊”(AllocationBlock),一個分配塊占用一組連續(xù)的扇區(qū)。分配塊就相當(dāng)于FAT、NTFS文件系統(tǒng)中的簇,只是工作環(huán)境與名稱不同而已。每個分配塊的大小為2N扇區(qū)。因?yàn)镠FS+用32位記錄分配塊的數(shù)量,所以一個宗卷中最多可以管理232個分配塊。一般情況下,分配塊的大小為4KB,這是最優(yōu)化的分配塊大小。
3.2.1
文件系統(tǒng)(3)所有的文件結(jié)構(gòu),包括卷頭,都包含在一個或者幾個分配塊中。用每分配塊的大小字節(jié)數(shù)除以512字節(jié)所得到的每分配塊大小扇區(qū)數(shù),直接乘以分配塊號就能得到一個分配塊的第一個扇區(qū)所在位置。(4)為了減少文件碎片的產(chǎn)生,HFS+在為文件分配存儲空間的時候,會盡可能地為其分配一組連續(xù)的分配塊或塊組。塊組的大小通常為分配塊大小的整數(shù)倍,這個值在卷頭中說明。(5)對于非連續(xù)存儲的文件,Mac采用“下一可用分配策略”為其分配存儲空間。即當(dāng)Mac系統(tǒng)接收到文件空間分配請求時,如果首先找到的空閑空間無法滿足請求的空間大小,則繼續(xù)從下一個找到的空閑塊開始繼續(xù)分配,如果這次找到的連續(xù)空閑空間足夠大,則根據(jù)請求空間的大小分配“塊組”大小的整倍數(shù)空間給這個文件。HFS+文件系統(tǒng)的文件刪除與恢復(fù)原理3.2.1
文件系統(tǒng)HFS+文件系統(tǒng)文件管理方式HFS+文件系統(tǒng)對文件的管理結(jié)構(gòu)如下圖所示。3.2.1
文件系統(tǒng)HFS+文件系統(tǒng)中的卷頭描述了編錄文件的存放地址,編錄文件管理著用戶數(shù)據(jù)的大部分信息。編錄文件采用B-樹結(jié)構(gòu)組織數(shù)據(jù),B-樹的第一個節(jié)點(diǎn)稱為頭節(jié)點(diǎn),頭節(jié)點(diǎn)中會描述節(jié)點(diǎn)的大小及根節(jié)點(diǎn)的節(jié)點(diǎn)號等信息,通過頭節(jié)點(diǎn)就可以定位到根節(jié)點(diǎn)。根節(jié)點(diǎn)一般是索引節(jié)點(diǎn),用指針記錄的形式描述B-樹中各個關(guān)鍵詞的分布情況,利用這種描述關(guān)系可以找到需要的關(guān)鍵詞所在的節(jié)點(diǎn)號,這個節(jié)點(diǎn)屬于葉節(jié)點(diǎn),由數(shù)據(jù)記錄組成,包括文件夾記錄、文件記錄、文件夾鏈接記錄、文件鏈接記錄,文件夾記錄及文件記錄描述文件夾和文件的具體信息,鏈接記錄描述文件與文件夾之間的上下級關(guān)系。在目標(biāo)文件所在的葉節(jié)點(diǎn)中對關(guān)鍵詞做順序遍歷,能夠快速找到目標(biāo)文件的文件記錄,根據(jù)文件記錄的分支信息中描述的盤區(qū)地址,就可以最終定位到文件的存儲地址了,這些盤區(qū)中存儲的就是文件的數(shù)據(jù)。3.2.1
文件系統(tǒng)5.Ext隨著Linux的不斷發(fā)展,大多數(shù)發(fā)行版主要應(yīng)用于x86平臺,支持MBR硬盤分區(qū)和GPT硬盤分區(qū),它所支持的文件系統(tǒng)也在迅速擴(kuò)充,Linux系統(tǒng)內(nèi)核可以支持包括Ext、Ext2、Ext3、Ext4、NTFS等在內(nèi)的十多種文件系統(tǒng),其中以Ext3、Ext4最為常用。本部分主要介紹最常用的Ext3文件系統(tǒng),并簡要介紹Ext4文件系統(tǒng)。Ext3文件系統(tǒng)結(jié)構(gòu)Ext3文件系統(tǒng)的全部空間被劃分為若干個塊組,每個塊組內(nèi)的結(jié)構(gòu)都大致相同,Ext3文件系統(tǒng)的整體結(jié)構(gòu)及第一個塊組的具體結(jié)構(gòu)如下圖所示:3.2.1
文件系統(tǒng)
Ext3文件系統(tǒng)的前兩個扇區(qū)用來存放引導(dǎo)程序,被稱為引導(dǎo)扇區(qū),如果沒有引導(dǎo)程序則保留不用,一般為空扇區(qū),沒有任何數(shù)據(jù)。Ext3文件系統(tǒng)的第三個扇區(qū)(即2號扇區(qū))是“超級塊”,超級塊占用兩個扇區(qū),用于存儲文件系統(tǒng)的配置參數(shù)(如塊大小、總塊數(shù)和i-節(jié)點(diǎn)數(shù))和動態(tài)信息(如當(dāng)前空閑塊數(shù)和i-節(jié)點(diǎn)數(shù))。塊組描述符表用于存儲塊組描述符,占用一個或者多個塊,每個塊組描述符主要描述塊位圖、i-節(jié)點(diǎn)位圖及i-節(jié)點(diǎn)表的地址等信息。為了系統(tǒng)的健壯性,在塊組號是3、5、7的冪的塊組(如1、3、5、7、9、25、49等)內(nèi)對超級塊和塊組描述符表做備份。通常情況下,只有0號塊組的超級塊信息被文件系統(tǒng)使用,其他備份只有在主超級塊被破壞的情況下才使用。塊位圖用于描述本塊組所管理的塊的分配狀態(tài),塊位圖中的每一位映射本塊組中的一個塊,如果某個塊對應(yīng)的位沒有設(shè)置,那么代表該塊未分配,可以用于存儲數(shù)據(jù),否則代表該塊已經(jīng)存放了數(shù)據(jù)或者該塊不能使用。i-節(jié)點(diǎn)位圖用于描述本塊組所管理的i-節(jié)點(diǎn)的分配狀態(tài),i-節(jié)點(diǎn)位圖中的每一位映射本塊組中的一個i-節(jié)點(diǎn),如果i-節(jié)點(diǎn)已經(jīng)使用,i-節(jié)點(diǎn)位圖中相應(yīng)的位被置為1。i-節(jié)點(diǎn)用于描述文件的元數(shù)據(jù),每個i-節(jié)點(diǎn)對應(yīng)文件系統(tǒng)中唯一的節(jié)點(diǎn)號。3.2.1
文件系統(tǒng)(1)文件管理方式
Ext3文件系統(tǒng)對文件的管理結(jié)構(gòu)如下圖所示:Ext3文件系統(tǒng)被分為若干個塊組,并通過塊組描述符描述這些塊組,所有塊組描述符組成塊組描述符表,塊組描述符表位于超級塊的下一個塊中。文件以塊為單位進(jìn)行分配,每個文件都有自己的一個i-節(jié)點(diǎn)和目錄項(xiàng),i-節(jié)點(diǎn)中記錄文件的大小、時間信息、分配地址(塊指針)等信息,目錄項(xiàng)中則記錄文件的i-節(jié)點(diǎn)號、文件名等信息。將目錄項(xiàng)和i-節(jié)點(diǎn)結(jié)合起來分析,就能獲得某個文件的所有信息并通過塊指針定位到其數(shù)據(jù)存放的地址,塊指針?biāo)赶虻膲K內(nèi)就是文件的數(shù)據(jù)。3.2.1
文件系統(tǒng)(2)Ext4文件系統(tǒng)簡介Ext4是Linux文件系統(tǒng)的一次革命。Ext3相對于Ext2的改進(jìn)主要在于日志方面,而Ext4相對于Ext3的改進(jìn)是更深層次的,是文件系統(tǒng)數(shù)據(jù)結(jié)構(gòu)方面的優(yōu)化。Ext4在性能、伸縮性和可靠性方面進(jìn)行了大量改進(jìn),引入了大量新功能。主要有以下特點(diǎn):(1)兼容性強(qiáng)任何Ext3文件系統(tǒng)都可以輕松遷移到Ext4文件系統(tǒng),由于Ext4僅會在新的數(shù)據(jù)上使用,而基本不會改動原有數(shù)據(jù),因此這種升級不會損害到硬盤上的數(shù)據(jù)和資料。(2)支持更大的文件系統(tǒng)和更大的文件Ext3文件系統(tǒng)最多只能支持32TB的文件系統(tǒng),2TB的文件。Ext4將支持最大1EB的文件系統(tǒng),16TB的文件大小。(1EB=1024PB=1024*1024TB)3.2.1
文件系統(tǒng)(3)支持更多的子目錄數(shù)量Ext3中,支持的子目錄數(shù)目最多是32000個,而在Ext4中理論上可以創(chuàng)建無限多個子目錄。(4)ExtentsExt3對于超大文件的存儲是有缺陷的,特別是當(dāng)對超大文件進(jìn)行刪除和截斷操作時。Ext4引入了一個新的概念,叫“Extents”,一個Extents是一個地址連續(xù)的數(shù)據(jù)塊的集合,Extents的實(shí)現(xiàn)提高了文件系統(tǒng)的性能,減少了文件碎片。(5)支持多塊分配在Ext3中,當(dāng)數(shù)據(jù)寫入硬盤時,是由塊分配器來控制的,Ext3的塊分配器一次只能分配一個4KB的數(shù)據(jù)塊。在Ext4中,使用了“多塊分配器”,支持一次調(diào)用分配多個數(shù)據(jù)塊,提高了系統(tǒng)的性能,并且使得分配器有了充足的優(yōu)化空間。3.2.1
文件系統(tǒng)(6)支持延遲分配Ext3的數(shù)據(jù)塊分配策略是盡快分配,而Ext4的策略是盡可能的積累更多的數(shù)據(jù)塊再分配出去,這項(xiàng)特性與Extents特性以及多塊分配特性相結(jié)合,使得硬盤IO性能得到顯著提高。(7)支持快速FSCK在Ext3中,F(xiàn)SCK要檢查文件系統(tǒng)里的每一個“i-節(jié)點(diǎn)”,因此速度很慢。而Ext4給每個塊組的i-節(jié)點(diǎn)表中都添加了一份未使用i-節(jié)點(diǎn)的列表,在進(jìn)行FSCK操作時,會跳過表中節(jié)點(diǎn),只檢查正在使用中的i-節(jié)點(diǎn),從而有效提高了FSCK的效率。(8)支持日志校驗(yàn)功能Ext4給日志數(shù)據(jù)提供了校驗(yàn)功能,可以很方便地判斷日志數(shù)據(jù)是否損壞。而且,Ext4還將Ext3日志機(jī)制中的“兩階段提交”動作合并為一個步驟,在增加安全性的同時又提高了性能。3.2.1
文件系統(tǒng)(9)支持“無日志”模式日志終歸會占用一些開銷,Ext4允許關(guān)閉日志,以便某些有特殊需求的用戶可以借此提升性能。(10)在線碎片整理Ext4支持在線碎片整理,可提供更為智能的硬盤碎片整理功能。(11)新的i-節(jié)點(diǎn)結(jié)構(gòu)更大的i-節(jié)點(diǎn):Ext4為了在i-節(jié)點(diǎn)中容納更多的擴(kuò)展屬性,將默認(rèn)大小提升到256字節(jié)。增加的空間用來存儲更多的節(jié)點(diǎn)信息,這樣有利于提升硬盤性能。i-節(jié)點(diǎn)預(yù)留機(jī)制:當(dāng)新建一個目錄時,若干i-節(jié)點(diǎn)會被預(yù)留下來,等新的文件在此目錄中創(chuàng)建時,這些預(yù)留的i-節(jié)點(diǎn)就可以立即被使用。文件的建立和刪除將變得更加高效。納秒級的時間戳:在Ext3中,時間精度是秒。在Ext4中,考慮到未來的發(fā)展,時間戳的單位提升到了納秒。3.2.1
文件系統(tǒng)(12)支持持久性預(yù)分配應(yīng)用程序告知文件系統(tǒng)給預(yù)留出一定的空間,文件系統(tǒng)會據(jù)此預(yù)分配必要的數(shù)據(jù)塊,但是這些數(shù)據(jù)塊將會是空的,直到應(yīng)用程序向里面寫入數(shù)據(jù)為止。(13)默認(rèn)啟用barrierExt4默認(rèn)啟用barrier,只有當(dāng)barrier之前的數(shù)據(jù)全部寫入硬盤,才能寫barrier之后的數(shù)據(jù)。3.2.1
文件系統(tǒng)6.光盤文件系統(tǒng)光盤文件系統(tǒng)的作用與我們所熟悉的FAT16、FAT32等硬盤文件系統(tǒng)的作用基本上是一樣的,目前最常見的4種光盤文件系統(tǒng)主要是ISO-9660、UDF、Joliet、Romeo。ISO-9660:由國際標(biāo)準(zhǔn)化組織于1985年頒布,是目前唯一通用的光盤文件系統(tǒng),任何類型的計算機(jī)以及所有的刻錄軟件都提供對它的支持。因此,如果想讓刻錄好的光盤能被所有的CD-ROM驅(qū)動器都順利讀取的話,最好使用ISO-9660或與其兼容的文件系統(tǒng);其他的文件系統(tǒng)只能在CD-R或CD-RW上讀取,限制了光盤的通用性。ISO-9660目前有Level1和Level2兩個標(biāo)準(zhǔn)。Level1與DOS兼容,文件名采用傳統(tǒng)的8.3格式,所有字符只能是26個大寫英文字母、10個阿拉伯?dāng)?shù)字及下劃線。Level2在Level的基礎(chǔ)上進(jìn)行了改進(jìn),允許使用長文件名,但不支持DOS。這種光盤文件系統(tǒng)不支持單個大于2GB的文件。3.2.1
文件系統(tǒng)UDF:統(tǒng)一光盤格式(UniversalDiscFormat)的縮寫,它采用標(biāo)準(zhǔn)的封裝寫入技術(shù)(PacketWriting,PW)將CD-R當(dāng)作硬盤來使,允許在CD-R/RW光盤上任意追加數(shù)據(jù),用戶可以在光盤上修改和刪除文件,支持2GB以上的大文件。在使用UDF時,一般都可以使用Windows中的資源管理器就能進(jìn)行燒錄,不會像使用ISO映像文件進(jìn)行燒錄時,每次完畢后都要進(jìn)行關(guān)閉區(qū)段(CloseSession)的操作,減少了燒錄失敗的機(jī)率,DOS和Win98系統(tǒng)不支持此格式,Windows2000和XP以上系統(tǒng)和MacOS系統(tǒng)支持。另外,它還有一種派生的格式,即UDF/ISO,用UDF的技術(shù)制作ISO標(biāo)準(zhǔn)的光盤。3.2.1
文件系統(tǒng)Joliet:微軟公司自行定義的光盤文件系統(tǒng),也是對ISO-9660文件系統(tǒng)的一種擴(kuò)展,它支持Windows9x/NT和DOS,在Windows9x/NT下文件名可顯示64個字符,可以使用中文。Romeo:著名的Adaptec公司自行定義的文件系統(tǒng),支持Windows9x/NT,文件名最多可有128個字符,也支持中文,但不支持DOS、OS/2、LINUX、MacOS等操作系統(tǒng),其應(yīng)用范圍較小。除此之外,還有一些針對特定廠商或系統(tǒng)的光盤文件系統(tǒng),主要有HFS、CD-RFS、RockRidge等。3.2.1
文件系統(tǒng)HFS:蘋果公司(Apple)的Mac機(jī)所使用的光盤文件系統(tǒng),全稱為混合文件系統(tǒng)(HybridFileSystem),是ISO-9660的延伸,允許以ISO-9660Level2的方式在CD-ROM上存放長文件名,以及存放數(shù)據(jù)文件和執(zhí)行文件之間的關(guān)聯(lián)信息,但是存放在Level2的信息無法被MAC以外的計算機(jī)讀取。CD-RFS:索尼公司自定義的一種與UDF類似的文件系統(tǒng),也使用PW技術(shù),其全稱為可記錄光盤文件系統(tǒng)(CD-RecordableFileSystem)。RockRidge:針對UNIX系統(tǒng)的ISO-9660文件系統(tǒng),支持文件名字母大小寫、符號字符以及長文件名。由于兼容ISO-9660,所以即使操作系統(tǒng)不支持RockRidge,也可以通過ISO-9660查看。3.2.1
文件系統(tǒng)7.分布式文件系統(tǒng)
單純通過增加硬盤容量和個數(shù)來擴(kuò)展文件系統(tǒng)的存儲容量的方式,已經(jīng)不能適應(yīng)大數(shù)據(jù)時代的需求。單機(jī)版的文件系統(tǒng)在容量大小、存儲速度、數(shù)據(jù)備份、數(shù)據(jù)安全等方面的表現(xiàn)都差強(qiáng)人意。分布式文件系統(tǒng)可以有效解決數(shù)據(jù)的存儲和管理難題。
分布式文件系統(tǒng)(DistributedFileSystem)是指文件系統(tǒng)管理的物理存儲資源不僅直接連接在本地節(jié)點(diǎn)上,而是通過計算機(jī)網(wǎng)絡(luò)與節(jié)點(diǎn)相連,各節(jié)點(diǎn)擁有相同的存儲權(quán)限,按照需求應(yīng)對不同的存儲需求的文件系統(tǒng)。分布式文件系統(tǒng)的設(shè)計基于客戶機(jī)/服務(wù)器模式,將固定于某個地點(diǎn)的某個文件系統(tǒng),擴(kuò)展到任意多個地點(diǎn)/多個文件系統(tǒng),眾多的節(jié)點(diǎn)組成一個文件系統(tǒng)網(wǎng)絡(luò)。每個節(jié)點(diǎn)可以分布在不同的地點(diǎn),通過網(wǎng)絡(luò)進(jìn)行節(jié)點(diǎn)間的通信和數(shù)據(jù)傳輸。人們在使用分布式文件系統(tǒng)時,無需關(guān)心數(shù)據(jù)是存儲在哪個節(jié)點(diǎn)上、或者是從哪個節(jié)點(diǎn)從獲取的,只需要像使用本地文件系統(tǒng)一樣管理和存儲文件系統(tǒng)中的數(shù)據(jù)。3.2.1
文件系統(tǒng)
典型的分布式文件系統(tǒng)為Hadoop。Hadoop是一個由Apache基金會所開發(fā)的分布式系統(tǒng)基礎(chǔ)架構(gòu)。Hadoop實(shí)現(xiàn)了一個分布式文件系統(tǒng)(HadoopDistributedFileSystem),簡稱HDFS。HDFS有高容錯性的特點(diǎn),并且設(shè)計用來部署在低廉的硬件上;提供高吞吐量來訪問應(yīng)用程序的數(shù)據(jù),適合那些有著超大數(shù)據(jù)集的應(yīng)用程序,以以流的形式訪問件系統(tǒng)中的數(shù)據(jù)。Hadoop的框架最核心的設(shè)計就是HDFS和MapReduce。HDFS為海量的數(shù)據(jù)提供了存儲,則MapReduce為海量的數(shù)據(jù)提供了計算。3.2.2
編碼與解碼相對于難懂的二進(jìn)制代碼,編碼可以通過統(tǒng)一的定義數(shù)據(jù)格式,來加快數(shù)據(jù)執(zhí)行效率。同時編碼也可以隱藏數(shù)據(jù)結(jié)構(gòu),有利于保護(hù)版權(quán)。電子數(shù)據(jù)取證實(shí)際上是一個“黑盒”的探索過程,很多時候,取證就是分析數(shù)據(jù)采取什么方式的編碼,以及使用正確解碼方式以使數(shù)據(jù)可視化。因此了解編碼原理和解碼方法是電子數(shù)據(jù)取證的至關(guān)重要的基礎(chǔ)。1.編碼與解碼的概念如同一個大廈的建設(shè)從一磚一瓦開始,編碼體系也是由最基本的概念建立起來。從最小的單位——“字符”到整個編碼體系,每一部分都起到重要作用,也有著確定的概念。在大多數(shù)資料中,字符集和編碼過程經(jīng)常被混淆,但是實(shí)際上二者是不同的概念。(1)字符(Character)字符是文字與符號的總稱,包括文字、圖形符號、數(shù)學(xué)符號等。一個字符是用二進(jìn)制編碼表示的,但具體是什么字符,是根據(jù)字符集決定的。3.2.2
編碼與解碼(2)字符集(Charset)
字符集是一組抽象字符進(jìn)行規(guī)律排序的集合。字符集實(shí)際上就是個映射表。字符集常常和一種具體的語言文字對應(yīng)起來,該文字中的所有字符或者大部分常用字符就構(gòu)成了該文字的字符集,比如英文字符集。一組有共同特征的字符也可以組成字符集,比如繁體漢字字符集、日文漢字字符集。
計算機(jī)科學(xué)引用了傳統(tǒng)定義上用于教育用的生字表、通訊用的電報碼表(莫爾斯電碼)等領(lǐng)域的字符集的概念。在計算機(jī)科學(xué)中,字符集特指ASCII、Unicode、GB2312、GBK、BIG5等用于計算機(jī)編碼的字符集合。3.2.2
編碼與解碼(3)字符編碼(Encoding)
字符編碼是計算機(jī)處理各種字符時,將字符和二進(jìn)制內(nèi)碼對應(yīng)(Encode)起來而形成的映射集合。它是個名詞。需要注意的是,映射的動作是動詞的編碼(Encode),而映射出的編碼(Encoding)是二進(jìn)制的。制定編碼(Encoding)的前提是確定字符集,要將字符集內(nèi)的字符排序,然后和二進(jìn)制數(shù)字對應(yīng)起來。根據(jù)字符集內(nèi)字符的多少,會確定用幾個字節(jié)來編碼(Encode)。如果編碼(Encoding)已經(jīng)限定了一個明確的字符集合,就叫做被編碼過的字符集(CodedCharacterSet)。3.2.2
編碼與解碼2.字符集和編碼(Encoding)區(qū)別制定編碼的同時往往也制定了字符集,所以經(jīng)常把字符集和編碼(Encoding)混為一談,但是從本質(zhì)上,二者是截然不同的概念。字符集作為字符的集合,是作為一個標(biāo)準(zhǔn)使用的,如果需要在系統(tǒng)中使用或者網(wǎng)絡(luò)上傳輸處理,就需要對其進(jìn)行編碼(Encode)/解碼(Decode)。例如Unicode可依不同需要以UTF-8、UTF-16、UTF-32等方法編碼,GB2312和CNS11643可以使用ISO/IEC2022、EUC等標(biāo)準(zhǔn)編碼。Unicode可依不同需要以UTF-8、UTF-16、UTF-32等方法編碼。有些字符集如Big5通常不需編碼(Encode)即可使用,所以Big5既是字符集又是編碼(Encoding)。(1)解碼解碼,是編碼的逆過程。(2)字體(Font)計算機(jī)字體是一個電子數(shù)據(jù)文件,是某種文字的美術(shù)字形的集合。比如英文的Aial,中文的宋體、楷體。在Windows環(huán)境中,為用戶提供了兩類字體,一類是點(diǎn)陣字體,另一類是TrueType字體。3.2.2
編碼與解碼3.編碼
字符必須編碼后才能被計算機(jī)處理。計算機(jī)使用的缺省編碼方式稱為計算機(jī)的內(nèi)碼。早期的計算機(jī)使用7位的ASCII編碼作為系統(tǒng)內(nèi)碼,ASCII字符編碼標(biāo)準(zhǔn)主要是為英語語系國家制定的,無法處理亞洲國家的文字體系。亞洲各國根據(jù)本國實(shí)際情況設(shè)計了相應(yīng)的字符編碼標(biāo)準(zhǔn),在ANSI碼的基礎(chǔ)上設(shè)計了符合本國實(shí)際情況的字符編碼集,以能夠處理大數(shù)量的象形字符,這些編碼使用單字節(jié)來表示ANSI的英文字符(即兼容ANSI碼),使用雙字節(jié)來表示漢字字符。例如用于簡體中文的GB2312和用于繁體中文的BIG5。3.2.2
編碼與解碼(1)ASCII字符集
ASCII(AmericanStandardCodeforInformationInterchange,美國信息互換標(biāo)準(zhǔn)代碼)是基于拉丁字母的字符編碼,簡稱為“美標(biāo)”。它主要用于顯示現(xiàn)代英語和其他西歐語言。ASCII是現(xiàn)今最通用的單字節(jié)編碼系統(tǒng),大部分計算機(jī)都支持ASCII編碼,等同于國際標(biāo)準(zhǔn)ISO646。ASCII字符編碼標(biāo)準(zhǔn)規(guī)定了用從0-127的128個數(shù)字來代表信息的規(guī)范編碼,其中包括33個控制字符(0x00-0x20和0x7F共33個)、一個空格和94個可顯示字符。ASCII字符集包括英文字母、阿拉伯?dāng)?shù)字和標(biāo)點(diǎn)符號等字符。ASCII碼是7位編碼,只支持ASCII碼的系統(tǒng)會忽略每個字節(jié)的最高位,只認(rèn)為低7位是有效位。3.2.2
編碼與解碼
7位編碼的字符集只能支持128個字符,為了表示更多的歐洲常用字符對ASCII進(jìn)行了擴(kuò)展,這就是ASCII擴(kuò)展字符集。ASCII擴(kuò)展字符集使用8位(bits)表示一個字符,共256字符。ASCII擴(kuò)展字符集比ASCII字符集擴(kuò)充出來的符號包括表格符號、計算符號、希臘字母和特殊的拉丁符號。(2)GB2312-80字符集
GB2312-80簡稱為GB2312。是“中華人民共和國國家標(biāo)準(zhǔn)信息交換用漢字編碼”(簡稱國標(biāo))標(biāo)準(zhǔn)中的“信息交換用漢字編碼字符集·基本集”,由中國國家標(biāo)準(zhǔn)總局1981年5月1日發(fā)布實(shí)施。3.2.2
編碼與解碼
GB2312是中國國家標(biāo)準(zhǔn)的簡體中文字符集。它所收錄的漢字已經(jīng)覆蓋99.75%的使用頻率,基本滿足了漢字的計算機(jī)處理需要。在中國大陸和新加坡獲廣泛使用。GB2312收錄簡體漢字及一般符號、序號、數(shù)字、拉丁字母、日文假名、希臘字母、俄文字母、漢語拼音符號、漢語注音字母,共7445個圖形字符。其中包括6763個漢字,其中一級漢字3755個,二級漢字3008個;包括拉丁字母、希臘字母、日文平假名及片假名字母、俄語西里爾字母在內(nèi)的682個全角字符。
GB2312將這些字符排成一個94行、94列的方陣。方陣中每一橫行叫一個“區(qū)”,每個區(qū)有九十四個“位”。一個漢字在方陣中的坐標(biāo),稱為該字的“區(qū)位碼”。例如“中”字在方陣中處于第54區(qū)第48位,它的區(qū)位碼就是5448。在大多數(shù)計算機(jī)程序中,高字節(jié)和低字節(jié)分別加0xA0得到程序的漢字處理編碼0xB0A1。計算公式是:0xF4=0xA0+54,0xE8=0xA0+48。3.2.2
編碼與解碼(3)GBK字符集:GBK全稱“漢字內(nèi)碼擴(kuò)展規(guī)范”(ChineseInternalCodeSpecification),1995年頒布。GB是國標(biāo),K是漢字“擴(kuò)展”的漢語拼音第一個字母。GBK碼是GB碼的擴(kuò)展字符編碼,GBK向下與GB-2312編碼兼容,向上支持ISO10646.1國際標(biāo)準(zhǔn)。GBK中的簡體漢字的編碼與GB2312中簡體漢字的相同。另外,GBK中還包含繁體字的編碼。它基本包含了所有中文漢字編碼。GBK規(guī)范收錄了ISO10646.1中的全部CJK漢字和符號,并有所補(bǔ)充??傆?3940個碼位,共收入21886個漢字和圖形符號,其中漢字(包括部首和構(gòu)件)21003個,圖形符號883個。3.2.2
編碼與解碼(4)BIG5字符集
BIG5字符編碼又稱大五碼或五大碼,1984年由臺灣財團(tuán)法人信息工業(yè)策進(jìn)會和五間軟件公司宏碁(Acer)、神通(MiTAC)、佳佳、零壹(ZeroOne)、大眾(FIC)創(chuàng)立,故稱大五碼。
Big5碼的產(chǎn)生,是因?yàn)楫?dāng)時臺灣不同廠商各自推出不同的編碼,如倚天碼、IBMPS55、王安碼等,彼此不能兼容;另一方面,臺灣政府當(dāng)時尚未推出官方的漢字編碼,而中國大陸的GB2312編碼也未有收錄繁體中文字。為了能夠統(tǒng)一標(biāo)準(zhǔn),上述公司聯(lián)合起來制定了這一標(biāo)準(zhǔn)并一直沿用下來。Big5字符集共收錄13,053個中文字,該字符集在中國臺灣使用。3.2.2
編碼與解碼
Big5碼使用了雙字節(jié)儲存方法,以兩個字節(jié)來編碼一個字。第一個字節(jié)稱為“高位字節(jié)”,第二個字節(jié)稱為“低位字節(jié)”。高位字節(jié)的編碼范圍0xA1-0xF9,低位字節(jié)的編碼范圍0x40-0x7E及0xA1-0xFE。
Windows系統(tǒng)上使用的代碼頁CP950也可以理解為是對Big5的擴(kuò)展,在Big5的基礎(chǔ)上增加了7個漢字和一些符號。Big5編碼對應(yīng)的字符集是GBK字符集的子集,也就是說Big5收錄的字符是GBK收錄字符的一部分,但相同字符的編碼不同。在網(wǎng)絡(luò)賭博案件中經(jīng)??梢杂龅紹ig5編碼。3.2.2
編碼與解碼(6)Unicode、UCS和UTF1)定義國際標(biāo)準(zhǔn)化組織(ISO)開發(fā)了ISO10646項(xiàng)目,Unicode協(xié)會[]開發(fā)了Unicode項(xiàng)目。二者的工作殊途同歸,在合并了雙方的工作成果后,創(chuàng)建了單一的字符編碼標(biāo)準(zhǔn)。只不過名稱不同,UNICODE協(xié)會稱為Unicode編碼,Unicode的學(xué)名是“UniversalMultiple-OctetCodedCharacterSet”,ISO則稱為UCS(UnicodeCharacterSet)編碼(ISO10646-1的一部分)。目前,Unicode得到廣泛應(yīng)用。2)編碼原理Unicode只是規(guī)定如何編碼,并沒有規(guī)定如何傳輸、保存這個編碼,例如“愛”字的UCS編碼是0x7231,可以用4個ASCII字符來傳輸、保存這個編碼,也可以用UTF(UCSTransformationFormat)編碼傳輸,UTF-8、UTF-7、UTF-16都是被廣泛接受的方案。使用UTF-8編碼,“愛”是3個連續(xù)的字節(jié)E788B1來表示。關(guān)鍵在于通信雙方都要認(rèn)可。UTF-8的一個特別的好處是它與ISO-8859-1完全兼容。3.2.2
編碼與解碼UTF-8編碼UTF-8便于不同的計算機(jī)之間使用網(wǎng)絡(luò)傳輸不同語言和編碼的文字,使得雙字節(jié)的Unicode能夠在現(xiàn)存的處理單字節(jié)的系統(tǒng)上正確傳輸。UTF-8使用可變長度字節(jié)來儲存Unicode字符,例如ASCII字母繼續(xù)使用1字節(jié)儲存,重音文字
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 教育在線培訓(xùn)服務(wù)協(xié)議
- 建筑項(xiàng)目設(shè)計及施工合作協(xié)議
- 大灣區(qū)新興產(chǎn)業(yè)發(fā)展項(xiàng)目合作框架協(xié)議
- 環(huán)??萍柬?xiàng)目研發(fā)與推廣合同
- 總包單位簽訂分包合同
- 買賣手房反擔(dān)保合同
- 承包合同養(yǎng)殖合同
- 私人拖拉機(jī)買賣合同書
- 手房地產(chǎn)轉(zhuǎn)讓居間合同
- 游戲項(xiàng)目開發(fā)授權(quán)及運(yùn)營協(xié)議
- 第五部分茶藝館的經(jīng)營與管理
- 《習(xí)作:那一刻-我長大了》課件ppt
- 小學(xué)道德與法治課堂生活化教學(xué)的策略講座稿
- 大學(xué)生返家鄉(xiāng)志愿服務(wù)證明
- (新版)網(wǎng)絡(luò)攻防知識考試題庫(含答案)
- 建筑工程資料檔案盒側(cè)面標(biāo)簽
- 工程設(shè)計變更工程量計算表
- 動力工程及工程熱物理專業(yè)英語課件
- 幼兒系列故事繪本課件達(dá)芬奇想飛-
- 出納收入支出日記賬Excel模板
- 給水排水用格柵除污機(jī)通用技術(shù)條件
評論
0/150
提交評論