999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于SQLite3的Android手機數據恢復技術研究

2019-11-11 13:14:38吳玉強王旭
電腦知識與技術 2019年27期
關鍵詞:數據庫

吳玉強 王旭

摘要:目前在我國的手機市場上,智能手機主要以IOS、Android為操作系統,其中Android手機中,短信、通話記錄、圖片等多種媒體的存儲方式,都是運用SQLite3數據庫進行數據存儲。以SQLite3 for Android數據庫為主要研究對象,分析其邏輯結構與物理結構,研究數據庫的存儲構架,實驗剖析手機數據的存儲刪除在底層數據結構上的表現,同時尋找被刪除的殘存文件,研究SQLite3數據恢復技術的可行性。

關鍵詞:SQLite3;數據庫;Android;數據恢復

中圖分類號:TP392? ? ? ? 文獻標識碼:A

Abstract: At present, in China's mobile phone market, smartphones mainly use IOS, Android as the operating system. In Android phones, the storage methods of SMS, call records, pictures and other media are all based on SQLite3 database for data storage. Taking the SQLite3 for Android database as the main research object, this paper analyses its logical and physical structure, studies the storage structure of the database, analyzes the performance of the storage and deletion of mobile phone data on the underlying data structure, and searches for the deleted residual files, and studies the feasibility of the data recovery technology of SQLite3.

Key words: SQLite3; database; Android; data recovery

在Android手機取證中,對于未刪除的Android智能手機數據,調用手機API,便能獲取。但是對于已經刪除的數據信息,這種調用API的手段顯然是無法獲取的。而在對手機進行取證的很多案件中,我們發現絕大多數的犯罪嫌疑人都會刪除很多與案件有關的信息,而往往這些數據都是認罪定性的關鍵。因此,對手機的取證,我們不僅僅是要拿到那些未刪除的數據,而對于那些已刪除的很多數據,如何將其復原或是獲取,則是取證工作的重中之重。本文從SQLite數據庫的邏輯結構和物理結構兩個角度展開研究,以邏輯結構的研究為輔,物理結構的研究為主,了解SQLite在物理層面上的數據存儲原理。研究以B-tree樹形結構為基礎的SQLite數據庫文件的底層數據存儲規則,發現被刪除的數據,即“空白頁”中數據存在的可能性,以及嘗試性恢復。同時,對收集數據進行刪除,查看其底層數據的變化情況,研究SQLite數據庫被刪除文件恢復獲取的可能性。

1 Android手機數據恢復技術概述

1.1 Android系統概述

Android系統和Windows一樣,有著可視化的用戶界面和操作系統,Android系統的運行,其實是建立在虛擬機中,運行時需要調用Java語言庫。與Windows的存儲方式不同的是,應用程序以APK的形式保存在Android中。在Android系統的構架中,最底層的為Linux的內核層,再往上便是系統運行的階層,之后便是構成應用程序框架的程序框架層,最后便是頂層的應用程序層。

1.2 數據恢復概念

計算機中,在刪除、格式化等操作下,丟失的數據是可以恢復的,手機數據恢復的道理也是這樣。數據刪除的時候,系統在文件分配表上對該數據做上“已刪除 ”的標記,保留數據的空間,不會被占用。但是當數據被徹底刪除時,系統不會對數據空間進行保留,再次寫入可能會造成覆蓋的情況出現。

格式化與刪除相似,在文件分配表上進行操作,將所有文件進行“刪除”標記,或者清空分配表,系統會認為數據空白,但真實的數據卻依然存在。數據恢復的理論基礎,便是對數據表的恢復,和在空白扇區搜索數據。當計算機系統無法進入、硬盤的磁盤出現損壞導致壞道、文件無法打開、文件內容亂碼等現象的出現,意味著數據可能出現了丟失。

2 SQLite3數據庫架構

2.1 SQLite3數據庫的邏輯結構

SQLite數據庫由邏輯模式、存儲模式、用戶模式這3個模式結構組成。并且,SQLite數據庫又分為3大子系統,以及8個獨立的模塊結構組成。

