方冬蓉,張秋余,董瑞洪,文 森
(蘭州理工大學(xué)計算機與通信學(xué)院,蘭州730050)
Android系統(tǒng)刪除數(shù)據(jù)恢復(fù)方法研究
方冬蓉,張秋余,董瑞洪,文 森
(蘭州理工大學(xué)計算機與通信學(xué)院,蘭州730050)
隨著移動通信技術(shù)的發(fā)展和應(yīng)用的推廣,手機犯罪成為新的犯罪趨勢,手機取證是打擊該類犯罪的一個有效手段。直接調(diào)用API方法不能恢復(fù)Android手機數(shù)據(jù),現(xiàn)有方法存在無法恢復(fù)刪除數(shù)據(jù)部分被覆蓋的問題。為此,通過分析Android系統(tǒng)SQLite數(shù)據(jù)庫的文件結(jié)構(gòu)和數(shù)據(jù)記錄的尋址方式,提出一種Android系統(tǒng)刪除數(shù)據(jù)恢復(fù)方法,即探測估算預(yù)提取數(shù)據(jù)所在表的每個Type字段,提取恢復(fù)刪除數(shù)據(jù),結(jié)合盡最大努力恢復(fù)方法,針對刪除數(shù)據(jù)部分被覆蓋的情況,討論其恢復(fù)的可能性并進(jìn)行獲取。在Android手機模擬器上進(jìn)行驗證,結(jié)果表明,該方法能成功恢復(fù)刪除數(shù)據(jù),與傳統(tǒng)方法相比,在不影響信息提取精確度的前提下,提高了刪除數(shù)據(jù)的恢復(fù)率。
手機取證;Android系統(tǒng);SQLite數(shù)據(jù)庫;數(shù)據(jù)刪除;邏輯提取;物理提取
當(dāng)前,智能手機隨著其功能越來越強大且便攜,手機成為犯罪分子的一種新型作案工具,為打擊犯罪,手機取證顯得尤為重要。所謂手機取證是指在健全的取證環(huán)境中,使用恰當(dāng)?shù)姆椒◤氖謾C及相關(guān)設(shè)備中提取并恢復(fù)數(shù)字證據(jù)的科學(xué)[1]。這些數(shù)字證據(jù)包括通話記錄、短信息、電話簿等。
在手機取證中,最重要的是刪除數(shù)據(jù)的恢復(fù)。目前,國內(nèi)外已有不少研究人員對手機數(shù)據(jù)提取恢復(fù)進(jìn)行研究,文獻(xiàn)[2]指出由于手機操作系統(tǒng)的權(quán)限問題,只能提取系統(tǒng)允許訪問的內(nèi)容,稱為“邏輯提取”。隨后,文獻(xiàn)[3-4]分別提出將手機芯片拆除,直接對芯片進(jìn)行數(shù)據(jù)讀取解析,這樣可得到刪除數(shù)據(jù),但面臨的問題是難度系數(shù)較高,稱為“物理提取”。文獻(xiàn)[5]在2010年提出flasher boxes獲取方法,它是繞過手機操作系統(tǒng)對手機底層信息進(jìn)行獲取,該方法的局限性在于對每一型號手機存在一款flasher box,且無法得知在使用過程中是否改變手機數(shù)據(jù)。近年來,有很多手機取證工具[6]由于其便攜、易操作及刪除數(shù)據(jù)可恢復(fù)等,已廣泛被司法部門采用。但是,手機取證工具的使用,會開啟手機內(nèi)存中的某些進(jìn)程[7],改變了手機狀態(tài),減弱了證據(jù)的證明力。
安卓平臺運用SQLite進(jìn)行數(shù)據(jù)管理,早在2004年P(guān)ereira MT[8]針對火狐瀏覽器歷史記錄,提出基于SQLite的數(shù)據(jù)恢復(fù),使得從數(shù)據(jù)庫恢復(fù)技術(shù)入手進(jìn)行手機數(shù)據(jù)的恢復(fù)成為可能。文獻(xiàn)[9]提出從SQLite數(shù)據(jù)庫通過估算PayloadSize、RowID及Header-size占據(jù)字節(jié)大小,即“暴力估算”方法來恢復(fù)刪除記錄的恢復(fù)方法,文中提出一個單元部分覆蓋(非刪除修改)的情況,恢復(fù)是不可能的。根據(jù)上述情況,本文依據(jù)安卓平臺SQLite存儲格式及刪除存儲原理,提出探測預(yù)提取數(shù)據(jù)所在表Type各字段大小的方法來恢復(fù)刪除數(shù)據(jù)。并且對刪除單元被新進(jìn)入數(shù)據(jù)覆蓋部分的情況,討論其恢復(fù)的可能性。該方法可獲取刪除的數(shù)據(jù),且不用在手機終端安裝應(yīng)用,提高證據(jù)可采性。
2.1 SQLite物理結(jié)構(gòu)
SQLite數(shù)據(jù)庫文件由固定大小的“頁”(page)組成,頁的類型可以是Btree頁、空閑(free)頁或溢出(overflow)頁。Btree頁內(nèi)部以單元(cell)為單位來組織數(shù)據(jù),一個單元包含一個 payload(也稱為Btree記錄),單元是Btree頁內(nèi)部進(jìn)行空間分配和回收的基本單位。從邏輯上講,SQLite數(shù)據(jù)庫文件實際是由多個多重的Btree構(gòu)成[10]。每一個Btree存儲一個表的數(shù)據(jù)或一個表的索引,索引采用B-tree,而表采用B+tree。
2.2 SQLite刪除數(shù)據(jù)存儲原理
根據(jù)SQLite數(shù)據(jù)管理機制,當(dāng)手機刪除數(shù)據(jù)后,手機終端無法看到刪除的數(shù)據(jù)。但事實上,刪除數(shù)據(jù)后僅是存儲數(shù)據(jù)的單元頭部信息改變,這塊區(qū)域被識別為自由塊,而真正的數(shù)據(jù)并未刪除。因此,只要此區(qū)域未被新進(jìn)數(shù)據(jù)覆蓋,那么恢復(fù)是可能的。在SQLite中,根據(jù)刪除區(qū)域包含的單元數(shù)量,刪除區(qū)域可分為3種:刪除區(qū)域包含部分單元,刪除區(qū)域包含一個單元,刪除區(qū)域包含多個單元。
當(dāng)刪除區(qū)域包含部分單元,根據(jù)覆蓋范圍大小,部分?jǐn)?shù)據(jù)是可能恢復(fù)的。當(dāng)刪除區(qū)域包含一個單元,確定單元每個Type字段值,即可恢復(fù)記錄數(shù)據(jù)區(qū)的數(shù)據(jù)。由于單元頭部信息被修改,無法確定Type字段占據(jù)字節(jié)大小,本文提出估算Type字段大小的方法來恢復(fù)數(shù)據(jù)。
SQLite中,真正的數(shù)據(jù)存儲在B+tree葉子頁的單元Data區(qū)中,其單元結(jié)構(gòu)如圖1所示。其中, Type字段表示表的各字段,單元頭和記錄頭均以可變長整數(shù)形式來存儲數(shù)據(jù)值,可變長整數(shù)由1個~9個字節(jié)組成。事實上,當(dāng)分析刪除記錄時,SQLite保存的整數(shù)在可變長度區(qū)域可能模糊定位。因此,恢復(fù)刪除的數(shù)據(jù),每個單元的可變長度區(qū)域的精確長度必須被識別。
圖1 B+tree葉子頁單元結(jié)構(gòu)
當(dāng)SQLite刪除數(shù)據(jù)發(fā)生后,SQLite重新初始化單元的前4個字節(jié),其中前2個字節(jié)表示下一個自由塊的偏移量,后2個字節(jié)表示這個自由塊的大小。
SQLite規(guī)定[11]:SQLite會對所有整型主鍵字段應(yīng)用自動增長屬性。針對該規(guī)定,對單元Payload中Type1進(jìn)一步說明:由于RowID值已經(jīng)在單元頭部保存,因此將Type1類型設(shè)為NULL(占1個字節(jié): 0x00),這樣既節(jié)省空間又容易保持?jǐn)?shù)據(jù)一致性。同時這樣給恢復(fù)數(shù)據(jù)帶來好處:由于刪除操作改變單元前4個字節(jié),且Type1是NULL,因此“有用的”Type(2~N)和Data區(qū)域均未改變。
圖2為刪除單元前4個字節(jié)修改后的幾種情況,由于PayloadSize、RowID、Header-size及Type均以可變長整數(shù)形式來存儲數(shù)據(jù)值,對上述“Type(2~N)和Data區(qū)域均未改變”結(jié)論做以下說明:
(1)若PayloadSize、RowID及Header-size每個區(qū)域占據(jù)1字節(jié),Type1值為“0x00”占據(jù)1個字節(jié),那么刪除操作發(fā)生后,前4個字節(jié)改變,Type(2~N)字段和Data區(qū)域未變;
(2)若PayloadSize、RowID及Header-size共占據(jù)4字節(jié),刪除操作發(fā)生后,前4個字節(jié)改變,存留有Type(1~N)字段和Data區(qū)域;
(3)若PayloadSize、RowID及Header-size共占據(jù)大于4個字節(jié),刪除操作發(fā)生后,前4個字節(jié)改變,PayloadSize、RowID及Header-size會遺留部分, Type(1~N)字段和Data區(qū)域全部存在。
圖2 刪除單元前4個字節(jié)修改后的情況
綜上所述,無論PayloadSize、RowID及Headersize每個區(qū)域占據(jù)多少字節(jié)(3個區(qū)域至少占據(jù)1個字節(jié)),Type(2~N)和Data區(qū)域均未改變。
恢復(fù)表中存儲的具體數(shù)據(jù),需要確定單元Payload中每個Type值來確定Data區(qū)域的數(shù)據(jù)信息。由于刪除修改單元前4個字節(jié),無法精確得知各字段大小。為了解決這個問題,根據(jù)刪除操作后Type(2~N)和Data區(qū)域均未改變,通過估算Type字段大小,確定預(yù)提取的數(shù)據(jù)對應(yīng)在表中的哪些字段中,來恢復(fù)數(shù)據(jù)。
在數(shù)據(jù)提取進(jìn)行之前,首先要獲得手機的最高權(quán)限。Android手機的短信息保存在mmssms.db文件中,若要恢復(fù)短信息,這里分兩大過程,首先要獲取mmssms.db文件,找到刪除區(qū)域;然后對刪除區(qū)域進(jìn)行估算分析。提取恢復(fù)過程具體如圖3所示。
圖3 數(shù)據(jù)提取流程
4.1 預(yù)提取數(shù)據(jù)所在的數(shù)據(jù)庫文件
連接手機后使用“adb pull”命令,可直接獲取數(shù)據(jù)庫文件。也可以在安卓開發(fā)工具 ADT中的DDMS下 “pull a file from the device”按鈕一鍵獲取。安卓平臺用戶數(shù)據(jù)存儲在data/data文件夾下,存儲有短信息、通信錄及通信記錄等數(shù)據(jù)庫文件,可根據(jù)需求進(jìn)行獲取。
4.2 刪除區(qū)域的收集
首先查找預(yù)提取表對應(yīng)的樹根頁,定位預(yù)提取數(shù)據(jù)所在區(qū)域。根據(jù)預(yù)提取表名可在sqlite_master表中得知其根頁編號。定位到根頁后分析Btree中所有的頁節(jié)點,根據(jù)頁頭中頁類型標(biāo)志找到所有B+tree葉子頁,即可依據(jù)頁的大小偏移量定位到預(yù)提取表的數(shù)據(jù)所在頁。頁頭結(jié)構(gòu)如表1所示。
表1 Btree頁頭格式
頁類型標(biāo)志:頁頭中的第一個字節(jié)是區(qū)分內(nèi)部頁和葉子頁的標(biāo)志位。該字節(jié)值為0x0D時,表示是B+tree的葉子頁;為0x05時,表示B+tree的內(nèi)部頁;為0x0A時,表示B-tree的葉子頁;為0x02時,表示B-tree的內(nèi)部頁。要找到預(yù)提取表所有B+tree葉子頁,根據(jù)頁類型標(biāo)志,找到頁啟始為“0D”標(biāo)志,即找到所有數(shù)據(jù)存儲區(qū)域。
其次解析預(yù)提取數(shù)據(jù)區(qū)域,收集所有刪除域。根據(jù)Btree頁頭格式,頁頭偏移為1的2個字節(jié)指向空閑塊鏈表的頭。由于空閑塊前2個字節(jié)指向下一個空閑塊,將單元內(nèi)容區(qū)域中沒有使用的空間收集起來形成一個空閑塊鏈表,依據(jù)空閑塊鏈表,可得到所有的空閑塊,即刪除域。
4.3 刪除區(qū)域的檢查
檢查刪除區(qū)域,并按單元對Type字段估算進(jìn)行提取。當(dāng)SQLite刪除數(shù)據(jù)發(fā)生后,SQLite重新初始化一個單元的前4個字節(jié)。如圖4所示,有顏色背景部分是一個單元的內(nèi)容。
圖4 單元刪除前后對比
刪除后無法精確各字段大小,需對各字段占據(jù)字節(jié)進(jìn)行估算分析。
對于單元的各字段的估算法,其偽代碼描述如下:
通過空閑塊鏈表,找出每個空閑塊,將每個空閑塊存儲到相應(yīng)的一維數(shù)組中,現(xiàn)在讀取一個數(shù)組,數(shù)組名為bb;查預(yù)提取表設(shè)定字段數(shù)量為k;初始從第i位開始讀數(shù)據(jù)(i=4)。
當(dāng)從數(shù)組第i位開始讀取,判斷其值大小來決定每個Type字段占據(jù)字節(jié)數(shù),以此類推往后讀取,直到讀了k次結(jié)束,計算k個Type值之和sum1及k個Type字段占據(jù)字節(jié)數(shù)目和b。通過Type區(qū)占據(jù)字節(jié)b以及單元頭未讀數(shù)目i,計算 sum2值,即為Type區(qū)域緊接的Data域大小。
匹配sum1和sum2值,相等則估算成功,否則估算失敗。繼續(xù)從第i+1讀取,依次匹配,直到bb數(shù)組結(jié)束為止。這樣最終確定預(yù)提取的數(shù)據(jù)對應(yīng)在表中的哪些字段中,就可從各字段中提取數(shù)據(jù)。
4.4 部分被覆蓋單元的恢復(fù)
如果上述匹配恢復(fù)不成功,說明有可能是部分被覆蓋或是幾個單元合成一個空閑塊,對空閑塊包含幾個單元的情況將其分割成一個一個單元進(jìn)行恢復(fù)。一個單元部分被覆蓋的情形如圖5所示。
圖5 單元部分被覆蓋
對一個單元部分被覆蓋的情形,恢復(fù)可能性根據(jù)被覆蓋率來決定。覆蓋率不能用一個精確的百分比數(shù)字來表示,因為一個單元的存儲實際數(shù)據(jù)區(qū)域(Data區(qū)域)的大小是根據(jù)實際情況動態(tài)分配的,但是對于覆蓋率可以根據(jù)實際情況用區(qū)域類型來描述。如圖5灰色部分所示,是Data區(qū)域部分被覆蓋的情形,現(xiàn)針對實驗部分所選實驗環(huán)境(android4.2模擬器),描述覆蓋率所指大致范圍。
刪除一條信息又進(jìn)入一條后,是從單元后部進(jìn)行覆蓋(如圖5灰色部分所示)。單元部分被覆蓋前后對比如圖6所示。在android4.2中,存儲短信息的表字段有17項,分別是_id,thread_id,address, person,date,date_sent,protocol,read,ststus,type, reply_path_present,subject,body,service_center, locked,error_code,seen。這17項占據(jù)Type區(qū)域,如圖6(a)方框標(biāo)記所示。這17個字段對應(yīng)圖5中的Type區(qū)域,即Type1~Type17,說明了Data區(qū)域的Data1~Data17的內(nèi)容具體信息。
圖6 單元部分被覆蓋前后對比
綜上所述,覆蓋率是指Data區(qū)域被覆蓋的范圍。由于一個單元的Data區(qū)域大小根據(jù)實際情況動態(tài)分配,因此不能用一個精確的定量關(guān)系來表示覆蓋率和可恢復(fù)程度之間的關(guān)系。用邏輯表示,可恢復(fù)程度根據(jù)Data區(qū)域覆蓋率的大小而定:覆蓋率越小,可恢復(fù)性越高;覆蓋率越大,可恢復(fù)性越低,直到Data區(qū)域完全被覆蓋,可恢復(fù)性為0。
4.5 盡最大努力恢復(fù)方法
若Data區(qū)域完全被覆蓋,則完全無法恢復(fù),但可知這里存在過短信息;若只覆蓋Data區(qū)域的一部分,那么恢復(fù)數(shù)據(jù)是有可能的。但對于這片區(qū)域,由于刪除后改變了單元頭內(nèi)容,無法精確定位Data區(qū)域從哪里開始、到哪里結(jié)束以及每個數(shù)據(jù)類型占據(jù)字節(jié)數(shù),提出使用“盡最大努力恢復(fù)”方法來恢復(fù)。
所謂的盡最大努力恢復(fù)方法,實際就是將這個無法精確分段的整片區(qū)域從頭到尾完全轉(zhuǎn)譯,之后在轉(zhuǎn)譯后的數(shù)據(jù)信息中進(jìn)行語義分析,找到有用的數(shù)據(jù)信息、識別電話號碼等。
如圖6(a)所示,偏移量從23B5~23FF是之前一條短信息存儲單元,后被23D6~23FF這條短信單元部分覆蓋。如圖6(b)所示,灰色部分為新進(jìn)信息單元,橢圓框是原信息被覆蓋后Data域剩余部分。從右邊的“1399487xxxx”可發(fā)現(xiàn),信息中的電話號碼仍存在,而短信內(nèi)容被覆蓋。
5.1 實驗驗證
為了證明上述恢復(fù)方法的可行性,將通過實驗對該方法進(jìn)行驗證。實驗選取4.2版本android手機模擬器作為實驗對象,使用SQLite數(shù)據(jù)庫瀏覽器以及WinHex作為輔助,以提取短信息內(nèi)容為目的,運用安卓開發(fā)工具ADK來對底層數(shù)據(jù)庫文件進(jìn)行解析。作為刪除數(shù)據(jù)恢復(fù)的對比,分別從邏輯提取和物理提取2個方面進(jìn)行提取分析。最后針對部分被覆蓋的信息進(jìn)行單獨提取恢復(fù)。
為實現(xiàn)結(jié)果清晰明了,現(xiàn)對sms表中信息設(shè)置如下:
(1)從手機終端加入4條短信息,其中第一條短信息較長,獲取mmssms.db文件;
(2)從手機終端刪除 2條短信息,獲取mmssms.db文件;
(3)從手機終端再加入1條較短的信息,獲取mmssms.db文件。
5.2 邏輯提取分析
邏輯提取[12](logical acquisition)是在當(dāng)前文件目錄下尋找相關(guān)證據(jù),不涉及刪除的信息。所有與應(yīng)用程序相關(guān)的信息都存放在/data/data目錄下,安卓系統(tǒng)短信息存儲在datadatacom.android.providers. Telephonydatabases下。利用ADB命令可將其取出。圖7和圖8分別是最初的4條短信息和刪除2條后的結(jié)果。
圖7 4條短信息的邏輯提取
圖8 2條短信息的邏輯提取
5.3 物理提取分析
物理提取(physical acquisition)是指用一定的方式從鏡像文件或底層數(shù)據(jù)存儲文件中尋找并恢復(fù)刪除的數(shù)據(jù)。圖 9是刪除 2條短信后的提取恢復(fù)結(jié)果。
圖9 刪除的2條短信恢復(fù)結(jié)果
5.4 部分被覆蓋提取分析
在實驗設(shè)置中,最后加入一條較短信息,其目的是實現(xiàn)刪除的較長信息被較短信息部分覆蓋后的恢復(fù)。先來用WinHex分析底層文件,分析如圖10所示。
在圖10中,圖10(a)偏移量9F29~9FFF是最初刪除的較長短信存儲區(qū)域,存儲空間大小為00D7。圖10(b)畫框部分,偏移量9FB7處開始,直到9FFF結(jié)束,是新進(jìn)入短信單元,占73 Byte。這個自由塊的大小由之前的00D7(215 Byte)變?yōu)?08E (142 Byte)。
圖10 刪除信息被覆蓋前后對比
由于Data區(qū)域未被全部覆蓋,恢復(fù)是可能的。圖11是部分被覆蓋后恢復(fù)的結(jié)果,可根據(jù)語義分析或常識來判斷,電話號碼是“1364-X”,部分短信息內(nèi)容為“今天是您的生日,愿所有的快樂,所有的幸福,所有的溫馨,所有的好運”。
圖11 部分被覆蓋后的恢復(fù)結(jié)果
5.5 結(jié)果分析
本文采用的實驗環(huán)境是android4.2,實驗數(shù)據(jù)是發(fā)送的多條短信,包括刪除的和未刪除的。最后用訓(xùn)練好的參數(shù)實現(xiàn)物理提取,獲取信息條數(shù),將實際添加的信息和提取結(jié)果相比較,驗證探測估算法和“盡最大努力恢復(fù)”法相結(jié)合的有效性及精確度。
5.5.1 提取性能的對比
從表2的數(shù)據(jù)可看出,“暴力估算”信息提取率為93%。而本文方法不僅對手機中刪除的信息能夠恢復(fù),并且對刪除信息部分被覆蓋的數(shù)據(jù)也能部分恢復(fù),信息提取率提升到95%。即在手機終端無法看到25%的信息,通過探測估算結(jié)合盡最大努力恢復(fù)方法后,可以大部分恢復(fù)提取。
表2 提取性能的對比
5.5.2 恢復(fù)性能對比
從表3的數(shù)據(jù)可看出,“暴力估算”能提取刪除的短信息,信息提取率為92%,對刪除的25條信息,實際恢復(fù)了18條,恢復(fù)率為72%。通過探測估算結(jié)合盡最大努力恢復(fù)方法,對刪除的25條信息,實際恢復(fù)20條,恢復(fù)率達(dá)到80%,恢復(fù)信息條數(shù)增加,恢復(fù)率提高。
表3 恢復(fù)性能的對比
總之,由提取結(jié)果分析得出:本文提出的恢復(fù)方法可以對手機中現(xiàn)存的信息、刪除的信息以及刪除部分被覆蓋的短信息進(jìn)行較為準(zhǔn)確的獲取,提取率及恢復(fù)率優(yōu)于僅估算PayloadSize、RowID及Headersize占據(jù)字節(jié)大小來恢復(fù)刪除記錄的“暴力估算”恢復(fù)方法。并且本文對于部分被覆蓋的單元使用盡最大努力恢復(fù)法,恢復(fù)部分被覆蓋的已刪信息,進(jìn)一步提高恢復(fù)率。
依據(jù)SQLite存儲的數(shù)據(jù)刪除后并未進(jìn)行物理刪除,采用數(shù)據(jù)庫恢復(fù)技術(shù),可進(jìn)行刪除數(shù)據(jù)恢復(fù)提取。本文根據(jù)探測估算恢復(fù)表中每個Type字段占據(jù)字節(jié)大小,結(jié)合盡最大努力恢復(fù)的方法,對刪除數(shù)據(jù)及刪除數(shù)據(jù)部分被覆蓋的信息進(jìn)行恢復(fù)提取。此外,盡最大努力恢復(fù)方法針對部分覆蓋的短信息,在不改變信息提取精確度的前提下,為恢復(fù)部分覆蓋的短信息提供了可能。本文方法是針對數(shù)據(jù)提取與恢復(fù),對于司法部門,提取與恢復(fù)的數(shù)據(jù)將作為證據(jù)被法庭采用,需要保證數(shù)據(jù)的可采性與真實性。所以下一步的研究工作是實現(xiàn)證據(jù)提取過程中數(shù)據(jù)的完整性,即進(jìn)一步提高恢復(fù)數(shù)據(jù)的可采性。
[1] 張明旺.基于手機的電子證據(jù)獲取技術(shù)研究[J].電腦知識與技術(shù),2012,13(8):3093-3095.
[2] Paul M C.Forensic Analysis of Mobile Phones[D]. Adelaide,Australia:University of South Australia,2005.
[3] Svein W.Forensic Analysis of Mobile Phone Internal Memory[J].Advances in Digital Forensics,2006, (194):191-204.
[4] Marcel B,Coert K.Forensic Data Recovery from Flash Memory[J].Small Scale Digital Device Forensics Journal,2007,1(1):1-17.
[5] Jonkers K.The Forensic use of Mobile Phone Flasher Boxes[J].Digital Investigation,2010,(6):168-178.
[6] Jansen W,Ayers R.Guidelines on Cell Phone Forensic: Recommendations of the National Institute of Standards and Technology[EB/OL].[2013-09-20].http:// www.docin.com/p-437911651.html.
[7] 趙亞杰,陳 龍.面向手機取證的細(xì)粒度數(shù)據(jù)完整性檢驗方法[J].計算機工程與設(shè)計,2012,33(11): 4091-4094.
[8] Pereira M T.Forensic Analysis of the Firefox 3 Internet History and Recovery of Deleted SQLite records[J]. Digit Investigation,2009,5(3):93-103.
[9] Jeon S,Bang J,Byun K.A Recovery Method of Deleted Record for SQLite Database[J].Pers Ubiquit Computer,2012,16(6):707-715.
[10] Hipp D R.The SQLite Database File Format[EB/OL]. (2013-05-30).http://www.sqlite.org/fileformat.html.
[11] Owens M.TheDefinitiveGuidetoSQLite[M]. New York,USA:Springer-Verlag,2006.
[12] 姚 偉,沙 晶.Android智能手機的取證[J].中國司法鑒定,2012,(1):45-49.
編輯 索書志
Research on Recovery Method of Deleted Data for Android System
FANG Dong-rong,ZHANG Qiu-yu,DONG Rui-hong,WEN Sen
(School of Computer Technology and Communication, Lanzhou University of Science and Technology,Lanzhou 730050,China)
With the development and the wide application of mobile communication technology,mobile phone crimes become a new trend,and mobile phone forensics is an effective means to crack down on mobile phone crimes.In view of the problems that the traditional method calling API directly cannot restore the data of Android mobile phone and existing methods cannot restore the deleted data that section covered,through deep analysis of Android SQLite database file structure and the addressing mode of data record,the method that detects and estimates each Type field in the table is proposed.This method uses extraction recovery to process deleted data,combines“restore method with best effort”to discuss the recovery possibility of the deleted data that part covered,and obtains the deleted data.This method is carried out on the Android emulator.Experimental result shows that this method can restore deleted data successfully,and compared with traditional algorithm,it improves the recovery rate of deleted data with no affection of the information extraction accuracy.
mobile phone forensics;Android system;SQLite database;data deletion;logical extraction;physical extraction
1000-3428(2014)10-0275-06
A
TP309
10.3969/j.issn.1000-3428.2014.10.051
方冬蓉(1988-),女,碩士研究生,主研方向:電子取證;張秋余,研究員、博士生導(dǎo)師;董瑞洪,副教授;文 森,工程師。
2013-08-12
2013-10-07E-mail:fangdrgo@163.com
中文引用格式:方冬蓉,張秋余,董瑞洪,等.Android系統(tǒng)刪除數(shù)據(jù)恢復(fù)方法研究[J].計算機工程,2014,40(10):275-280.
英文引用格式:Fang Dongrong,Zhang Qiuyu,Dong Ruihong,et al.Research on Recovery Method of Deleted Data for Android System[J].Computer Engineering,2014,40(10):275-280.