盛蒙蒙 鐘鳴
摘 要: iPhone Operating System(IOS)的縮略圖文件(后綴為ithmb)保存了圖像的重要信息,通過(guò)解讀其數(shù)據(jù)結(jié)構(gòu)能夠恢復(fù)出已刪除圖片的縮略圖,從而為IOS移動(dòng)設(shè)備的調(diào)查取證提供關(guān)鍵的證據(jù)和線索。分析了ithmb文件的作用,結(jié)合BMP文件格式闡述了利用ithmb文件來(lái)恢復(fù)出縮略圖的原理,開(kāi)發(fā)出ithmb分析軟件實(shí)現(xiàn)縮略圖的恢復(fù)。
關(guān)鍵詞: IOS取證; ithmb; 縮略圖; 文件恢復(fù)
中圖分類號(hào):TP309 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2015)05-19-03
Abstract: iPhone Operating System (IOS) thumbnail file which has a suffix of "ithmb" saves the important information of image, through the interpretation of the data structure, the image deleted thumbnails can be restored, so as to provide key evidence and clues for the investigation of IOS mobile devices. This paper analyses the use of ithmb file, and combining with BMP file format, describes how to restore the image data by using the ithmb file, then describes the development of the ithmb analysis software to realize the recovery of thumbnails.
Key words: IOS forensics; ithmb; thumbnail; file recovery
0 引言
隨著智能終端的發(fā)展以及數(shù)字通信網(wǎng)絡(luò)的普及,移動(dòng)設(shè)備已經(jīng)成為當(dāng)今社會(huì)人們不可或缺的工具。蘋(píng)果公司的iPad、iPhone等IOS設(shè)備憑借其親切的人機(jī)交互能力和豐富的應(yīng)用,成為備受歡迎的主流移動(dòng)設(shè)備。越來(lái)越多的實(shí)際案例顯示,當(dāng)犯罪嫌疑人使用這些移動(dòng)設(shè)備進(jìn)行犯罪,并且在這些移動(dòng)設(shè)備中留下大量的信息,那么這些信息往往能對(duì)犯罪案件的偵破提供重要線索和證據(jù)。因此,對(duì)移動(dòng)設(shè)備進(jìn)行電子取證已經(jīng)得到越來(lái)越廣泛地關(guān)注[1-3]。
在設(shè)備的應(yīng)用軟件層中,許多應(yīng)用程序?yàn)榱司彺婊蛘吖芾砟承?shù)據(jù),通常會(huì)把這些數(shù)據(jù)的相關(guān)信息寫(xiě)到指定的特殊文件中,即使這些數(shù)據(jù)被用戶刪除了,相應(yīng)的特殊文件中仍保留這些數(shù)據(jù)的信息[4]。在IOS中,ithmb文件便是這樣一種特殊文件,雖然用戶刪除了圖片數(shù)據(jù),但ithmb文件保存了圖片數(shù)據(jù)的縮略圖信息。本文以iPhone為例,提出對(duì)ithmb文件進(jìn)行提取并恢復(fù)出縮略圖數(shù)據(jù)的方法,該方法可以為IOS設(shè)備取證提供技術(shù)支持。
1 IOS縮略圖文件的作用
為了加速圖片顯示,IOS定義了縮略圖文件(ithmb)。用戶打開(kāi)IOS設(shè)備查看照片時(shí),可以快速地瀏覽照片的縮略圖,這就是ithmb文件發(fā)揮的作用。
ithmb是IOS系統(tǒng)的專用擴(kuò)展名,當(dāng)IOS設(shè)備開(kāi)機(jī)時(shí),ithmb文件就會(huì)被創(chuàng)建。當(dāng)用戶拍攝或保存新的照片時(shí),ithmb文件將隨之更新。ithmb文件保存了照片軟件中圖片的縮略圖數(shù)據(jù), 可緩存的圖像文件的格式包括jpeg,bmp,png,mp4等。然而不管原始圖片數(shù)據(jù)采用何種格式,所有圖像文件的縮略圖都以bmp格式進(jìn)行保存。雖然ithmb文件的設(shè)計(jì)從用戶角度而言是為了提高查看圖片的速度,但從數(shù)字取證的角度來(lái)說(shuō),ithmb文件的存在,為恢復(fù)刪除圖片的縮略圖提供了可能。
2 IOS縮略圖數(shù)據(jù)恢復(fù)方法
2.1 ithmb文件結(jié)構(gòu)
ithmb文件保存了圖片的縮略圖數(shù)據(jù)及其信息,但無(wú)法直接打開(kāi),其文件結(jié)構(gòu)如表1。
經(jīng)過(guò)分析,ithmb文件采用的是16位bmp圖片格式,但僅有數(shù)據(jù)區(qū),無(wú)法查看圖片,因此需要通過(guò)添加文件頭的方式實(shí)現(xiàn)縮略圖的恢復(fù),而這必須要知道縮略圖的尺寸。在IOS7前,ithmb直接以像素尺寸大小命名,如32*32ithmb代表縮略圖對(duì)應(yīng)的尺寸為32*32像素。從IOS7開(kāi)始,蘋(píng)果公司隱藏了像素尺寸信息,而用類似3303ithmb的文件名命名。因此必須首先分析出不同的ithmb文件名所代表的含義。
以3303ithmb文件為例,用ultra edit打開(kāi)文件并以十六進(jìn)制方式查看。經(jīng)觀察發(fā)現(xiàn),若把文件按0X30位進(jìn)行分塊,那么每塊都是以00 80 00 80結(jié)束的,可以猜測(cè)這是圖片的邊緣,因此圖片的像素寬度為0X30/2=0X18,即24個(gè)像素點(diǎn),如圖1所示。
確定了寬度后,可以通過(guò)尋找圖片與圖片的間隙來(lái)判斷圖片的高度。在00 80 00 80出現(xiàn)了22次后,文件數(shù)據(jù)發(fā)生了改變。因此我們可以判定圖片的高度為22像素,如圖2所示。
經(jīng)過(guò)后期分析,證實(shí)了3303ithmb文件采用的像素為24*22像素。通過(guò)此方法依次類推,可以推測(cè)出其他ithmb文件的尺寸。結(jié)果如表2。
2.2 BMP文件格式
BMP(全稱Bitmap)是Windows操作系統(tǒng)中的標(biāo)準(zhǔn)圖像文件格式,使用非常廣。它采用位映射存儲(chǔ)格式,除了圖像深度可選以外,不采用其他任何壓縮,因此,BMP文件所占用的空間很大。BMP文件存儲(chǔ)數(shù)據(jù)時(shí),圖像的掃描方式是按從左到右、從下到上的順序。典型的BMP圖像文件由四部分組成:位圖文件頭數(shù)據(jù)結(jié)構(gòu)、信息頭數(shù)據(jù)結(jié)構(gòu)、調(diào)色板和位圖數(shù)據(jù)[5]。如果位圖是16位,則圖像文件中不保留調(diào)色板,即不存在調(diào)色板,圖像的顏色直接在位圖數(shù)據(jù)中給出。ithmb中采用的是16位的bmp格式,且已經(jīng)包含了位圖數(shù)據(jù),因此,需要給每張位圖補(bǔ)充位圖文件頭數(shù)據(jù)和信息頭數(shù)據(jù),一共54位數(shù)據(jù)。16位bmp文件頭結(jié)構(gòu)如表3和圖3所示。
2.3 數(shù)據(jù)恢復(fù)模塊的設(shè)計(jì)與實(shí)現(xiàn)
下面通過(guò)一個(gè)具體的實(shí)例來(lái)介紹ithmb分析軟件的設(shè)計(jì)與實(shí)現(xiàn)。實(shí)驗(yàn)場(chǎng)景信息如表4。
軟件分為三個(gè)子模塊:文件加載模塊、信息加工模塊和縮略圖保存模塊。
文件加載模塊 首先要獲取ithmb文件。出于安全考慮,ithmb文件被保存在操作系統(tǒng)文件中,一般情況下用戶是看不到的,需通過(guò)提權(quán)來(lái)獲取文件。通常采用越獄的方法來(lái)獲取文件讀取權(quán)限,所謂越獄就是指通過(guò)破解軟件獲得程序最高權(quán)限[2]。越獄后,通過(guò)ifunbox等應(yīng)用軟件,把ithmb文件復(fù)制出來(lái)。地址是Device/private/var/mobile/Media/PhotoData/Thumbnails。該文件夾下面有多個(gè)ithmb文件,它們代表不同的縮略圖像素大小,作用是顯示縮略圖時(shí)可以適應(yīng)不同的IOS設(shè)備屏幕尺寸大小。如圖5所示。
獲取文件后,要判斷文件的合法性,比如文件名是否合法(我們將根據(jù)ithmb的文件名來(lái)判斷其代表的縮略圖像素大?。?、文件數(shù)據(jù)是否完整等。
信息加工模塊 通過(guò)加載文件的數(shù)據(jù),對(duì)其進(jìn)行加工,使之成為完整的圖片數(shù)據(jù)。舉例來(lái)說(shuō),3319ithmb存儲(chǔ)的縮略圖的尺寸為160*157,即圖片大小為160*157*2=50240。因此圖片1的縮略圖原始數(shù)據(jù)存儲(chǔ)在0X0000~0XC43F。其后0XC440~0XC45B這28位是圖片1 的其他信息,若前16位數(shù)據(jù)為0,說(shuō)明這張照片是已被刪除的圖片。注意,這28位數(shù)據(jù)不是縮略圖原始數(shù)據(jù),因此在讀數(shù)據(jù)時(shí),這28位需要跳過(guò)。
讀取到圖片1的縮略圖原始數(shù)據(jù)塊后,接下來(lái)需要在數(shù)據(jù)塊前面添加54位BMP格式的文件頭數(shù)據(jù),經(jīng)計(jì)算后得到:
000000000。如此54位數(shù)據(jù)補(bǔ)充完畢,再加上縮略圖原始數(shù)據(jù)50240位,共50294位。這里要注意的是,高度要取負(fù)數(shù),否則恢復(fù)出來(lái)的照片會(huì)上下顛倒。
縮略圖保存模塊 把信息加工模塊處理后的結(jié)果寫(xiě)入文件并保存為bmp格式,一張縮略圖圖片即恢復(fù)完成。如此反復(fù)進(jìn)行,可以恢復(fù)出所有圖片的縮略圖。在此例子中,此文件一共恢復(fù)出來(lái)244張照片,如圖6所示。
通過(guò)以上實(shí)驗(yàn)可知,雖然在IOS移動(dòng)設(shè)備上刪除了照片,但是ithmb縮略圖文件并不會(huì)刪除這部分?jǐn)?shù)據(jù),而僅僅是在28位的信息數(shù)據(jù)中,把前16位清零。因此,可以通過(guò)讀取ithmb文件來(lái)恢復(fù)出已刪除圖片的縮略圖。
3 結(jié)束語(yǔ)
在實(shí)際案件中,調(diào)查人員獲得手機(jī)后,往往因?yàn)殡y以獲取刪除的照片而陷入僵局。本文以iPhone手機(jī)為例,對(duì)ithmb文件進(jìn)行提取分析,提出根據(jù)文件名恢復(fù)不同像素尺寸縮略圖并標(biāo)記已刪除圖片的方法,從而幫助調(diào)查人員取證。此方法同樣適用于IOS的其他設(shè)備,如iPad等。隨著IOS版本不斷升級(jí),系統(tǒng)文件的存儲(chǔ)位置和文件結(jié)構(gòu)都將有所變化,對(duì)個(gè)人數(shù)據(jù)的保護(hù)也將不斷升級(jí)。如何獲取能為調(diào)查工作提供線索的用戶數(shù)據(jù)是今后研究的重要方向。
參考文獻(xiàn):
[1] 劉瓊,葉猛.基于SQLite的iPhone數(shù)據(jù)恢復(fù)方法研究[J].信息網(wǎng)絡(luò)安全,2013.11:90-93
[2] 湯偉,王志帥.一種基于iOS平臺(tái)微信取證分析方法[J].軟件產(chǎn)業(yè)與工程,2014.1:48-52
[3] 劉浩陽(yáng).iOS設(shè)備取證技術(shù)[J].信息網(wǎng)絡(luò)安全,2014.9:167-170
[4] 杜江,賈昌海.基于Thumbs.db文件的數(shù)據(jù)恢復(fù)技術(shù)研究與開(kāi)發(fā)[J].電子設(shè)計(jì)工程,2011.17:10-12
[5] 百度 http://baike.baidu.com/link?url=JssrXrrKBLk5JC8xNNFFEJEVwtlIIF2peS9_JdkvyseoYmu0MWlA35p9x3A6MGXlH5bWugBmDDGL4vZWsEXcjwdnGH0yfIbCSaLFRtZWf6W.