2.2 SQLite3數據庫的物理結構

多重的Btree結構,構成了SQLite數據庫文件的架構。Btree是一種磁盤存儲樹形結構,它的存在是為了優化磁盤的存儲。一個Btree結構便是一張表,或是一個索引。在SQLite數據庫文件中,表的數據與索引,兩者的結構是不同的,表數據的結構為B+Tree;索引的結構為B-Tree。Btree結構的計算節點為頁,所以Btree最小也會有一頁的大小。根據存儲介質的不同,對“頁”的大小的定義也不相同,許多磁盤的定義一頁為1024字節,但是本次實驗的磁盤中,定義一頁的大小為4096字節。“根頁”位于數據庫的起始位置。數據區的內容存儲在Payload中,為平級向后鋪列。

3 基于SQLite3的Android手機數據恢復實驗

SQLite3數據庫文件在文件大小小于一頁的情況下(本次實驗中的一頁為4096字節),即使再次寫入,也不會發生覆蓋。而當刪除內容大于一頁時,也就是4096字節,該頁會被定義為空白頁,再次寫入,會造成覆蓋。根據SQLite3數據庫數據的存儲結構和原理,被刪除的數據是可通過地址查找,找到刪除的數據,從而進行提取。通過winhex查看Android手機中對應的數據庫文件,搜索數據庫中各表的位置,從而發現刪除的存儲區域。Android手機的通訊錄、短信、照片等數據,都是通過SQLite3數據庫進行管理,本實驗將對手機短信數據庫(mmssmms.db)進行分析研究。

3.1 SQLite3數據庫文件分析實驗

3.1.1鏡像制作

通過手機鏡像制作工具,對手機制作物理鏡像。手機品牌:華為;型號:MT7-CL00,手機系統:Android 6.0。

3.1.2 數據庫根頁分析

使用winhex打開鏡像文件userdata.dd,在\data\com.android.providers.telephony\databases目錄下,找到短信數據庫文件mmssms.db。根頁磁盤的情況如圖1中選中區域所示:

3.1.3 SQLite_master表分析

SQLite_master表情況如圖3-1中未選中區域所示。其中,0X05:本頁為內部頁;0X0000:第1個自由塊的偏移量。此處為0,表示本頁沒自由塊;0X0008:本頁總計8個單元;0X0FD8:該單元的起始位置:4056(絕對地址),12字節后,0X0FFB、0X0FF6、0X0FF1、0X0FEC、0X0FE7、0X0FE2、0X0FDD、0X0FD8分別為8個單元的起始位置;0X00:碎片的字節數,此處為0;0X0000005D:最后子葉的單元指針頁號。由于本頁有8個單元,所以此處即指針(8)。其值為0X005D,即指針(8)指向第93頁。第93頁是表數據的最后一頁。在0X0FD8后可以看到還有16個字節信息,這些信息就是被覆蓋前的原始信息。

3.1.4 單元內容區分析

6558D000+FD8=6558DFD8,得到單元內容區的起始地址為6558DFD8。

手機短信數據庫mmssms.db的B+Tree的結構如表1所示:

3.1.5 葉子頁分析

此時Payload數據的前四個字節發生了改變,而短信內容沒有發生任何改變,前兩個字節表示下一個自由塊的起始地址為0X00;后兩個字節表示該自由塊的大小為0X00AD,173個字節,正好為刪除空間大小。

第二次實驗,為了與中文短信進行對比,我們用手機號183XXXX7703的手機給實驗手機發送了一條英文短信,短信內容為“this is a test,if received,succeed!!!949455”。

通過搜索,找到此段英文對應的數據區,其對應的Payload數據如圖7,英文字母在ascii中占2個字節,是可以直接顯示出來的。

