亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于歷史版本的yaffs2破損文件重構(gòu)方法

文檔序號:8457198閱讀:275來源:國知局
一種基于歷史版本的yaffs2破損文件重構(gòu)方法
【技術(shù)領域】
[0001] 本發(fā)明涉及Android數(shù)字取證技術(shù)領域,具體而言,涉及一種基于歷史版本的 YAFFS2破損文件重構(gòu)方法。
【背景技術(shù)】
[0002] 數(shù)字取證是一個高速發(fā)展的技術(shù)領域,對諸如公司內(nèi)部調(diào)查分析、民事訴訟、刑事 調(diào)查、情報收集以及涉及到國家安全等眾多方面產(chǎn)生巨大的影響。Android智能平臺的應用 日益廣泛,有越來越多的用戶信息和數(shù)據(jù)存儲在Android智能終端的Flash閃存上,比如通 訊錄、短信、圖片、備忘錄等數(shù)據(jù),其中包含的敏感性信息、重要數(shù)據(jù),是數(shù)字取證的重要數(shù) 據(jù)來源。在Android取證給人們提供巨大商機的同時,對于取證分析師和安全工程師來說, 如何盡可能完整的恢復設備上存儲的數(shù)據(jù)是一個嚴峻的挑戰(zhàn)。
[0003] NAND閃存是一種電可擦寫可編程,非易失性的只讀存儲器,具有功耗低、攜帶方 便、成本低等優(yōu)點。與磁存儲器件在存儲特性上有很大不同,NAND閃存在能夠被寫入之前必 須先被擦除,寫入操作以頁作為最小單位,擦除操作以塊作為最小單位,但每一塊能承受的 擦除操作次數(shù)有限。為了克服這種不耐擦寫的特性,NAND閃存都采用"異地更新"策略,即 當閃存存儲的數(shù)據(jù)發(fā)生變化時不在原地改動數(shù)據(jù),而是在空白區(qū)域存儲改動后的新數(shù)據(jù), 為取證研宄者恢復數(shù)據(jù),搜尋殘余數(shù)據(jù)提供了更大的空間。
[0004] YAFFS(Yet Another Flash File System)是由新西蘭的 Aleph One LTD.公司的 Charles Manning針對NAND設計和開發(fā)的一個開放源碼嵌入式文件系統(tǒng)。YAFFS于2001年 月12月開始被設計并于2002年5月公開發(fā)布(YAFFSl),目前該系統(tǒng)有YAFFSl和YAFFS2 二個版本。YAFFSl運行在頁大小為512B的NAND閃存上,YAFFS2主要服務于頁面大小為 IK或2KB的NAND閃存。與YAFFSl相比,YAFFS2擴展了 YAFFSl的功能并能夠更好的支持 大容量NAND FLASH閃存。由于NAND的物理特性,YAFFS采用日志型結(jié)構(gòu)設計,需要實現(xiàn)被 動的垃圾回收機制來對過時但還未被擦除的數(shù)據(jù)塊進行管理。
[0005] 目前為止,已有許多根據(jù)文件系統(tǒng)元數(shù)據(jù)進行數(shù)據(jù)恢復的方法,例如倒序掃描方 法、備份數(shù)據(jù)恢復方法、基于元數(shù)據(jù)的YAFFS2文件恢復方法。
[0006] Android采用NAND閃存做為內(nèi)核存儲器,YAFFS2是專為NAND閃存設計的日志型 文件系統(tǒng),具有一些不同于其他文件系統(tǒng)的特性。當待恢復文件包含破損或丟失的頁面時, 傳統(tǒng)的恢復方法則不能將其有效恢復出來。

【發(fā)明內(nèi)容】

