亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        iPhone短信刪除數據恢復方法的研究

        2015-05-15 10:10:48張開翔周安民
        現代計算機 2015年1期
        關鍵詞:數據庫結構

        張開翔,周安民

        (四川大學電子信息學院,成都 610064)

        iPhone短信刪除數據恢復方法的研究

        張開翔,周安民

        (四川大學電子信息學院,成都 610064)

        SQLite是一款輕型的數據庫引擎,資源耗損低、運行速度快、功能強大、支持Windows/Linux/UNIX等主流的操作系統(tǒng),被廣泛應用于通信錄、通話記錄、手機短信、QQ聊天記錄等多種應用中。通過分析iOS系統(tǒng)SQLite數據庫的文件格式和數據記錄的尋址方式,提出一種iPhone手機刪除短信的恢復方法。結果表明,這種恢復刪除數據的方法可以用于恢復iPhone短信數據庫中的文本數據。

        SQLite;iOS系統(tǒng);文件格式;數據恢復

        0 引言

        隨著終端設備和移動通信技術的發(fā)展,智能手機逐漸成為人們生活與工作中的必備工具。它擁有獨立的操作系統(tǒng),市面上流行的操作系統(tǒng)主要有iOS、Android、Windows Phone等。而iPhone憑借其精美的工藝設計和穩(wěn)定的系統(tǒng)性能成為最暢銷的智能手機。

        與此同時,手機犯罪也應運而生,手機取證成為打擊該類犯罪的科學手段。在涉及手機取證的案件中,嫌疑人通常會將與案件有關的重要信息刪除,而這些短信卻是跟蹤案件進展的關鍵推動點。鑒于新形勢下的迫切需要,提取智能手機的電子數據正逐步成為電子取證領域新的研究方向和熱點。本文結合實際情況,提出了基于SQLite內部機制解析的iPhone手機短信提取和恢復的方法。

        1 SQLite數據庫

        SQLite是一款輕量級嵌入式的關系型數據庫,特點是操作簡單、性能可靠以及可移植性好,目前在iOS、Android等手機操作系統(tǒng)中被廣泛使用。

        1.1 物理結構

        SQLite數據庫文件由固定大小的“頁”組成,默認大小為1024個字節(jié)(1KB)。頁大小可以在數據庫剛剛創(chuàng)建時設置,數據庫對象一旦創(chuàng)建該值就無法更改。

        頁的類型主要有三種,分別是Btree頁、空閑頁和溢出頁,Btree頁又可以是B-tree頁或B+tree頁。每種Btree頁又區(qū)分為內部頁或葉子頁。此外,所有的數據庫文件中必然包含Btree頁。

        (1)頁頭

        從邏輯上來說,一個SQLite數據庫文件由多個多重Btree構成。每個Btree存儲一個表的數據或索引,索引常用B-tree結構,而表數據采用B+tree結構。每個Btree占用至少一個完整的頁,每個頁是Btree的一個結點。每個表或索引的第1頁稱為根頁,所有表或索引的根頁編號都存儲在系統(tǒng)表sqlite_master中,表sqlite_master的根頁為Page 1。它位于文件中前100字節(jié),所以也叫數據庫文件頭。數據庫文件頭結構如表1所示。

        (2)Btree頁

        Btree頁主要由頁頭、單元指針、未分配空間、單元內容區(qū)域、保留區(qū)域組成,頁結構見表2所示。

        對于內部頁,Btree頁頭占12個字節(jié)。對于葉子頁,Btree頁頭占8個字節(jié)。Btree頁頭的結構組成如表3所示。

        表1 SQLite數據庫文件頭結構

        表2 Btree頁結構

        表3 Btree頁頭結構

        1.2 SQLite刪除數據庫恢復原理

        手機中的數據通過數據庫瀏覽器可直接查看,而已刪除的手機數據卻無法看到。如果已刪除數據所在頁面存在未被刪除數據,刪除數據區(qū)域只是變成了freeblock塊而并未被真正刪除,數據庫文件大小也未變,就有可能對其進行恢復。所以對SQLite數據庫文件結構進行分析是恢復已刪除數據的前提。圖1是Btree頁樹形結構,根頁和內部頁主要用于導航,其頁的指針域都是指向葉子頁的指針,而所有的數據記錄都存儲在葉子頁中,包括刪除的數據。

        在邏輯層,數據都存儲在數據庫的表結構中。而在物理層,Btree樹形結構又是由基本的頁組成,因而數據最終存放在各頁中?;謴偷木唧w過程:

        (1)確定被刪除的數據所在表名。

        (2)通過sqlite_master系統(tǒng)表查找該表的根頁。

        (3)按照Btree頁的樹形結構,遍歷所有節(jié)點,找到內部頁和葉子頁。

        (4)分析葉子頁的頁頭結構,提取出葉子頁中freeblock自由塊的數據。

        圖1 Btree樹形結構

        2 數據恢復與提取過程

        2.1 提取短信

        數據恢復的首要步驟就是提取出iPhone手機中的短信,越獄系統(tǒng)中短信路徑是/private/var/mobile/Library/SMS/sms.db,再根據SQLite的數據格式進行靜態(tài)分析和數據恢復。目前,提取iPhone數據的方法主要有以下3種:iTools的高級備份、ssh-client遠程登錄、手機助手提取。iTools的超級備份操作簡單,而且無需手機越獄,可以直接提取出sms.db文件,本文使用的就是這種方法。具體的導出過程如圖2所示。

        圖2 iTools提取手機短信

        2.2 數據恢復

        (1)定位刪除數據

        ①查找被刪除數據的表名

        要想恢復被刪除的短信內容,首先需要確定被刪除數據的表名。由于SQLite是開放型的數據庫,通過數據庫命令行工具或軟件查閱器都能獲取到sms.db中的表名和其基本信息。在DOS命令行下查看數據庫文件使用.schema命令查看數據庫中的表。另外,使用SQLite Database Browser也可以看到數據庫的邏輯結構,具體情況如圖3所示。無論是從命令規(guī)則還是表的內容都可以斷定message表用以存放短信內容。

        圖3 sms.db文件表信息

        ②定位刪除數據所在表的根頁

        SQLite數據庫中每個表的第一頁稱為根頁,所有表的根頁編號都存儲在系統(tǒng)表sqlite_master中,它保存了數據庫的schema信息。具體做法是將提取的sms.db用二進制工具將其打開,分析文件頭的數據信息,找到頁的大小。然后根據系統(tǒng)表sqlite_master的rootpage字段中找到表的根頁,根頁的起始地址=頁的大小*(根頁-1)。另外,在SQLite命令行下鍵入“select rootpage from sqlite_master where name="message"”也可以得到表的根頁,操作方法如圖4所示。

        圖4 SQLite命令行下查看表根頁

        ③遍歷Btree頁的所有內部頁和葉子頁

        SQLite數據庫中表數據通常采用B+tree結構,數據只存在于葉子頁上,內部頁只存儲導航信息。B+tree所有的葉子頁都在同一層上,并按關鍵字排序,所有的關鍵字必須唯一,其邏輯結構舉例如圖5所示。

        圖5 Btree邏輯結構圖

        B+tree中根頁和內部頁都是用來導航的,它們的指針域都是指向下級頁的指針,數據域僅僅包含關鍵字。所有的數據庫記錄都存儲在葉子頁內。在葉節(jié)點一級,頁和頁內的單元都是按照關鍵字的順序排列的,所以B+tree可以沿水平方向遍歷。圖6是內部頁的邏輯結構。

        圖6 內部頁邏輯結構

        內部頁包含N個關鍵值(Key(0)~Key(N-1))和N+1個子頁指針(Ptr(0)~Ptr(N)),其值為子頁的頁號。其中,Ptr(N)存儲在頁頭中偏移為8的地方。其他的每對子頁指針和關鍵值(Ptr(i)和Key(i))組成1個單元,共N個單元。Ptr(i)所指向子樹中關鍵字的最大值≤Key(i),Ptr(N)所指向子樹中關鍵字的值都〉Key(N-1)。

        將提取的sms.db用010EdiTor打開,圖7所示為依據根頁找到的內部B+tree頁的16進制數據流。首字節(jié)0x5表示本頁是B+tree內部頁,偏移3字節(jié)后0x002c表示本頁的單元數為44個,0xf1a表示單元內容區(qū)的起始地址。偏移12字節(jié)開始從0xffb~0xf1a為44個葉子頁的指針數組的偏移。

        圖7 B+tree內部頁頭數據

        以本頁首個單元內容區(qū)為例,其偏移量為0xf1a,則實際地址為0x4f1a,具體的數據流信息如圖8所示。每個單元內容區(qū)由兩部分組成,4個字節(jié)的頁號和1個字節(jié)的關鍵字。0x52是其葉子頁的頁號。關鍵字是0x68,說明葉子頁中的關鍵字均小于0x68。

        圖8 B+tree內部頁單元內容區(qū)

        (2)提取和恢復數據

        當確定好message表的所有葉子頁后,表中全部的數據信息就存儲在其中了,結合頁頭的控制字段就能定位到該頁的自由塊的數據,然后轉換成UTF-8的編碼方式就能提取和恢復出被事務臺刪除的短信。

        根據B+tree的頁面結構,頁面中所有的數據都存儲在單元內容區(qū)。從事務臺刪除的短信其實仍然存在于數據庫文件中,只是它們已經被標記成自由塊。只要該頁存在未被刪除的數據,自由塊的偏移量就會填充到頁頭的相應字段中。因此,提取被刪除的數據關鍵在于定位這些自由塊的位置,然后結合單元內容區(qū)的格式提取出被刪除數據。某葉子頁的頁頭數據如圖9所示。

        圖9 葉子頁頭部數據

        在該頁中,首個freeblock塊的偏移量是0xd22,該數據庫的頁大小為0x1000字節(jié),當前頁的編號為0x4b,那么freeblock的實際地址=0x1000*0x4b+0xd22 =0x4bd22,查看該地址處數據如圖10所示。

        圖10 自由塊數據流

        圖中標藍的部分就是要提取的刪除的數據。單元的前2個字節(jié)指向下一個空閑塊,此處值為0,表示該頁中僅有當前自由塊。后兩個字節(jié)為0x02de,表示該自由塊的大小,同時包含這兩個字節(jié)本身。從0x0055開始起為被刪除數據的存儲區(qū)。

        葉子頁中,單元是可變的字符串,且每個單元包含一個payload,payload的具體格式如表4所示:

        表4 payload的具體格式

        每個payload主要分成兩部分。第1部分是記錄頭,由N+1個可變長整數組成,N為記錄中的字段數。第1個可變長整數(header-size)的值為記錄頭的字節(jié)數。跟著的N個可變長整數與記錄的各字段一一對應,表示各字段的數據類型和寬度。header-size的值包括header-size本身的字節(jié)和Type1~TypeN的字節(jié)。Data1~DataN為各字段數據,與Type1~TypeN一一對應,類型和寬度由Type1~TypeN指定。

        對刪除數據的16進制數據流進行UTF-8解碼,轉換成文本漢字如圖11所示。

        圖11 還原后的短信文本

        3 實驗方法對比

        為驗證本文恢復方法的有效性,將通過實驗對比來進行論證。一種方式是暴力提取法,結合目前流行的蘋果手機數據恢復軟件和底層數據庫或鏡像文件,恢復出被手機終端刪除的短信。另一種方法就是本文提出的邏輯提取法,在充分解析數據庫的文件格式基礎上,定位到刪除數據對應區(qū)域再進行提取和恢復。實驗中使用的手機是iPhone 4,操作系統(tǒng)版本為iOS 7.1.2,另外使用SQLite數據庫瀏覽器、010EdiTor以及蘋果手機數據恢復軟件作為輔助,并且事先已通過手機終端刪除了24條短信。

        3.1 暴力恢復

        暴力提取法是通過蘋果手機數據恢復軟件對短信文件進行分析,然后根據分析結果從短信文件暴力中搜索頭三個關鍵字,找到后將該條短信內容全部提取出來。

        (1)使用蘋果手機數據恢復軟件分析sms.db,重點查看被刪除的短信。圖12是分析結果,包含正常短信和刪除短信的信息。其中刪除短信項僅顯示前三個關鍵字。

        圖12 蘋果手機數據恢復軟件分析sms.db結果

        (2)使用notepad++打開sms.db,將編碼格式設置成UTF-8,根據上步操作查找到的被刪除短信的頭三個關鍵字在短信文件中進行搜索,一旦匹配成功就提取出全部文本信息,搜索過程如圖13所示。

        圖13 notepad++搜索關鍵字樣例

        圖14 邏輯法恢復的刪除短信結果

        圖14顯示了用notepad++搜索關鍵字的樣例結果,通過這種暴力搜索的方式找到了蘋果手機數據恢復工具分析結果中被刪除短信的全部文本信息。即說明該工具的數據恢復功能是可行的,最大程度恢復了17條被刪除短信。

        3.2 邏輯恢復

        邏輯提取法是通過對數據庫文件格式進行充分解析后,依據其樹形結構并以SQLite數據庫工具為輔,依次定位到短信數據頁、被刪除單元入口以及有效載荷所在的數據區(qū)域,然后對有效載荷的結構進行解析后提取被刪除短信的基本信息。具體的提取方法如前,圖14是被刪除短信的恢復結果。

        3.3 性能對比

        從表5的數據可知,邏輯恢復比暴力恢復的性能更高。對于被刪除的24條短信,實際恢復了17條,暴力法的恢復率是70.83%。而本文提出的邏輯法的恢復率則是20,對于被刪除的24條短信,邏輯法的恢復率是83.33%。

        表5 恢復性能的對比

        總之,由恢復結果對比分析得出:本文提出的邏輯恢復法可以對短信數據庫文件中現有的信息、刪除的信息進行更為準確的獲取,恢復率優(yōu)于暴力提取法。

        4 結語

        綜上所述,通過對SQLite數據庫文件格式進行分析,能夠恢復出iPhone手機被刪除的短信。本文詳細研究了Btree頁邏輯結構、單元結構、payload結構,并結合iPhone手機短信為例恢復刪除的文本記錄。此方法同樣適用于Andriod或其他系統(tǒng)上SQLite數據庫文件的文本數據恢復,包括電話薄、通話記錄、QQ聊天記錄和微信聊天記錄等,為其他基于SQLite的手機數據恢復工作提供了參考。

        [1] 張婷,張輝極.智能手機安全問題及防護激素和分析[J].信息網絡安全,2011,12

        [2] 張明旺.基于手機的電子證據獲取技術研究[J].電腦知識與技術,2012,13(8):3093~3095 [3]姚偉,沙晶.Andriod智能手機的取證[J].中國司法鑒定,2012(1):45~49

        [4] 高峰.iPhone手機取證的應用研究[J].警察技術,2011,5

        [5] 張志偉.MTK手機Flash芯片文件系統(tǒng)恢復研究[J].信息網絡安全,2011,11

        [6] 伍國良.數據存儲及恢復的基本原理[J].今日科苑,2008(18):171~172

        [7] 蘇芊.iOS終端數字取證研究[D].上海:上海交通大學,2012

        [8] 田亞成.智能手機取證研究[J].警察技術,2011(03):38-41

        [9] Ivo Pooters,Pascal Arends,Steffen Mooorrees.Extracting SQLite records[Z],2011

        [10] The SQLite Database File Format,2013.http://www.sqlite.org/[Z]

        Research on the Data Recorvery Method of Deleted SMS for iPhone

        ZHANG Kai-xiang,ZHOU An-min
        (Department of Electronic Information,Sichuan University,Chengdu 610064)

        As a fast,powerful and low resource consumption lightweight database engine,SQLite supports mainstream operating system such as Windows,Linux and UNIX.SQLite is widely used in variety of applications,such as contacts,call records,short message and QQ chat log.Provides an approach to recover deleted SMS by analyzing SQLite file format and addressing way of data records.The results show that the method of data recovery is capable for recovering data text for iPhone.

        SQLite;iOS System;File Struct;Data Recovery

        1007-1423(2015)01-0003-06

        10.3969/j.issn.1007-1423.2015.01.001

        張開翔(1990-),男,四川南充人,碩士研究生,研究方向為信息系統(tǒng)安全理論與技術

        周安民(1963-),男,四川成都人,碩士生導師,研究方向為信息安全關鍵技術和核心產品工程

        2014-12-16 修稿時期:2014-12-23

        猜你喜歡
        數據庫結構
        《形而上學》△卷的結構和位置
        哲學評論(2021年2期)2021-08-22 01:53:34
        論結構
        中華詩詞(2019年7期)2019-11-25 01:43:04
        新型平衡塊結構的應用
        模具制造(2019年3期)2019-06-06 02:10:54
        數據庫
        財經(2017年15期)2017-07-03 22:40:49
        數據庫
        財經(2017年2期)2017-03-10 14:35:35
        論《日出》的結構
        數據庫
        財經(2016年15期)2016-06-03 07:38:02
        數據庫
        財經(2016年3期)2016-03-07 07:44:46
        數據庫
        財經(2016年6期)2016-02-24 07:41:51
        創(chuàng)新治理結構促進中小企業(yè)持續(xù)成長
        一本一道波多野结衣av中文 | 亚洲国产成人91| 麻豆AV无码久久精品蜜桃久久 | 久久久久香蕉国产线看观看伊| 中文字幕在线亚洲一区二区三区| 亚洲av一区二区国产精品| 国产黄色一区二区在线看| 亚洲精品蜜夜内射| 欧美性videos高清精品| 亚洲欧洲国无码| 日本少妇熟女一区二区| 国产成人精品2021| 色偷偷一区二区无码视频| AV在线中出| 国产精品女同一区二区软件| 乱中年女人伦av三区| 色先锋资源久久综合5566| 永久免费的拍拍拍网站| av在线天堂国产一区| 插我一区二区在线观看| 国产精品久久久久久久久KTV| 亚洲国产综合精品久久av| 日本最新一区二区三区在线| 在线天堂www中文| 北条麻妃在线视频观看| 最新国产主播一区二区| 国产综合精品久久99之一| 国产成人综合久久亚洲精品| 日本少妇按摩高潮玩弄| 国产少妇高潮在线视频| 凹凸国产熟女精品视频app| 亚洲暴爽av人人爽日日碰| 国产亚洲曝欧美不卡精品| 国产成人大片在线播放| 午夜福利啪啪片| 欧美伊人亚洲伊人色综| 久久99免费精品国产| 亚洲av乱码一区二区三区按摩| 人人妻人人澡人人爽人人精品电影 | 小荡货奶真大水真多紧视频| 亚洲中文字幕在线爆乳|