• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于計(jì)算機(jī)取證的Linux文件系統(tǒng)解析與設(shè)計(jì)

      2013-07-14 08:00:26劉春枚
      中國(guó)測(cè)試 2013年2期
      關(guān)鍵詞:描述符數(shù)據(jù)源解析

      劉春枚

      (昆明船舶設(shè)備研究試驗(yàn)中心,云南 昆明 650051)

      0 引 言

      近年來(lái),Linux操作系統(tǒng)以前所未有的速度迅速發(fā)展,它的高性能、高可靠性贏得了廣泛的好評(píng)和支持,取證技術(shù)在Linux上的應(yīng)用成為了計(jì)算機(jī)取證的一個(gè)重要方面。Ext2文件系統(tǒng)是Linux操作系統(tǒng)中應(yīng)用最為廣泛的基本文件系統(tǒng),保存和管理重要的文件信息,挖掘分析其中的有用數(shù)據(jù)已成為目前計(jì)算機(jī)調(diào)查取證的重要手段和研究方向[1]。

      然而,目前國(guó)內(nèi)外缺乏開(kāi)源的Linux文件系統(tǒng)解析軟件供計(jì)算機(jī)取證使用。因此,本文提出面向?qū)ο蟮乃枷雽?duì)Linux文件系統(tǒng)解析軟件進(jìn)行開(kāi)發(fā),通過(guò)類的多態(tài)性的思想實(shí)現(xiàn)了不同文件系統(tǒng)的解析,將提取到的文件信息轉(zhuǎn)換成友好的用戶界面形式,為計(jì)算機(jī)取證技術(shù)在Linux上的應(yīng)用提供有力工具。

      1 Linux文件系統(tǒng)

      Linux的文件系統(tǒng)是Linux操作系統(tǒng)最重要的組成部分之一,文件系統(tǒng)中的文件是數(shù)據(jù)的集合,它不僅包含著文件的數(shù)據(jù)而且還有文件系統(tǒng)的結(jié)構(gòu)。Ext2是Linux操作系統(tǒng)的基本文件系統(tǒng),它將所占用設(shè)備的邏輯分區(qū)分成了多個(gè)數(shù)據(jù)塊組,每一個(gè)數(shù)據(jù)塊組都包含一些有關(guān)整個(gè)文件系統(tǒng)的描述信息以及數(shù)據(jù)塊,圖1給出了Linux文件系統(tǒng)的物理結(jié)構(gòu)圖[2]。

      圖1 Linux文件系統(tǒng)物理結(jié)構(gòu)圖

      1.1 Linux的Ext2存儲(chǔ)模型

      1.1.1 Ext2超級(jí)塊(super block)

      Ext2超級(jí)塊是用來(lái)描述文件系統(tǒng)整體信息的數(shù)據(jù)結(jié)構(gòu),它存儲(chǔ)著描述文件系統(tǒng)大小和形狀的基本信息,可以使用其中的信息來(lái)使用和維護(hù)文件系統(tǒng),是Ext2文件系統(tǒng)的核心所在。Ext2在磁盤(pán)上的超級(jí)塊存放在一個(gè)Ext2_super_block結(jié)構(gòu)中,主要包括Magic Number(幻數(shù))、Revision Level(修訂級(jí)別)、Mount count(掛接數(shù))、Block Group Number(塊組號(hào))、Block Size(塊大?。?、Blocks per Group(每組塊數(shù))、Free Blocks(空閑塊)、Free Inodes(空閑索引節(jié)點(diǎn))、First Inode(第一個(gè)索引節(jié)點(diǎn))[3]。

      1.1.2 Ext2組描述符(group descriptors)

      每個(gè)數(shù)據(jù)塊組都有一個(gè)描述其數(shù)據(jù)結(jié)構(gòu)的組描述符,它和超級(jí)塊一樣,在每一個(gè)數(shù)據(jù)塊組中都要復(fù)制一份數(shù)據(jù)塊組描述符。組描述符放置在一起形成了組描述符表,每個(gè)數(shù)據(jù)塊組在超級(jí)塊拷貝后包含整個(gè)組描述符表。每個(gè)組的組描述符存放在Ext2_group_desc結(jié)構(gòu)中,數(shù)據(jù)塊組描述符包含的信息如表1所示。

      表1 塊組描述符

      1.1.3 Ext2 索引節(jié)點(diǎn)(inode)

      在Ext2文件系統(tǒng)中索引節(jié)點(diǎn)是一切的基礎(chǔ),文件系統(tǒng)中的每一個(gè)文件和目錄都使用一個(gè)唯一的索引節(jié)點(diǎn),每一個(gè)數(shù)據(jù)塊組中的索引節(jié)點(diǎn)都保存在索引節(jié)點(diǎn)表中。數(shù)據(jù)塊組中還有一個(gè)索引節(jié)點(diǎn)位圖,它用來(lái)記錄系統(tǒng)中已分配和未分配的索引節(jié)點(diǎn)。下面是Ext2索引節(jié)點(diǎn)的一些主要的字段:

      (1)mode:保存兩個(gè)信息,一個(gè)是此索引節(jié)點(diǎn)的描述,另一個(gè)是用戶擁有的權(quán)限。對(duì)于Ext2,一個(gè)索引節(jié)點(diǎn)可以描述文件、目錄、符號(hào)連接、塊設(shè)備、字符設(shè)備以及FIFO結(jié)構(gòu)。

      (2)Owner Information:所有者的用戶和組標(biāo)識(shí)符,使得文件系統(tǒng)可以正確地授權(quán)某種存取操作。

      (3)Size:文件的字節(jié)大小。

      (4)Timestemps:索引節(jié)點(diǎn)建立的時(shí)間和索引節(jié)點(diǎn)最后修改的時(shí)間。

      (5)Datablocks:指向存儲(chǔ)此索引節(jié)點(diǎn)描述文件的數(shù)據(jù)塊的指針。前20個(gè)指針是指向存儲(chǔ)數(shù)據(jù)的物理數(shù)據(jù)塊的指針,而后3個(gè)指針則包括不同級(jí)別的間接指針。

      1.1.4 Ext2目錄結(jié)構(gòu)

      Ext2以一種特殊的結(jié)構(gòu)實(shí)現(xiàn)了目錄,這種文件的數(shù)據(jù)塊把文件名和相應(yīng)的索引節(jié)點(diǎn)號(hào)存放在一起。這種目錄結(jié)構(gòu)是存放在Ext2_dir_entry_2的結(jié)構(gòu),Ext2目錄項(xiàng)中主要有如下字段:

      (1)inode:索引節(jié)點(diǎn)號(hào)。

      (2)rec_len:目錄項(xiàng)長(zhǎng)度。

      (3)name_len:文件名長(zhǎng)度。

      (4)file_type:文件類型。

      (5)name:文件名。

      此結(jié)構(gòu)的長(zhǎng)度是可變的。該結(jié)構(gòu)的最后一個(gè)name字段是Ext2_NAME_LEN個(gè)字符的變長(zhǎng)數(shù)組,因此這個(gè)結(jié)構(gòu)是可變的。rec_len字段為指向下一個(gè)有效目錄項(xiàng)的指針:它是偏移量,與目錄項(xiàng)的起始地址相加就得到下一個(gè)有效目錄項(xiàng)的起始地址。刪除目錄項(xiàng)目時(shí)把它的inode字段置為0并適當(dāng)?shù)卦黾忧耙粋€(gè)有效目錄項(xiàng)rec_len字段。

      2 面向?qū)ο蟮腖inux文件系統(tǒng)解析與設(shè)計(jì)

      2.1 Ext2文件系統(tǒng)類框架設(shè)計(jì)

      在Ext2文件系統(tǒng)的解析過(guò)程中,系統(tǒng)的目標(biāo)是根據(jù)Ext2文件系統(tǒng)的結(jié)構(gòu),從底層的二進(jìn)制流提取出所有存在的文件、目錄、分區(qū)等文件信息,并以樹(shù)形結(jié)構(gòu)的形式將解析出來(lái)的文件以友好的界面方式展現(xiàn)給用戶,同時(shí)提供功能豐富的文件操作接口,更好地對(duì)文件進(jìn)行分析和取證。

      基于系統(tǒng)要實(shí)現(xiàn)的目標(biāo),本文提出了面向?qū)ο蟮奈募到y(tǒng)解析思想,即將所有的文件當(dāng)作一個(gè)對(duì)象,它封裝了對(duì)象的各個(gè)屬性以及對(duì)對(duì)象操作的各種接口函數(shù),每個(gè)對(duì)象之間是一個(gè)獨(dú)立的整體。在解析出來(lái)的整個(gè)文件列表中,工程,硬盤(pán),分區(qū),目錄,文件都是從CMyFile繼承出來(lái)的,其中文件就是一個(gè)簡(jiǎn)單的CMyFile對(duì)象。CMyFile根據(jù)對(duì)象作用的不同,又分別派生出CDevice類和CProject類,分別用來(lái)表示設(shè)備和工程,其中CProject類表示一個(gè)項(xiàng)目,有添加項(xiàng)目的函數(shù),和其他設(shè)備一樣被當(dāng)做一個(gè)文件放在文件列表中。CDevice類根據(jù)對(duì)象的不同,又分別派生出CLogicDisk類和CDisk類,分別用來(lái)表示分區(qū)和硬盤(pán),從而得到整個(gè)文件系統(tǒng)的類框架如圖2所示[4]。

      圖2 Ext2文件系統(tǒng)的總體類框架圖

      為了方便對(duì)每個(gè)文件對(duì)象的數(shù)據(jù)源構(gòu)建和獲取,在每一個(gè)CDevice類中里面都定義了一個(gè)CSource的對(duì)象,CSource是表示這個(gè)設(shè)備的數(shù)據(jù)源。根據(jù)實(shí)際應(yīng)用中文件系統(tǒng)數(shù)據(jù)源的不同,又可以將數(shù)據(jù)源分為硬盤(pán)數(shù)據(jù)源和鏡像數(shù)據(jù)源,因此,從CSource基類中又派生出cDeviceSource和cFileSource兩個(gè)子類,一個(gè)是表示硬盤(pán)數(shù)據(jù)源,一個(gè)表示文件數(shù)據(jù)源,在它們內(nèi)部都實(shí)現(xiàn)了CREATEFILE、READFILE之類的函數(shù),方便在數(shù)據(jù)源中讀取數(shù)據(jù),從而得到文件系統(tǒng)資源類繼承框架圖如圖3所示。

      圖3 Ext2文件系統(tǒng)的資源類框架圖

      2.2 Ext2文件系統(tǒng)的解析技術(shù)

      在Ext2文件系統(tǒng)中,所有文件都保存在塊組中,節(jié)點(diǎn)INODE是文件系統(tǒng)中重要的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),記錄文件的存儲(chǔ)空間和其他各種有用的信息。根據(jù)上節(jié)對(duì)Ext2文件系統(tǒng)原理的闡述,本文設(shè)計(jì)出Ext2文件系統(tǒng)解析的方法如下:

      (1)讀取Ext2文件系統(tǒng)的超級(jí)塊SuperBlock,存儲(chǔ)到SuperBlock結(jié)構(gòu)體空間中,獲取描述文件系統(tǒng)大小和形狀的基本信息。

      (2)初始化組描述信息,讀取第一個(gè)塊組的組描述,并存儲(chǔ)到內(nèi)存中。

      (3)通過(guò)超級(jí)塊中sFirstInode來(lái)獲取整個(gè)EXT2文件系統(tǒng)的入口地址-根目錄的節(jié)點(diǎn)號(hào),默認(rèn)為2。

      (4)初始化根目錄所在的節(jié)點(diǎn)表,并根據(jù)節(jié)點(diǎn)號(hào)從節(jié)點(diǎn)表來(lái)獲取到根目錄數(shù)據(jù)存放的地址空間。

      (5)讀取目錄下存放的文件目錄項(xiàng),循環(huán)遞歸提取出每個(gè)文件的文件名等信息和文件的節(jié)點(diǎn)號(hào)。

      (6)根據(jù)每個(gè)文件的inode號(hào),來(lái)獲取文件存放的地址空間,并將地址空間用向量形式保存起來(lái)。

      (7)如果當(dāng)前讀取的是文件,則需要進(jìn)行深入解析;如果當(dāng)前讀取的是目錄信息,而通過(guò)遞歸,繼續(xù)往下從步驟5開(kāi)始深入解析,直到全部文件解析完成。

      (8)根據(jù)每級(jí)文件存儲(chǔ)的父子節(jié)點(diǎn)信息,將所有解析出來(lái)的文件構(gòu)建成目錄樹(shù)的形式。

      根據(jù)上述分析,設(shè)計(jì)出LINUX下Ext2文件系統(tǒng)解析的流程圖如圖4所示。

      圖4 Ext2文件系統(tǒng)的解析技術(shù)流程圖

      2.3 計(jì)算機(jī)自動(dòng)取證模型的建立

      根據(jù)目前計(jì)算機(jī)取證的基本需要,本文在獲取到證據(jù)文件的基礎(chǔ)上,構(gòu)建出計(jì)算機(jī)自動(dòng)取證的模型,本模型主要實(shí)現(xiàn)的功能包括獲取用戶痕跡,如上網(wǎng)記錄、打印記錄、回收站刪除記錄等;即時(shí)通信地解析,如對(duì) QQ、Skype、MSN、新浪 UC、淘寶旺旺、飛信等主流聊天工具的解析,獲取這些聊天工具的用戶信息和聊天記錄等信息,挖掘其中有用的數(shù)據(jù)供計(jì)算機(jī)取證調(diào)查分析;客戶端郵件解析,如outlook express、foxmail等郵件內(nèi)容的提取和分析;網(wǎng)頁(yè)郵件的解析,如網(wǎng)易郵箱、GMAIL、新浪郵箱、163等主流郵件的提取和分析;文件分析和關(guān)鍵字搜索,如對(duì)系統(tǒng)日志、注冊(cè)表等信息的獲取,以及對(duì)敏感關(guān)鍵字搜索等功能,挖掘分析其中的有用線索能為案件偵破提供有力依據(jù)。通過(guò)多線程技術(shù),實(shí)現(xiàn)多個(gè)功能模塊的同時(shí)取證,將大大提高計(jì)算機(jī)取證的工作效率,實(shí)現(xiàn)對(duì)計(jì)算機(jī)的自動(dòng)取證[5]。

      基于計(jì)算機(jī)取證系統(tǒng)要實(shí)現(xiàn)的功能,本文建立的計(jì)算機(jī)自動(dòng)取證系統(tǒng)的模型如圖5所示。

      圖5 計(jì)算機(jī)取證系統(tǒng)模型圖

      2.4 軟件總體實(shí)現(xiàn)的流程圖

      在進(jìn)行文件系統(tǒng)解析時(shí),獲取到設(shè)備有可能是整塊硬盤(pán),也有可能是分區(qū),因此要對(duì)設(shè)備類型進(jìn)行判斷,對(duì)分區(qū)和硬盤(pán)采取不同的方法進(jìn)行解析,具體軟件的實(shí)現(xiàn)流程見(jiàn)圖6[6]。

      3 系統(tǒng)測(cè)試與驗(yàn)證

      本文研究中,采用Windows XP+SP2和Linux雙操作系統(tǒng),在Microsoft Visual C++2005開(kāi)發(fā)環(huán)境下編程實(shí)現(xiàn)了上述方法。在對(duì)Linux操作系統(tǒng)下進(jìn)行多種文件系統(tǒng)的解析,包括Ext2、EXT3、SWAP等格式進(jìn)行分區(qū)格式化,用本軟件進(jìn)行解析,均能得到正確的解析結(jié)果。結(jié)果表明,面向?qū)ο蟮腅xt2文件系統(tǒng)解析是可行的,并且對(duì)Linux下其他文件系統(tǒng)解析具有一定的兼容性,解析結(jié)果具有友好的人機(jī)交互界面,為計(jì)算機(jī)取證在Linux上的進(jìn)行提供了可靠的數(shù)據(jù)來(lái)源,實(shí)現(xiàn)計(jì)算機(jī)的自動(dòng)取證。

      4 結(jié)束語(yǔ)

      圖6 面向?qū)ο蟮腖inux文件系統(tǒng)解析流程圖

      本文針對(duì)計(jì)算機(jī)取證在Linux中應(yīng)用對(duì)文件系統(tǒng)解析的需求,提出了面向?qū)ο蟮腖inux文件系統(tǒng)解析方法,即利用類之間的繼承關(guān)系以及類的封裝性,對(duì)不同數(shù)據(jù)源進(jìn)行深度解析,為計(jì)算機(jī)取證提供了對(duì)文件操作的各種接口,同時(shí)以友好的界面形式向用戶展示Linux文件信息,為計(jì)算機(jī)取證在Linux上的應(yīng)用提供可靠的數(shù)據(jù)保證,對(duì)調(diào)查分析軟件的研究開(kāi)發(fā)具有較好的參考價(jià)值。

      [1]張榮亮,余敏,余文斌.Linux文件系統(tǒng)內(nèi)核機(jī)制分析與研究[J].計(jì)算機(jī)與現(xiàn)代化,2007(12):14-21.

      [2]陳莉君,康華,張波.Linux的內(nèi)核設(shè)計(jì)與實(shí)現(xiàn)[M].北京:機(jī)械工業(yè)出版社,2006.

      [3]包懷忠.Ext2文件系統(tǒng)[J].計(jì)算機(jī)工程與設(shè)計(jì),2005(4):1022-1024.

      [4]梁金民.面向?qū)ο蟮南到y(tǒng)分析與設(shè)計(jì)(UML版)[M].北京:清華大學(xué)出版社,2005.

      [5]陳祖義,龔儉,徐曉琴.計(jì)算機(jī)取證的工具體系[J].計(jì)算機(jī)工程,2005,31(5):162-165.

      [6]汪詩(shī)林.數(shù)據(jù)結(jié)構(gòu)算法與應(yīng)用C++語(yǔ)言描述[M].北京:機(jī)械工業(yè)出版社,2000.

      猜你喜歡
      描述符數(shù)據(jù)源解析
      基于結(jié)構(gòu)信息的異源遙感圖像局部特征描述符研究
      三角函數(shù)解析式中ω的幾種求法
      Linux單線程并發(fā)服務(wù)器探索
      睡夢(mèng)解析儀
      Web 大數(shù)據(jù)系統(tǒng)數(shù)據(jù)源選擇*
      電競(jìng)初解析
      商周刊(2017年12期)2017-06-22 12:02:01
      基于不同網(wǎng)絡(luò)數(shù)據(jù)源的期刊評(píng)價(jià)研究
      利用CNN的無(wú)人機(jī)遙感影像特征描述符學(xué)習(xí)
      相機(jī)解析
      基于真值發(fā)現(xiàn)的沖突數(shù)據(jù)源質(zhì)量評(píng)價(jià)算法
      手游| 凌云县| 瓦房店市| 汕尾市| 富平县| 连江县| 沙坪坝区| 甘德县| 富民县| 资源县| 九龙城区| 府谷县| 怀仁县| 岐山县| 五寨县| 河津市| 乌兰浩特市| 腾冲县| 伊通| 永定县| 育儿| 广东省| 仪征市| 金乡县| 广南县| 望都县| 沁阳市| 通渭县| 蓬溪县| 交口县| 苍山县| 封丘县| 田阳县| 吉木乃县| 荔波县| 丰原市| 班玛县| 建宁县| 闽清县| 成都市| 禄丰县|