[0007] 為解決上述問題,本發(fā)明的目的在于提供一種YAFFS2文件系統(tǒng)下的數(shù)據(jù)恢復方 法。
[0008] 本發(fā)明提供了一種基于歷史版本的YAFFS2破損文件重構(gòu)方法,其特征在于,包括 以下步驟:
[0009] 步驟1,對NAND閃存進行掃描,建立整個文件系統(tǒng)的文件節(jié)點樹,根據(jù)頁面號依次 掃描所述NAND閃存,對每一個頁面讀取其對象號,將所述對象號相同的頁面插入到所述文 件節(jié)點樹的同一分支下;
[0010] 步驟2,判斷所述整個文件系統(tǒng)中某一文件在所述文件節(jié)點樹上是否完整,如果其 所有頁面數(shù)據(jù)大小等于文件的對象頭頁面中存儲的文件大小,則說明此文件是完整的,否 則文件不完整;
[0011] 步驟3,將不完整文件的對象號存放到數(shù)組tmp[0];
[0012] 步驟4,將所述文件節(jié)點樹上所有屬于此文件的頁面的頁面號存放到數(shù)組 tmp[l]_tmp[n];
[0013] 步驟5,繼續(xù)掃描所述NAND閃存上的頁面,讀取每個頁面的yaffs_tags,當對象號 =tmp[0],執(zhí)行下一步;
[0014] 步驟6,判斷當前數(shù)據(jù)頁面是否已經(jīng)存在于所述文件節(jié)點樹,當頁面的對象號存在 于數(shù)組tmp □,將其頁面號與所述文件節(jié)點樹中此對象文件已有的頁面進行匹配,如果頁面 的頁面號已經(jīng)存在于數(shù)組tmp □,則繼續(xù)掃描,如果頁面的頁面號不存在于數(shù)組tmp □,則 將其插入所述文件節(jié)點樹并存儲其物理地址;
[0015] 步驟7,當判斷為不完整的文件已經(jīng)完整時,將其所有頁面數(shù)據(jù)復制到新的指定地 址,清空數(shù)組tmp 口。
[0016] 作為本發(fā)明進一步的改進,YAFFS2中,有兩種不同的頁面:數(shù)據(jù)頁面與對象頭頁 面,所述數(shù)據(jù)頁面用于存儲對象的數(shù)據(jù)內(nèi)容,所述對象頭頁面用于描述對象的字段信息。
[0017] 作為本發(fā)明進一步的改進,所述對象頭頁面描述對象的字段信息包括:目錄、普通 文件、硬鏈接、軟鏈接,文件大小、對象名、對象的創(chuàng)建、修改、訪問時間。
[0018] 作為本發(fā)明進一步的改進,YAFFS2 -共使用了 8個位的空間用來存放文件系統(tǒng)相 關(guān)的信息,即yaffs_tags,其中包含頁面號和對象號信息,所述對象號是該頁面所屬對象的 ID號,所述頁面號用于標識該頁面在所處對象中的邏輯位置。
[0019] 作為本發(fā)明進一步的改進,所述頁面號為0表示該頁面是對象頭,所述頁面號為1 表示該頁面是所屬對象的第一個數(shù)據(jù)頁面。
[0020] 本發(fā)明的有益效果為:通過基于文件的歷史版本重構(gòu)破損文件,以達到數(shù)據(jù)恢復 的目的。該方法在數(shù)字取證中,能滿足盡可能完整的獲取設備中所存儲的數(shù)據(jù)的要求。
【附圖說明】
[0021] 圖1為本發(fā)明實施例所述的一種基于歷史版本的YAFFS2破損文件重構(gòu)方法的流 程圖。
【具體實施方式】
[0022] 下面通過具體的實施例并結(jié)合附圖對本發(fā)明做進一步的詳細描述。
[0023] 實施例1,YAFFS文件系統(tǒng)把所有存儲在NAND芯片上的內(nèi)容都看成對象,每個對 象都有一個專屬的對象號(ObjectID)與之對應,且ObjectID是對象的唯一標識。NAND閃 存以頁為單位,頁是NAND進行存儲空間分配和讀寫操作的最小單位。遵循NAND閃存以頁 作為寫入操作最小單位的特性,在YAFFS文件系統(tǒng)中,芯片的存儲空間分配單位是頁面。在 YAFFS中,有兩種不同的頁面:數(shù)據(jù)頁面(Data chunk)與對象頭頁面(Object header),前 者用于存儲對象的數(shù)據(jù)內(nèi)容;而后者則用于描述對象的字段信息包括:目錄、普通文件、硬 鏈接、軟鏈接,文件大小、對象名、對象的創(chuàng)建、修改、訪問時間。
[0024] YAFFS的每個頁面都有各自的標簽,其中對象號(ObjectID)是該頁面所屬對象的 ID號,頁面號(ChunkID)用于標識該頁面在所處對象中的邏輯位置,如ChunkID為0表示 該頁面是對象頭,ChunkID為1表示該頁面是所屬對象的第一個數(shù)據(jù)頁面。YAFFS2摒棄了 在YAFFSl中使用的過期頁面標識deletion marker,改進為在存儲數(shù)據(jù)時為每個塊遞增地 分配一個塊序號(Block Number),該塊中所有的頁面都會共享這一序號,每當新分配一個 塊時,塊序號加1。對YAFFS2而言,在某一時刻僅有一個塊被視為可分配的塊(allocating block),文件系統(tǒng)在可分配塊中順序分配頁面用于存儲數(shù)據(jù),在當前可分配塊分配完后,順 序?qū)ふ蚁乱豢煞峙涞膲K繼續(xù)進行分配。當可用存儲空間足夠大時,YAFFS2完全按照物理順 序進行空間分配的;當存儲空間不足時會激發(fā)垃圾回收機制,打破這種嚴格按物理順序進 行分配的方式。表1列出了對象頭各字段信息。
[0025] 表1為對象頭頁面存儲的字段信息:
[0026]
【主權(quán)項】
1. 一種基于歷史版本的YAFFS2破損文件重構(gòu)方法,其特征在于,包括以下步驟: 步驟1,對NAND閃存進行掃描,建立整個文件系統(tǒng)的文件節(jié)點樹,根據(jù)頁面號依次掃描 所述NAND閃存,對每一個頁面讀取其對象號,將所述對象號相同的頁面插入到所述文件節(jié) 點樹的同一分支下; 步驟2,判斷所述整個文件系統(tǒng)中某一文件在所述文件節(jié)點樹上是否完整,如果其所有 頁面數(shù)據(jù)大小等于文件的對象頭頁面中存儲的文件大小,則說明此文件是完整的,否則文 件不完整; 步驟3,將不完整文件的對象號存放到數(shù)組tmp[0]; 步驟4,將所述文件節(jié)點樹上所有屬于此文件的頁面的頁面號存放到數(shù)組tmp[l]_tmp[n]; 步驟5,繼續(xù)掃描所述NAND閃存上的頁面,讀取每個頁面的yaffs_tags,當對象號=tmp[0],執(zhí)行下一步; 步驟6,判斷當前數(shù)據(jù)頁面是否已經(jīng)存在于所述文件節(jié)點樹,當頁面的對象號存在于數(shù) 組tmp□,將其頁面號與所述文件節(jié)點樹中此對象文件已有的頁面進行匹配,如果頁面的頁 面號已經(jīng)存在于數(shù)組tmp□,則繼續(xù)掃描,如果頁面的頁面號不存在于數(shù)組tmp□,則將其 插入所述文件節(jié)點樹并存儲其物理地址; 步驟7,當判斷為不完整的文件已經(jīng)完整時,將其所有頁面數(shù)據(jù)復制到新的指定地址, 清空數(shù)組tmp[]。
2. 根據(jù)權(quán)利要求1所述的一種基于歷史版本的YAFFS2破損文件重構(gòu)方法,其特征在 于,YAFFS2中,有兩種不同的頁面:數(shù)據(jù)頁面與對象頭頁面,所述數(shù)據(jù)頁面用于存儲對象的 數(shù)據(jù)內(nèi)容,所述對象頭頁面用于描述對象的字段信息。
3. 根據(jù)權(quán)利要求2所述的一種基于歷史版本的YAFFS2破損文件重構(gòu)方法,其特征在 于,所述對象頭頁面描述對象的字段信息包括:目錄、普通文件、硬鏈接、軟鏈接,文件大小、 對象名、對象的創(chuàng)建、修改、訪問時間。
4. 根據(jù)權(quán)利要求1所述的一種基于歷史版本的YAFFS2破損文件重構(gòu)方法,其特征在 于,YAFFS2-共使用了8個位的空間用來存放文件系統(tǒng)相關(guān)的信息,即yaffs_tags,其中包 含頁面號和對象號信息,所述對象號是該頁面所屬對象的ID號,所述頁面號用于標識該頁 面在所處對象中的邏輯位置。
5. 根據(jù)權(quán)利要求4所述的一種基于歷史版本的YAFFS2破損文件重構(gòu)方法,其特征在 于,所述頁面號為〇表示該頁面是對象頭,所述頁面號為1表示該頁面是所屬對象的第一個 數(shù)據(jù)頁面。
【專利摘要】本發(fā)明公開了一種基于歷史版本的YAFFS2破損文件重構(gòu)方法,包括:掃描NAND閃存,建立整個文件系統(tǒng)的文件節(jié)點樹;判斷某個文件在文件節(jié)點樹上是否完整;將不完整文件的對象號存放到數(shù)組tmp[0];將文件節(jié)點樹上所有屬于此文件的頁面的頁面號存放到tmp[1]-tmp[n];掃描NAND上的頁面,讀取每個頁面的yaffs_tags,當對象號=tmp[0],執(zhí)行下一步;判斷當前頁面的對象號是否存在于數(shù)組tmp[],若存在則繼續(xù)掃描,否則此頁面插入到文件節(jié)點樹;當判斷為不完整的文件已經(jīng)完整,將其所有頁面數(shù)據(jù)復制到新的指定地址,清空數(shù)組tmp[]。本發(fā)明的有益效果:通過基于文件的歷史版本重構(gòu)破損文件,以達到數(shù)據(jù)恢復的目的,該方法在數(shù)字取證中,能滿足盡可能完整的獲取設備中所存儲的數(shù)據(jù)的要求。
【IPC分類】G06F11-14
【公開號】CN104778099
【申請?zhí)枴緾N201510181474
【發(fā)明人】何涇沙, 黃娜, 趙斌, 劉公政
【申請人】北京工業(yè)大學
【公開日】2015年7月15日
【申請日】2015年4月16日
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1