同樣,對比圖7和圖8,前四個字節發生了變化,而數據內容沒有發生變化。改變的前四個字節所代表的含義是:1、前兩個字節表示下一個自由塊的起始地址0X00;2、后兩個字節表示該自由塊的大小0X0067,103個字節。可以發現自由塊的大小值比刪除前單元的記錄內容大小值多了2,也就是說自由塊的大小值記錄的是刪除前整個單元的大小。

3.3 數據覆蓋實驗

SQLite3數據庫在數據內容沒有達到“一頁”(一頁在本數據庫文件中為4096字節)的大小時,數據庫不會對數據進行重新整理,數據庫文件大小不變,而即使數據已經被刪除,也不會被覆蓋;而當刪除的內容達到一頁的大小時,會對數據進行重新整理,數據庫文件大小會變小,重新寫入,數據會被覆蓋。

我們依然選取交通銀行的短信作為實驗對象,以下是交通銀行短信的部分通知內容,如圖9所示。

現在,我們將手機中的短信全部刪除,刪除短信的大小遠遠超過了4096字節,再次對手機進行鏡像的制作,在鏡像中查看原地址的內容,和上述實驗結果一樣,只是文件頭發生了變化,具體圖省略。

接下來進行覆蓋實驗。我們將發送5條短信,每條短信中分別是500個a,也就是1000字節,五條短信的總大小就是5000字節。

再次制作鏡像,在原來地址處查看文件,文件的數據如圖10所示:

從上面的圖中可以發現,藍色區域的原始數據已經被覆蓋,而剩余區域沒有被覆蓋,仍然處于空白區域,未被寫入。

3.4 實驗總結

本次實驗,一共進行了四次實驗,分別是短信數據的逐層尋找,以及兩次刪除實驗,三次覆蓋實驗。其中,手機鏡像制作7次,中文短信刪除實驗前后對比需要兩次鏡像,英文短信刪除實驗需要兩次鏡像,以及后續的覆蓋實驗也需要兩次鏡像,這樣的目的是為了防止數據出現覆蓋,導致實驗數據存在偏差。

實驗證明,基于SQLite3數據庫的手機數據恢復取證是可行的,被刪除數據的內容是不會改變的,但是數據的葉子頁頭會發生變化,將這一數據表明為“自由塊”,在本頁沒有全部刪除的情況下,是不會進行覆蓋的,數據庫文件的大小不變,即使寫入,也不會出現覆蓋,所以存在取證的可能性。但是,在此頁的數據被全部刪除的情況下,數據庫文件的大小會變小,此時若是寫入,便會出現數據覆蓋的情況,較難恢復。所以,在單獨刪除少量信息(少于一頁)的情況下,被刪除的對象可以被恢復;對于大批量刪除,并在后續進行寫入的情況下,原始數據會被進行覆蓋,恢復的難度較大,并且幾乎不可能全部恢復。

不過,上述的技術實驗也要分情況,比如說數據庫文件對“頁”大小的定義就會根據存儲方式的不同而不同,一些手機中一“頁”指的是1024字節,而本次實驗的手機中,一“頁”的大小為4096個字節。一些參考文獻所提供的數據也有著些許的偏差,比如對于“數據子葉”的位置的定義,一些文獻中指出子葉的位置是以前往后的,但是實驗數據卻顯示,子葉的位置未必是對應著頁號從前往后,刪除等行為會造成數據庫文件的重新整編,從而導致邏輯位置上最左側子葉,不是第一子葉的情況出現。

4 小結

本文的研究對Android手機中SQLite3數據庫的恢復和取證具有一定的參考價值和指導意義,基于SQLite3的Android手機數據恢復的可能性是巨大的,當了解到每一個字節的意義后,就會清楚每一部分的用處,從而可以在空白區域尋找有用數據,進行數據恢復。通過對底層數據的讀取,以及對規則的算法設計,可以實現基于SQLite3的Android手機數據恢復軟件工具的制作。

參考文獻:

[1]杜國祥,石俊杰.SQLite嵌入式數據庫的應用[J].電腦編程技巧與維護,2010(14):43-47.

