android數據恢復
很多人都有在使用手機時誤刪數據的經歷,比方說和女朋友分手後把之前一起玩耍的影像資料刪除了,結果沒過幾天又復合了,某天女朋友想和你一起回憶某個溫馨時刻,這時候拿不出照片或視頻來會非常尷尬。為了避免這類人(Xi)間(Wen)慘(Le)劇(Jian)發生,很有必要掌握一下數據恢復技術。
傳統的數據恢復往往借助軟件即可完成,例如Easy Recovery,Recuva之類。但這類軟件對新的安卓系統手機往往無能為力了,因為從幾年前開始,大部分手機生產廠商用“媒體設備”MTP模式替代了大容量USB存儲模式,而傳統數據恢復軟件無法直接對MTP模式加載的手機存儲空間進行數據恢復,如圖所示。
因此有必要研究適合於目前安卓系統手機的數據恢復方法,本文中主要討論手機內部存儲空間的數據恢復,對於手機TF卡的數據恢復采用傳統手段即可完成,本文不再討論。
目前手機數據恢復的常見方法有三種:
第一種方法:
物理拆解芯片進行數據恢復。通過拆解並取出存儲芯片後,借助硬件工具讀取芯片的數據後進行數據恢復。這種方法的優點在於不會對存儲芯片寫入新的數據,能夠較好的保護數據的原始狀態。缺點也顯而易見,這種方法對工具和動手能力要求較高,稍有不慎手機和芯片都有報廢風險,普通用戶較難獨立完成這類操作。
第二種方法:
借助安裝在PC端的第三方工具進行數據恢復。目前網絡上名氣較大的安卓數據恢復工具主要有Wondershare Dr.Fone,Tenorshare-android-data-recovery,7-Data Recovery Suite 等軟件,但這類軟件普遍存在的問題是,常常無法與手機建立連接,或者在連接後掃描時提示失敗,可能是由於安卓系列手機系統定制化程度較高,每家手機制造商都對安卓系統做了或多或少修改的緣故,導致實際效果並不理想,相信很多朋友在用這類軟件時也遇到了類似的問題。
第三種方法:
借助安裝在手機上的安卓APP進行數據恢復。由於APP直接運行在手機上,因此不存在第二種方法中軟件與手機連接失敗的問題,這類軟件恢復的效果好壞很大程度上取決於軟件開發人員使用的數據恢復算法能力的優劣。這類軟件有很多,以某數字清理大師為例,某數字清理大師的隱私粉碎功能能夠掃描到用戶之前刪除的部分類型文件,並確實能夠對這類文件進行恢復。但其缺點也有很多,主要有四點:一是能夠恢復的文件類型有限,主要是針對照片、短信、通話記錄等;二是照片時只能一張一張點開恢復,無法批量恢復,操作繁瑣;三是數據恢復算法不夠強,與傳統數據恢復工具如R-Studio和EasyRecovery相比存在不小差距;四是數據只能恢復到手機內部存儲空間中,無法選擇恢復到SD卡,因此手機原數據存在被新恢復數據覆蓋的風險。當然,這些缺點可能與這款軟件的定位是隱私粉碎而非隱私恢復相關,這些缺點在很多同類軟件上也同樣存在,特別是數據恢復能力方面很多軟件在這方面功能實在是過於孱弱,第三種方法由於存在諸多弊端同樣不能讓人滿意。
0×01 正確恢復安卓手機數據的姿勢
那麽到底有沒有效果更加理想的數據恢復方法,答案是肯定的。其實以上方法中最大的問題在於,這類軟件要麽根本不能用,要麽恢復能力太弱。如果能借助傳統的數據恢復工具的強大算法,那麽這類問題自然迎刃而解。下面介紹一種解決方案,能夠在很大程度上解決以上方法中的瓶頸。本文中以Nubia Z9 Max NX510J為例進行說明,步驟比較詳細以便盡可能照顧不同水平的讀者。
第一步,對手機進行Root,Root前需要進入開發者模式並打開USB調試模式。這是最基本的要求,具體如何Root與手機的型號有關,如果實在不會就找身邊的異性IT達人幫忙吧。
第二步,在手機中安裝BusyBox。建議從Google官方下載,梯子自備,文章中用到的工具會在結尾處提供,懶人自取。BusyBox安裝時可選擇路徑,假設安裝在[/system/bin/busybox]。
第三步,將手機與電腦連接。連接後需要安裝相應驅動,可借助豌豆莢等工具進行安裝。另外需要準備好adb調試工具(adb.exe等文件),可從Android SDK官網下載,Root工具包中一般也會提供。
第四步,電腦中安裝32位版本的Cygwin[C:\cygwin],並下載nc.exe和pv.exe,將這兩個文件和之前準備好的adb.exe,AdbWinUsbApi.dll,AdbWinUsbApi.dll復制到[C:\cygwin\bin\]目錄下。
第五步,運行[C:\cygwin\Cygwin.bat],依次輸入下圖中的命令,輸入後窗口保持打開不要關閉:
adb forward tcp:5555 tcp:5555
adb shell
su
/system/bin/busybox nc -l -p 5555 -e /system/bin/busybox dd if=/dev/block/mmcblk0
第六步,再運行一次[C:\cygwin\Cygwin.bat]打開另一個窗口,依次輸入如下命令:
adb forward tcp:5555 tcp:5555
cd /
nc 127.0.0.1 5555 | pv -i 0.5 > mmcblk0.raw
這時窗口上應該會出現如圖所示的進度
耐心等待完成後,[C:\cygwin]目錄下會出現mmcblk0.raw文件,文件大小等於手機內部存儲空間的大小,該文件正是手機內部存儲空間的鏡像文件。
第七步,打開一款傳統的數據恢復工具,由於raw文件是linux文件系統格式,因此需要支持這類系統的軟件,經過實際使用測試發現,R-Studio和Easy Recovery均能較好識別這類文件格式,筆者更偏愛R-Studio,因此以這款軟件為例。加載剛剛生成的mmcblk0.raw鏡像,如圖所示。
對鏡像中的userdata部分進行掃描,掃描後即可找到被誤刪除的各類數據,女朋友終於保住了:)
使用這種方法,可以充分利用現有成熟數據恢復軟件的恢復技術,大大提高安卓手機數據恢復的成功率。實際測試發現,通過這種方法找回的照片,數量上遠遠超過市面上各類手機數據恢復軟件恢復的照片。國外已經有人寫過類似教程,但可能由於對數據恢復軟件不夠熟悉,在提取鏡像後又做了很多畫蛇添足的處理,比如利用VhdTool.exe對鏡像進行各種後期處理,不僅增加了步驟的繁瑣程度,可能還會起到誤導作用。
0×02 更多的思考
本文的核心在於對安卓手機鏡像的提取,提取出鏡像後能做的東西還有很多,比如通過分析wpa_supplicant.conf能夠得出某人常去的地方等等。通過本文可以看出,如果淘汰的手機只是簡單刪除某些敏感文件後就直接交給一些第三方回收機構會存在多麽大的風險,網上那麽多小視頻你覺得是怎麽流出來的。如果缺乏對手機信息安全的基本保護意識,那就要承擔可能面臨的後果,有些後果可能會嚴重到付出高昂的代價。
android數據恢復