教你不花錢如何正確的對安卓手機進行數(shù)據(jù)恢復(fù)?
很多人覺得數(shù)據(jù)恢復(fù)就是拿工具掃一掃,這種想法是非常錯誤的。想干好一件事,絕不是僅僅機械性的重復(fù)固有動作,必須要加入個人的思考。比如對安卓手機的數(shù)據(jù)恢復(fù),你真的會嗎?

0x00 背景介紹
很多人都有在使用手機時誤刪數(shù)據(jù)的經(jīng)歷,比方說和女朋友分手后把之前一起玩耍的影像資料刪除了,結(jié)果沒過幾天又復(fù)合了,某天女朋友想和你一起回憶某個溫馨時刻,這時候拿不出照片或視頻來會非常尷尬。

為了避免這類人(Xi)間(Wen)慘(Le)劇(Jian)發(fā)生,很有必要掌握一下數(shù)據(jù)恢復(fù)技術(shù)。
傳統(tǒng)的數(shù)據(jù)恢復(fù)往往借助軟件即可完成,例如Easy Recovery,Recuva之類。
但這類軟件對新的安卓系統(tǒng)手機往往無能為力了,因為從幾年前開始,大部分手機生產(chǎn)廠商用“媒體設(shè)備”MTP模式替代了大容量USB存儲模式,而傳統(tǒng)數(shù)據(jù)恢復(fù)軟件無法直接對MTP模式加載的手機存儲空間進行數(shù)據(jù)恢復(fù),如圖所示。

因此有必要研究適合于目前安卓系統(tǒng)手機的數(shù)據(jù)恢復(fù)方法,本文中主要討論手機內(nèi)部存儲空間的數(shù)據(jù)恢復(fù),對于手機TF卡的數(shù)據(jù)恢復(fù)采用傳統(tǒng)手段即可完成,本文不再討論。
目前手機數(shù)據(jù)恢復(fù)的常見方法有三種:
第一種方法:
物理拆解芯片進行數(shù)據(jù)恢復(fù)。通過拆解并取出存儲芯片后,借助硬件工具讀取芯片的數(shù)據(jù)后進行數(shù)據(jù)恢復(fù)。這種方法的優(yōu)點在于不會對存儲芯片寫入新的數(shù)據(jù),能夠較好的保護數(shù)據(jù)的原始狀態(tài)。缺點也顯而易見,這種方法對工具和動手能力要求較高,稍有不慎手機和芯片都有報廢風(fēng)險,普通用戶較難獨立完成這類操作。

第二種方法:
借助安裝在PC端的第三方工具進行數(shù)據(jù)恢復(fù)。目前網(wǎng)絡(luò)上名氣較大的安卓數(shù)據(jù)恢復(fù)工具主要有,牛學(xué)長數(shù)據(jù)恢復(fù),UltData for Android,Wondershare Dr.Fone,Tenorshare-android-data-recovery,7-Data Recovery Suite等軟件。但這類軟件普遍存在的問題是,常常無法與手機建立連接,或者在連接后掃描時提示失敗,可能是由于安卓系列手機系統(tǒng)定制化程度較高,每家手機制造商都對安卓系統(tǒng)做了或多或少修改的緣故,導(dǎo)致實際效果并不理想,相信很多朋友在用這類軟件時也遇到了類似的問題。

第三種方法:
借助安裝在手機上的安卓APP進行數(shù)據(jù)恢復(fù)。由于APP直接運行在手機上,因此不存在第二種方法中軟件與手機連接失敗的問題,這類軟件恢復(fù)的效果好壞很大程度上取決于軟件開發(fā)人員使用的數(shù)據(jù)恢復(fù)算法能力的優(yōu)劣。這類軟件有很多,以某數(shù)字清理大師為例,某數(shù)字清理大師的隱私粉碎功能能夠掃描到用戶之前刪除的部分類型文件,并確實能夠?qū)@類文件進行恢復(fù)。但其缺點也有很多,主要有四點:一是能夠恢復(fù)的文件類型有限,主要是針對照片、短信、通話記錄等;二是照片時只能一張一張點開恢復(fù),無法批量恢復(fù),操作繁瑣;三是數(shù)據(jù)恢復(fù)算法不夠強,與傳統(tǒng)數(shù)據(jù)恢復(fù)工具如R-Studio和EasyRecovery相比存在不小差距;四是數(shù)據(jù)只能恢復(fù)到手機內(nèi)部存儲空間中,無法選擇恢復(fù)到SD卡,因此手機原數(shù)據(jù)存在被新恢復(fù)數(shù)據(jù)覆蓋的風(fēng)險。當(dāng)然,這些缺點可能與這款軟件的定位是隱私粉碎而非隱私恢復(fù)相關(guān),這些缺點在很多同類軟件上也同樣存在,特別是數(shù)據(jù)恢復(fù)能力方面很多軟件在這方面功能實在是過于孱弱,第三種方法由于存在諸多弊端同樣不能讓人滿意。

0x01 正確恢復(fù)安卓手機數(shù)據(jù)的姿勢
那么到底有沒有效果更加理想的數(shù)據(jù)恢復(fù)方法,答案是肯定的。其實以上方法中最大的問題在于,這類軟件要么根本不能用,要么恢復(fù)能力太弱。如果能借助傳統(tǒng)的數(shù)據(jù)恢復(fù)工具的強大算法,那么這類問題自然迎刃而解。下面介紹一種解決方案,能夠在很大程度上解決以上方法中的瓶頸。
本文中以小米,華為. opp手機為例進行說明,步驟比較詳細以便盡可能照顧不同水平的讀者。
第一步,對手機進行Root,Root前需要進入開發(fā)者模式并打開USB調(diào)試模式。這是最基本的要求,具體如何Root與手機的型號有關(guān),如果實在不會就找身邊的異性IT達人幫忙吧。
第二步,在手機中安裝BusyBox
。建議從Google官方下載,文章中用到的工具會在結(jié)尾處提供,懶人自取。BusyBox安裝時可選擇路徑,假設(shè)安裝在[/system/bin/busybox
]。

第三步,將手機與電腦連接。連接后需要安裝相應(yīng)驅(qū)動,可借助豌豆莢等工具進行安裝。另外需要準(zhǔn)備好adb調(diào)試工具(adb.exe等文件),可從Android SDK官網(wǎng)下載,Root工具包中一般也會提供。
第四步,電腦中安裝32位版本的Cygwin[C:\cygwin],并下載nc.exe和pv.exe,將這兩個文件和之前準(zhǔn)備好的adb.exe,AdbWinUsbApi.dll,AdbWinUsbApi.dll復(fù)制到[C:\cygwin\bin\
]目錄下。
第五步,運行[C:\cygwin\Cygwin.bat
],依次輸入下圖中的命令,輸入后窗口保持打開不要關(guān)閉:

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
這時窗口上應(yīng)該會出現(xiàn)如圖所示的進度

耐心等待完成后,[C:\cygwin
]目錄下會出現(xiàn)mmcblk0.raw文件,文件大小等于手機內(nèi)部存儲空間的大小,該文件正是手機內(nèi)部存儲空間的鏡像文件。
第七步,打開一款傳統(tǒng)的數(shù)據(jù)恢復(fù)工具,由于raw文件是linux文件系統(tǒng)格式,因此需要支持這類系統(tǒng)的軟件,經(jīng)過實際使用測試發(fā)現(xiàn),R-Studio和Easy Recovery均能較好識別這類文件格式,筆者更偏愛R-Studio,因此以這款軟件為例。
加載剛剛生成的mmcblk0.raw鏡像,如圖所示。

對鏡像中的userdata部分進行掃描,掃描后即可找到被誤刪除的各類數(shù)據(jù),女朋友終于保住了:)

使用這種方法,可以充分利用現(xiàn)有成熟數(shù)據(jù)恢復(fù)軟件的恢復(fù)技術(shù),大大提高安卓手機數(shù)據(jù)恢復(fù)的成功率。實際測試發(fā)現(xiàn),通過這種方法找回的照片,數(shù)量上遠遠超過市面上各類手機數(shù)據(jù)恢復(fù)軟件恢復(fù)的照片。
國外已經(jīng)有人寫過類似教程,但可能由于對數(shù)據(jù)恢復(fù)軟件不夠熟悉,在提取鏡像后又做了很多畫蛇添足的處理,比如利用VhdTool.exe對鏡像進行各種后期處理,不僅增加了步驟的繁瑣程度,可能還會起到誤導(dǎo)作用。

0x02 更多的思考
本文的核心在于對安卓手機鏡像的提取,提取出鏡像后能做的東西還有很多,比如通過分析wpa_supplicant.conf
能夠得出某人常去的地方等等。
通過本文可以看出,如果淘汰的手機只是簡單刪除某些敏感文件后就直接交給一些第三方回收機構(gòu)會存在多么大的風(fēng)險,網(wǎng)上那么多小視頻你覺得是怎么流出來的。如果缺乏對手機信息安全的基本保護意識,那就要承擔(dān)可能面臨的后果,有些后果可能會嚴(yán)重到付出高昂的代價。