[2]韓善鋒,曹鳳海,易昌華.SQLite數據庫在嵌入式程序開發中的應用[J].物探裝備,2011,21(03):170-173+178.

[3]吳昊,陳立全,沙晶,喬志,吳中奇.一種基于特征匹配定位的SQLite數據恢復方法[J].南京郵電大學學報(自然科學版),2018,38(01):106-112.

[4]葉清明. 基于MDA的SQLite碎片數據清除技術的研究[D].昆明理工大學,2016.

[5]王昌紅.恢復手機上的被刪除的資料[J].電腦知識與技術(經驗技巧),2017(11):21-24.

[6]馬獲蕾,湯海鳳.Android系統中SQLite數據庫的研究[J].電腦知識與技術,2013,9(28):6243-6245+6256.

[7]胡偉.SQLite在嵌入式系統上的實現研究[J].計算機與數字工程,2009,37(02):158-163.

[8]許如峰,楊明武,張青春,邱換春.紅黑樹優化的SQLite索引在測速系統中的應用[J].現代電子技術,2018,41(04):52-55+59.

【通聯編輯:王力】

猜你喜歡
數據庫
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
兩種新的非確定數據庫上的Top-K查詢
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
數據庫
財經(2015年3期)2015-06-09 17:41:31
數據庫
財經(2014年21期)2014-08-18 01:50:18
數據庫
財經(2014年6期)2014-03-12 08:28:19
數據庫
財經(2013年6期)2013-04-29 17:59:30
主站蜘蛛池模板: 无码高潮喷水在线观看| 毛片视频网址| 国产成人1024精品下载| 人妻丰满熟妇av五码区| 素人激情视频福利| 九色视频在线免费观看| 九色综合视频网| 农村乱人伦一区二区| 99久久性生片| 亚洲国产系列| 亚洲天堂网2014| 亚洲美女视频一区| 久久美女精品国产精品亚洲| 日韩天堂在线观看| 欧美第二区| 久久9966精品国产免费| 九九九久久国产精品| 欧美性色综合网| 午夜日b视频| 日韩最新中文字幕| 全色黄大色大片免费久久老太| 欧美色亚洲| 亚洲天堂日本| 久久窝窝国产精品午夜看片| 免费人成网站在线高清| 国产91视频免费| 国产网站免费| 欧美日本在线| 国产成人亚洲日韩欧美电影| 久久中文电影| 在线观看免费黄色网址| 18黑白丝水手服自慰喷水网站| 91破解版在线亚洲| 91亚洲精选| 欧美国产视频| 国产在线观看一区二区三区| 免费a在线观看播放| 无码高潮喷水在线观看| 毛片免费在线视频| 黄色网站不卡无码| 国产一区二区三区精品久久呦| 久久永久免费人妻精品| 四虎影视库国产精品一区| 欧美一区二区三区国产精品| 国产成人狂喷潮在线观看2345| 五月天综合婷婷| 动漫精品中文字幕无码| 亚洲精品无码久久久久苍井空| 亚洲黄色高清| 97国产在线观看| 色噜噜综合网| 中文字幕av无码不卡免费 | 国产高清免费午夜在线视频| 四虎亚洲国产成人久久精品| 国产三级毛片| 亚洲最新在线| 日本高清免费一本在线观看 | 午夜精品福利影院| 国产18在线| 国产人在线成免费视频| 国产Av无码精品色午夜| 日本一本正道综合久久dvd| 2021国产精品自拍| 男女男精品视频| 久久综合国产乱子免费| 无码人妻热线精品视频| 欧美国产日韩在线观看| 色妞永久免费视频| 婷婷色在线视频| 久久无码av三级| 亚洲第一天堂无码专区| 欧美精品aⅴ在线视频| 国产乱视频网站| 欧美一区国产| 国产AV无码专区亚洲A∨毛片| 99久久精品免费看国产电影| 国产精品欧美在线观看| 97国产在线视频| 欧美三级日韩三级| 精品欧美视频| 国产尤物jk自慰制服喷水| 日本精品视频|