本文主要詳細圖文講述安卓直接鏡像到電腦的方法; 目前安卓手機鏡像數據恢復是一個困擾大家的難題,尤其是沒有SD卡的手機數據恢復,更是不好做.
之前我做過一個三星W2013的手機,它的data和sdcard是一個分區(ext4)上不同的目錄.那時我想都沒想,直接dd if=/dev/block/mmcblkxpx of=/sdcard/data.img進行數據恢復,后來傻眼了,做鏡像時data區的已經使用空間也在增長.數據被覆蓋了!!!后來從客戶的備份中找到了手機的聯系人.虛驚一場.
現在給大家介紹一種方法,可以直接把手機的內存儲鏡像到電腦保存到任何一個分區中.
在給大家介紹這個方法之前看一下我們的準備工作: 1.手機要有ROOT權限. 2.手機要開啟調試模式. 3.手機要有與外界相互溝通的管道. 4.要知道DATA區的掛載點. 5.要知道相應的鏡像命令(dd) 6.電腦端要有相應的工具(nc.exe pv.exe cygwin1.dll以及必備的adb.exe AdbWinApi.dll AdbWinUsbApi.dll )我的這些工具都是放在C:\ADBshell\adbhelp目錄下了.
我們做手機內存儲的目的是做數據恢復,因些我們有一個先提條件:手機的DATA分區確保不要寫入任何數據 1.ROOT的說明 有關ROOT的方法我這里就不多說了.網上的方法很多.大家選取吧. 對于某些手機比如說HTC,某些索愛手機,如果想ROOT,要先解鎖,不解的話是不能取得ROOT的.
一般的ROOT有三個方法, -- 專門針對某一個類型手機出的ROOT工具.: -- 電腦端的一鍵ROOT工具 -- 手機端的ROOT工具.
我還有第四種方法,這種方法可以做到部分手機在關機的情況下取得ROOT,進而取得鏡像.這是最完善的ROOT取得的方法.
對于找不到某一類型的ROOT工具,我推薦用:電腦端的360一鍵ROOT,我測試過,用這個軟件ROOT的時候,DATA區寫入的數據量最少(不到1MB). 萬一電腦端的ROOT工具都不能ROOT這個手機,就采用手機端的ROOT工具.能ROOT總比什么也做不了強吧.
2.調試模式的說明 這個不用多說了.打開就行了.至于手機如何開啟調試模式,大家baidu一下相關的知識吧.這里就不多說了.
3.與外界管道的說明 這個要用大名鼎鼎的nc工具.關于這個工具的說明大家從網上找找就行了.記得很久以前用這個工具做后門用的.不過我已經不做黑客好多年了.
準備工作做好后,現在開始鏡像工作. 手機連上電腦,
圖1 手機和電腦連接完好
這說明手機和電腦連接完好,如果是安卓平板,也是類似的.如果出現不了(Android Phone)這個設備,需要從網上下載相應的手機驅動. 注意:下載手機驅動的時候千萬不要用第三方手機管理軟件.像QQ手機管家,91助手,豌豆夾等.這些軟件會往手機上安裝相對應的軟件.這是數據恢復中的大忌諱. 一定要從網上下載直接的驅動.或者讓win7系統自己搜索相應的驅動.XP的同學們,趕快升級到win7啦.下一步:打開cmd進入adb.exe所在的目錄.圖2 輸入命令看連接的手機
輸入相應的命令,大家看,這里出現了一個(ZTE-N881F)手機.為了大家恢復方便,最好在電腦上只連接這個需要恢復的手機,否則會出現好多麻煩事. 輸入這個命令的目的是看看要恢復的手機是否已經和電腦連接上了.如果手機的驅動安裝上了,輸入這個命令以后,發現不了連接到電腦上的手機,就要升級一下你的adb.exe用最新版本的工具.如果使用了最新版本的adb.exe仍然發現不了你的手機.這就需要另外處理.可以試試換電腦.如果換了電腦,還不行.那就參加我專業的培訓吧O(∩_∩)O哈哈~. 下一步是判斷手機有沒有nc這個管道工具. 命令輸入如下:圖3 判斷手機上是否有管道工具
如果下一行能出現BusyBox v1.2.0.2 xxxxx(2012-xx-xx xx:xx)這樣的字眼,說明手機上是安裝了busybox這個工具的.我們要用的是busybox的nc子命令. 如果提示busybox沒有安裝,我們要把busybox安裝到手機上. 注意:安裝busybox這個工具也是有技巧的.我們還是一個原則,絕對不能在DATA分區寫入任何數據.網上的教程都是在手機上安裝apk的軟件.這樣做以后手機在DATA區會被覆蓋一些區域.對于手機取證,這是不可取的. 下一篇文章我會告訴大家如果手機上沒有busybox這個軟件,如何繞過DATA區把busybox安裝到手機上. 現在工具都具備了.
4.取得手機DATA區的掛載點 這個我們用mount 命令就可以了.
圖4 取得DATA分區的掛載點
我們知道DATA分區掛載的分區是/dev/block/mmcblk0p13.當然這個案例還是比較簡單的運行mount命令后直接給出了我們掛載點.對于某些沒有直接給出我們掛載點的手機,我們還得通過別的方法取得data分區的掛載點.這個掛載點一般都是/dev/block/mmcblkxPx
5.鏡像命令 一般對于高端手機我們采用dd進行手機內存儲鏡像.對于低端手機用dd命令會出錯.我們只能用cat命令進行鏡像. dd 命令的格式網上一大堆的.使用這個命令的時候要注意if后面的是源地址,也就是data分區的掛載點.of后面是目標地址.現在我們開始鏡像: 先設置一下adb的端口映射.
圖5 打開tcp的52330端口.當然你也可以換成你自己的端口
下面進入手機的shell.圖6 進入手機的shell
大家要注意區分,進入手機的shell后所有輸入的命令都是在手機上命令.換句話說,目前手機就相當于我們的肉雞.
目前我的這個手機經過的特殊的處理,進入shell后直接取的ROOT權限.對于出現$的手機還需要輸入另一個命令su (不需要輸入ROOT密碼),這樣才能使用手機的ROOT權限.
輸入su的時候大家注意觀察一下手機有沒有需要授權的(有的手機需要我們對shell進行授權,有的不需要).如是手機上彈出需要授權,允許就行了.下一步,輸入鏡像命令:
圖7 輸入鏡像命令
這個命令的意思是:利用nc這個小工具在手機上打開一個52330端口(-l -p 52330),如果有程序連接這個端口,就執行-e后面的命令.dd命令就是做data的鏡像. nc它的主要功能是把網絡一端的輸入數據傳送到另一端來輸出. 命令結束以后下面有一個一閃一閃的白塊. 這時手機端的命令就算完工了. 下面再開一個cmd,用nc這個工具來連接52330端口,并把數據存到F:\330wang目錄下圖8 電腦端的nc命令
大家注意一下.現在用電腦端的nc.exe來連接剛才的52330端口.因為我們一開始設置的端口映射,我們用nc.exe可以直接連接就行了.圖9 鏡像過程
這時直接用USB線就可以鏡像data分區到電腦的F盤了. 給大家說一下pv.exe這個命令.它是顯示傳輸的數據量和當前速度的一個小工具. -i 1是每一秒種顯示一次數據. -i 0.5 是每0.5秒顯示一次數據. 記得后面加一個空格. 當然,如果嫌麻煩,也可以直接在CMD中輸入 nc 127.0.0.1 52330 > f:\330wang\data.img 這也是可以的. 鏡像的操作工作完畢.剩下的就是等鏡像結束.鏡像的速度和手機有關系.圖10 鏡像完工后手機端顯示
圖11 鏡像完工后電腦端顯示
下面就拿數據恢復軟件打開F盤330wang目錄下的data.img進行掃描吧.只要能支持ext4的就行,比方說winhex r-studio UFS等.