作者:admin 日期:2023-09-12 瀏覽: 次
安卓手機被刪除的照片,零成本,你就是恢復大師
聊到手機數據恢復,對于小編來說這個詞匯早在2016年年末的時候就已經被淡化了,而早在2012年-2015年這段時間,安卓手機的數據恢復,用行內的話來說那簡直就是在撿錢吶,為什么這么說呢?大致要分如下幾點:
一.機身內部容量大,手機用戶存儲有價值的數據多
早期安卓系統基本上都是安卓2.x和4.x ,由于安卓系統處在飛速發展時期,手機硬件配置在逐漸加強,攝像頭分辨率在極速的增長,所以用手機拍攝的照片也越來越大,但是,安卓手機的機身內部存儲容量已經能夠大大滿足人們對于日常手機存儲的需求,大量個人數據被保存在手機內部而不會輕易的被整理和轉存(要知道,在安卓系統發展初期和安卓系統出現之前,手機內部存儲基本上都是512M以下的容量,根本存不下大量數據。)
二. 安卓app使用頻率高,存儲在機身的數據量大
QQ;微信等社交app隨著手機性能的增強,其拓展功能又進一步加強,手機app易用性,方便程度要遠遠超過其他的通訊方式甚至超過了PC端的軟件通訊方式。所以,一部手機就干掉了手表;電視;電話;短信;相機;攝像機;MP3;MP4;鬧鐘;記事本;游戲機;甚至家用電腦,大量的app產生的數據被存儲在手機內部,由此大量的用戶基礎就會造就需求。
三. 產業鏈的形成導致研究安卓的團隊和個人比較多
安卓系統產業鏈的高速形成,灰黑產和安卓高端玩家的介入,使得安卓手機獲取ROOT權限極其的方便,有很多像kingroot,360ROOT,ROOT大師,刷機精靈等擁有對安卓系統一鍵ROOT功能的軟件被大家所廣泛利用。要知道能被root的安卓就能輕易獲取到整個機身數據鏡像,所有的用戶數據包括刪除痕跡也都存儲在里面,這是數據能夠被恢復的有利條件之一。
四.用戶數據的隱私并未引起高度重視
當時安卓手機的發展迅猛速度已經遠遠超過了人們的意識,當時人們還在追逐安卓系統的可操作性,運行速度,app兼容性,大容量存儲等等,用戶數據安全很少被重視,用戶區數據并沒有被廣泛的加密(沒有什么問題是通過chip off解決不了的,因為數據以明文存儲,不加密,要知道現在被加密的用戶區數據要想被搞出來是多么的困難)。
五.安卓系統并未引入清零機制
安卓引入的emmc存儲在當時來說僅僅作為存儲使用,因為其容量大,價格便宜,內置控制器方便手機電路設計,所以被廣泛的使用,安卓系統也源于linux,但是linux卻沒有針移動存儲做更詳盡的優化。(我們知道emmc存儲屬于閃存存儲,是利用電子表達數據,數據被寫入物理地址是由電子的位置表達二進制0和1,如果當前電子位是00000000;那么當要寫入數據11111111的時候,只需要將每一位進行一次改變,就達到了目的變成11111111,但是如果現有數據是01010101,想要寫入11111111的話,就要先對01010101進行置零操作也就是先要把01010101變成00000000;然后再從00000000變成11111111,這個過程的產生是緣由閃存存儲原理決定的,所以呢,安卓系統在對emmc存儲的數據進行改變的時候,是要分兩步進行的,第一步置0,然后第二步寫入,如果有大量的數據進行讀寫操作的時候,就會降低emmc存儲的讀寫效率,所以現在新機器配合安卓5.0以后的系統版本在手機沒大規模進行讀寫的空余時間里,會對已經刪除的區域做填0操作,為的是在以后進行寫操作前無需進行置0,這樣系統讀寫速度就會加快。由三星主導的emmc規范協議里,就添加了erase指令,清零再也無需安卓系統進行干預,系統只要給emmc存儲指令,規定讓它對哪些地址塊進行清零即可,emmc存儲器會馬上執行,對系統速度一點影響都沒有,我們曾經做過一個實驗:三星emmc 32G存滿數據,放到景天UP編程器進行清零,點擊清空功能后立馬斷電,整個過程不到1秒鐘,然后再把這32G emmc通過只讀設備進行鏡像,32G的鏡像查看底層全部為0,由此可見,硬件級別的清零速度是多么的恐怖,遠遠超過其IO接口的速度。這就是為啥現在新機器想要恢復照片視頻那么困難的原因,刪除就是沒有了,不存在了。但是在這個機制沒有啟用前,刪除數據是不會被清零的,也就是還存儲于機身內部,小編深刻懷念小米2S那個時代,恢復出廠的機器的數據都能搞的出來。)
東臺數據恢復上面扯了半天,結論就是:以前能恢復,現在恢復不了!那下面回歸正題,正如上面所說,這些條件被手機廠商逐一限制,達不到數據恢復的前提條件,那也只能嘗試曲線救國了。
我們以照片為例(注意是照片,也就是用手機相機拍攝并存儲的照片),正常情況下被刪除的手機照片在新款的安卓手機上已經清的一塌糊涂,是不可能能夠恢復出來的,但是,有一個情況就是,往往拍攝完的照片都會被機主自戀的欣賞一下,大家有沒有注意到兩點:1.照片被打開的時候會有一個圖像由模糊變清晰的一個過程,2.在相冊里,沒有被你打開的圖片你也能夠看到圖像內容,只不過會很小。
這里就要簡述一下一些圖片展示功能的一些算法(小編闡述以方便理解為主,不涉及底層復雜的原理,因為小編也是二把刀):手機相機拍出來的照片分辨率較高,照片從加載到app,解析,展示會有一個過程,如果等完全解析完顯示在屏幕上,那肯定會有一個短暫的時間形成卡頓(因為此時已經點擊屏幕打開,但是照片還在解析中,尤其是CPU負荷比較大或者手機性能比較低的時候),為了避免上述情況,圖片在第一次被正常打開后就會根據一定的算法生成一份分辨率相對比較低的緩存圖片,再次打開這張圖片的時候,app會首先加載這份分辨率相對比較低的圖片填充屏幕,然后等原始圖片被正常解析迅速替換已經顯示的圖片,給人以過度的感覺,而不是卡頓(微信接受的圖片也是利用的這個算法,沒有被手動下載查看的圖片一定是原始圖片的一個低分辨率緩存。)而且,最重要的是,安卓的照片緩存是不隨著原始圖片的清除而清除的,這也就是咱們今天討論的核心問題。
而我們看到的相冊里的四方格的圖片也是一種緩存的顯示:
上圖這樣很小的緩存圖片實際意義并不是很大,因為分辨率太低了,只有那些分辨率相對比較高的緩存才會有一定的意義,所以我們要在文件系統中尋找緩存文件:
棲霞數據恢復
我們把imgcache.0提取出來,這個文件就是手機照片的緩存,只要在相冊里查看過的照片都會在這個文件里留下痕跡,沒有被一些垃圾清零app清理過的安卓手機,這個文件會一直變大,最大50M,如果超過50M那么就會生成新的緩存文件:imgcache.1并且隨著緩存的越來越多,文件數量也會遞增。用winhex查看下:
我們從上圖winhex的顯示結果當中看到了JFIF,典型的圖片類型標識,然后根據圖片的頭文件標記FFD8開始向下搜索結束標記FFD9:
將FFD8開頭FFD9結尾這段提取出來保存成文件,繼續查找下一組FFD8-FFD9;保存出來的文件可用圖片查看器打開查看。當然,這里僅僅是安卓緩存數據的一部分,還有很多位置存儲著各種場景下所產生的“緩存垃圾”,但是正是這些緩存,給我們的司法工作提供了一個又一個的關鍵線索。
當然如果您覺得一個一個提取太麻煩的話可以嘗試用Rx-analyze3000進行一鍵提取,給您的工作增加效率: