一、實現(xiàn)環(huán)境:
iOS10.2褐啡,arm64位绑警。
二、實現(xiàn)工具:
libimobiledevice工具集中的idevicebackup2對iOS系統(tǒng)進(jìn)行備份芝加,ideviceunback對備份文件進(jìn)行解析硅卢。
關(guān)于libimobiledevice工具集詳情見IOS--非越獄下非入侵式可獲取的隱私資料、python--libimobiledevice
在 iOS較為低的版本中?idevicebackup2 可以對備份文件進(jìn)行解析藏杖,但是在高版本的iOS系統(tǒng)中将塑,這個功能不可用了。
轉(zhuǎn)而由?ideviceunback 這個第三方庫來使用
git地址:https://github.com/inflex/ideviceunback蝌麸、ideviceunback-master.zip
工具對比
數(shù)據(jù)提取工具對比
名稱所屬功能備份選項作用范圍備注
idevicebackup2libimobiledevice工具集對所有的iOS版本都可對其進(jìn)行備份
但只有在較為低的iOS系統(tǒng)中方可對備份文件解析点寥,在高版本(>=iOS9.3.2)無法解析這個工具僅能full backup。不能像android一樣有選擇的backup来吩。在idevicebackup2的使用中 不僅僅是iOS備份過程需要usb連接手機敢辩,解析過程也需要usb連接手機
因此在iOS高版本蔽莱,apple限制掉了usb連接手機備份的情況。
ideviceunback獨立工具僅提供對iOS備份文件解析的功能戚长,能解析全部的iOS系統(tǒng)的備份文件全部這個工具的解析同android一樣盗冷,不需要類似idevicebackup2,是不需要連接手機解析的历葛,只要有備份文件則可解析正塌。
因此 本過程 是使用的?idevicebackup2 對 iOS系統(tǒng)進(jìn)行備份,使用?ideviceunback(自己編譯恤溶,工程中已提供) 對 備份數(shù)據(jù)進(jìn)行解析提取的乓诽。
三、實現(xiàn)過程
1咒程、備份
fedora上 dnf install?libimobiledevice-utils
fedora上 還需dnf install?sqlite-devel.x86_64鸠天。否則編譯ideviceunback工具會報錯:ideviceunback.c:30:21: fatal error: sqlite3.h: No such file or directory
需要安裝?libimobiledevice 的一系列的庫文件,這個在IOS--非越獄下非入侵式可獲取的隱私資料帐姻、python--libimobiledevice都有介紹稠集,這里不再贅述。
備份命令:./idevicebackup2 backup /Users/danchen/Desktop/bak
對于經(jīng)常使用的iOS系統(tǒng) 備份過程比較長(我的手機備份時間為40分鐘饥瓷,大小11G)
而且在備份過程中 不能鎖屏剥纷,一旦鎖屏,備份過程無法繼續(xù)下去呢铆。
2晦鞋、解析
./ideviceunback -v -i /Users/danchen/Desktop/bak??-o?/Users/danchen/Desktop/unbak
解析出來的文件樹太大 有3308 directories, 36196 files。故見tree.txt(使用chrome瀏覽器打開它)
解析后的文件總大小也是11G
解析用的時間很快 不到2分鐘棺克。
四悠垛、有用的資料
解析文件中有用的資料整理如下:
1、QQ信息
如QQ登錄過幾個賬號娜谊、每個賬號中的好友列表确买、我的二維碼、支付二維碼纱皆、最近聯(lián)系人湾趾。
沒有發(fā)現(xiàn)QQ、微信 聊天記錄的db派草。
但是其他app的db如知乎撑帖、微博的都有。
2澳眷、通訊錄信息
3、Documents
應(yīng)用創(chuàng)建的臨時文件:如QQ文件接收記錄(文件存在)蛉艾、QQ產(chǎn)生的臨時文件(聊天圖片)钳踊、應(yīng)用創(chuàng)建的db文件(或sqlite)衷敌。沒有發(fā)現(xiàn)QQ、微信的聊天記錄的db拓瞪。
4缴罗、Media
獲取完整的iOS系統(tǒng)的相冊、拍攝的視頻祭埂。
5面氓、Calender
獲取完整的系統(tǒng)的日歷信息、日歷標(biāo)簽蛆橡、日歷通知舌界。
6、短信內(nèi)容
7泰演、屏幕信息
8呻拌、手機網(wǎng)絡(luò)設(shè)置信息
主要有 wifi登錄信息 如下
ip信息
9、safari瀏覽記錄睦焕、書簽記錄
10藐握、設(shè)備藍(lán)牙使用信息
11、通話記錄
12垃喊、設(shè)備充電信息
13猾普、系統(tǒng)便簽信息
14、app對系統(tǒng)的設(shè)置
如開啟定位本谜、開啟推送啊之類的設(shè)置
五初家、QQ與微信聊天記錄
微信聊天的一種記錄解析工具:https://github.com/humiaozuzu/wechat-explorer
在上面通過肉眼 根本無法知道QQ、微信 聊天記錄在哪里耕突。
我們來看一下 備份文件的結(jié)構(gòu)
這個即是 設(shè)備udid命名的備份文件笤成。點擊進(jìn)去,發(fā)現(xiàn)如下
Manifest.db即是總綱眷茁,告訴你這些備份文件是怎么回事
如下圖
原來備份文件中那么多亂七八糟的文件的對應(yīng)關(guān)系是這樣的炕泳。通過檢索這張表
select * from Files where domain like '%com.tencent.mqq%' and ?relativePath like '%QQ.db%'
很容易就得到QQ的存儲路徑在解析文件的 ?/Users/danchen/Desktop/unbak/Documents/contents/69478086/QQ.db
當(dāng)然 不只?QQ.db這一個數(shù)據(jù)庫,還有
同理 也可找出微信的聊天在
/Users/danchen/Desktop/unbak/Documents/8057a25d70ca34a6b95d414fc7ec4fe1/DB/MM.sqlite
會話session db存儲在 ?/Users/danchen/Desktop/unbak/Documents/8057a25d70ca34a6b95d414fc7ec4fe1/session/session.db
如上文所述上祈,對微信的db解析 有一種python工具 wechat-exploer培遵。
其源碼的基本原理就是對?MM.sqlite 、session.db兩個數(shù)據(jù)庫進(jìn)行數(shù)據(jù)提取登刺。
不過可惜籽腕,這個工具是一年前的工具,對于微信最新版的聊天記錄已經(jīng)無法提取了纸俭。
解析關(guān)鍵數(shù)據(jù)列表
數(shù)據(jù)位置類型備注
通訊錄/Users/danchen/Desktop/unbak/Library/AddressBook/AddressBook.sqlitedb
/Users/danchen/Desktop/unbak/Library/AddressBook/AddressBookImages.sqlitedb數(shù)據(jù)庫文件均未加密
相冊
/Users/danchen/Desktop/unbak/Media/DCIM
/Users/danchen/Desktop/unbak/Media/MediaAnalysis
/Users/danchen/Desktop/unbak/Media/PhotoData
/Users/danchen/Desktop/unbak/Media/Recordings圖片皇耗、視頻、音頻文件可直接打開
日歷
/Users/danchen/Desktop/unbak/Library/calendar/Calendar.sqlitedb
/Users/danchen/Desktop/unbak/Library/calendar/Extras.db
/Users/danchen/Desktop/unbak/Library/calendar/Notifications.db數(shù)據(jù)庫文件均未加密
短信
/Users/danchen/Desktop/unbak/Library/SMS/sms.db
數(shù)據(jù)庫文件均未加密
屏幕信息
/Users/danchen/Desktop/unbak/Library/SpringBoard
屏幕相關(guān)信息:屏幕更換過的照片揍很、屏幕狀態(tài)等plist文件均未加密
safari瀏覽記錄郎楼、書簽記錄
/Users/danchen/Desktop/unbak/Library/Safari/History.db
/Users/danchen/Desktop/unbak/Library/Safari/Bookmarks.db
Users/danchen/Desktop/unbak/Library/Safari/AutoFillCorrections.db
/Users/danchen/Desktop/unbak/Library/Safari/BrowserState.db數(shù)據(jù)庫文件均未加密
設(shè)備藍(lán)牙
Users/danchen/Desktop/unbak/Library/Database/com.apple.MobileBluetooth.ledevices.other.db
/Users/danchen/Desktop/unbak/Library/Database/com.apple.MobileBluetooth.ledevices.paired.db數(shù)據(jù)庫文件均未加密
設(shè)備充電信息
/Users/danchen/Desktop/unbak/Library/Battery/charge.db
數(shù)據(jù)庫文件均未加密
系統(tǒng)便簽信息
Users/danchen/Desktop/unbak/Library/Notes/notes.sqlite
數(shù)據(jù)庫文件均未加密
app對系統(tǒng)的設(shè)置
/Users/danchen/Desktop/unbak/Library/Preferences
plist文件均未加密
QQ聊天信息/Users/danchen/Desktop/unbak/Documents/contents/69478086/QQ.db數(shù)據(jù)庫文件均未加密
微信聊天信息/Users/danchen/Desktop/unbak/Documents/8057a25d70ca34a6b95d414fc7ec4fe1/DB/MM.sqlite
/Users/danchen/Desktop/unbak/Documents/8057a25d70ca34a6b95d414fc7ec4fe1/session/session.db數(shù)據(jù)庫文件均未加密
六万伤、總結(jié)
與IOS--非越獄下非入侵式可獲取的隱私資料一文中 獲得的數(shù)據(jù)一致。
對于深度數(shù)據(jù)采集而言呜袁,我們目前能做到的 即是把各種DB清理出來敌买。
然而對DB的解析和展示,是否需要做阶界,則這個工作量取決于支持的系統(tǒng)版本虹钮。
比如:采集系統(tǒng)數(shù)據(jù) 如短信、通訊錄膘融,就要支持iOS系統(tǒng)版本的兼容性芙粱。
采集微信、QQ的數(shù)據(jù)托启,就要支持微信宅倒、QQ的版本。
如果它們的版本有變屯耸,這些數(shù)據(jù)庫的表的結(jié)構(gòu)可能會變拐迁。
對于iOS系統(tǒng)而言,類似系統(tǒng)數(shù)據(jù)采集疗绣,微信聊天記錄采集這樣的工具大有存在