iOS非入侵式非越獄下數據采集實現過程

一、實現環境:

iOS10.2,arm64位。

二、實現工具:

libimobiledevice工具集中的idevicebackup2對iOS系統進行備份,ideviceunback對備份文件進行解析。

關于libimobiledevice工具集詳情見IOS--非越獄下非入侵式可獲取的隱私資料python--libimobiledevice

在 iOS較為低的版本中?idevicebackup2 可以對備份文件進行解析,但是在高版本的iOS系統中,這個功能不可用了。

轉而由?ideviceunback 這個第三方庫來使用

git地址:https://github.com/inflex/ideviceunbackideviceunback-master.zip

工具對比

數據提取工具對比

名稱所屬功能備份選項作用范圍備注

idevicebackup2libimobiledevice工具集對所有的iOS版本都可對其進行備份

但只有在較為低的iOS系統中方可對備份文件解析,在高版本(>=iOS9.3.2)無法解析這個工具僅能full backup。不能像android一樣有選擇的backup。在idevicebackup2的使用中 不僅僅是iOS備份過程需要usb連接手機,解析過程也需要usb連接手機

因此在iOS高版本,apple限制掉了usb連接手機備份的情況。

ideviceunback獨立工具僅提供對iOS備份文件解析的功能,能解析全部的iOS系統的備份文件全部這個工具的解析同android一樣,不需要類似idevicebackup2,是不需要連接手機解析的,只要有備份文件則可解析。

因此 本過程 是使用的?idevicebackup2 對 iOS系統進行備份,使用?ideviceunback(自己編譯,工程中已提供) 對 備份數據進行解析提取的。

三、實現過程

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

對于經常使用的iOS系統 備份過程比較長(我的手機備份時間為40分鐘,大小11G)

而且在備份過程中 不能鎖屏,一旦鎖屏,備份過程無法繼續下去。

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登錄過幾個賬號、每個賬號中的好友列表、我的二維碼、支付二維碼、最近聯系人。

沒有發現QQ、微信 聊天記錄的db。

但是其他app的db如知乎、微博的都有。

2、通訊錄信息

3、Documents

應用創建的臨時文件:如QQ文件接收記錄(文件存在)、QQ產生的臨時文件(聊天圖片)、應用創建的db文件(或sqlite)。沒有發現QQ、微信的聊天記錄的db。

4、Media

獲取完整的iOS系統的相冊、拍攝的視頻。

5、Calender

獲取完整的系統的日歷信息、日歷標簽、日歷通知。

6、短信內容

7、屏幕信息

8、手機網絡設置信息

主要有 wifi登錄信息 如下

ip信息

9、safari瀏覽記錄、書簽記錄

10、設備藍牙使用信息

11、通話記錄

12、設備充電信息

13、系統便簽信息

14、app對系統的設置

如開啟定位、開啟推送啊之類的設置

五、QQ與微信聊天記錄

微信聊天的一種記錄解析工具:https://github.com/humiaozuzu/wechat-explorer

在上面通過肉眼 根本無法知道QQ、微信 聊天記錄在哪里。

我們來看一下 備份文件的結構

這個即是 設備udid命名的備份文件。點擊進去,發現如下

Manifest.db即是總綱,告訴你這些備份文件是怎么回事

如下圖

原來備份文件中那么多亂七八糟的文件的對應關系是這樣的。通過檢索這張表

select * from Files where domain like '%com.tencent.mqq%' and ?relativePath like '%QQ.db%'

很容易就得到QQ的存儲路徑在解析文件的 ?/Users/danchen/Desktop/unbak/Documents/contents/69478086/QQ.db

當然 不只?QQ.db這一個數據庫,還有

同理 也可找出微信的聊天在

/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兩個數據庫進行數據提取。

不過可惜,這個工具是一年前的工具,對于微信最新版的聊天記錄已經無法提取了。

解析關鍵數據列表

數據位置類型備注

通訊錄/Users/danchen/Desktop/unbak/Library/AddressBook/AddressBook.sqlitedb

/Users/danchen/Desktop/unbak/Library/AddressBook/AddressBookImages.sqlitedb數據庫文件均未加密

相冊

/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數據庫文件均未加密

短信

/Users/danchen/Desktop/unbak/Library/SMS/sms.db

數據庫文件均未加密

屏幕信息

/Users/danchen/Desktop/unbak/Library/SpringBoard

屏幕相關信息:屏幕更換過的照片、屏幕狀態等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數據庫文件均未加密

設備藍牙

Users/danchen/Desktop/unbak/Library/Database/com.apple.MobileBluetooth.ledevices.other.db

/Users/danchen/Desktop/unbak/Library/Database/com.apple.MobileBluetooth.ledevices.paired.db數據庫文件均未加密

設備充電信息

/Users/danchen/Desktop/unbak/Library/Battery/charge.db

數據庫文件均未加密

系統便簽信息

Users/danchen/Desktop/unbak/Library/Notes/notes.sqlite

數據庫文件均未加密

app對系統的設置

/Users/danchen/Desktop/unbak/Library/Preferences

plist文件均未加密

QQ聊天信息/Users/danchen/Desktop/unbak/Documents/contents/69478086/QQ.db數據庫文件均未加密

微信聊天信息/Users/danchen/Desktop/unbak/Documents/8057a25d70ca34a6b95d414fc7ec4fe1/DB/MM.sqlite

/Users/danchen/Desktop/unbak/Documents/8057a25d70ca34a6b95d414fc7ec4fe1/session/session.db數據庫文件均未加密

六、總結

IOS--非越獄下非入侵式可獲取的隱私資料一文中 獲得的數據一致。

對于深度數據采集而言,我們目前能做到的 即是把各種DB清理出來。

然而對DB的解析和展示,是否需要做,則這個工作量取決于支持的系統版本。

比如:采集系統數據 如短信、通訊錄,就要支持iOS系統版本的兼容性。

采集微信、QQ的數據,就要支持微信、QQ的版本。

如果它們的版本有變,這些數據庫的表的結構可能會變。

對于iOS系統而言,類似系統數據采集,微信聊天記錄采集這樣的工具大有存在

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容