透过 Sysdiagnose 窥见不一样的iOS

这一次,终于可以摆脱对jailbreak的依赖去提取iOS系统数据!!!

在提取iOS应用数据时,可以不依赖jailbreak,直接通过iTunes备份等手段获取数据。但是,同样的方法并不适用于iOS系统数据的提取。这时候jailbreak似乎成了唯一的选择,随之而来的就是iOS系统攻与守的死循环。

情况虽是这个样子,但总得支棱起来呀!

通过几天的努力,终于从iOS开发者社区找到了突破口 —— Sysdiagnose

Sysdiagnose 经常被用于获取app的电量测试。说起电量测试,让我想起了最近在研究的另一个数据库CurrentPowerlog.PLSQL,但是后者仅能通过jailbreak提取。这两者之间会不会有什么联系?

1. 如何使用Sysdiagnose

根据文档说明:

但尴尬的是,按照文档操作下来,这个iphone SE并不Work。。
看来还是盘得不够圆润。几经尝试验证,操作步骤如下:

  • 同时按住电源键,音量上下键(会有震动反馈)
  • 等大概10s(文档说等十分钟。。)
  • 打开 设置 > 隐私 > 分析 > 分析数据 (会看到有Sysdiagnose 开头的文件)
  • 点击文件并点击在右上方的分享可以取出文件

寥寥几步, 似乎很简单嘛 。。
不过以上查看文件的方式只适用于iOS 12.x 噢。。

对于iOS 11.x 或更低的版本可以在 隐私 > 诊断与用量 > 诊断与用量数据 中看到文件。
对于更低的版本会有一个问题: 可能一波操作下来,打开一看 ——— 空空如也 ~~
此时,心中默念 I believe .. 即可(只要在操作时有震动反馈就会生成日志)

2. 怎么提取文件

正如先前所说,对于高版本系统可以直接文件页面点击右上角的分析按钮。
对于低版本可以通过iTools, PP助手。在工具箱 > 崩溃日志 下也可以看到该文件;

什么, 这操作太花里胡哨 !!!

还有更骚的操作!!

还可以通过iTuns拿到文件,具体步骤如下:

  • 手机连到iTuns
  • 点击同步(见下图)
  • 打开路径 C:\Users\<用户名>\AppData\Local\Packages\AppleInc.iTunes_<device_name>\LocalCache\Roaming\Apple Computer\Logs\CrashReporter\MobileDevice\<你>的 iPhone\DiagnosticLogs\sysdiagnose

最终, 得到了一个压缩包。

当文件解压开来,我就知道这事情不简单 …

3. 有哪些数据

3.1 资源管理器

3.2 文件系统数据

3.3 WiFi数据

这么详实的WiFi配置信息可以说很有诚意了。

ps: 有了这些数据似乎就可以实现通过wifi定位,获得手机的活动位置。

3.4 同步至iCloud中的WiFi信息

3.5 连接过的WiFi信息

3.6 设备参数

4. 惊喜总得放到最后嘛

powerlog_2019-02-15_17-26_920D23F8.PLSQL这个文件的发现可以说是最大的惊喜了。细细比对下来,该文件与越狱后所提取到的CurrentPowerlog.PLSQL内容居然 完 全 一 致。该数据库详细记录了当前设备在什么时间在做什么样的事情,处于于什么样的状态。
下面先看几个代表性的数据表:

4.1 每个应用在每个小时内在前台或者后台运行的时间

4.2 每个应用的安装-卸载时间

4.3 详细的应用使用记录

4.4 设备麦克风, 扬声器, 耳机使用记录

4.5 设备电话使用记录

当然,该数据库中记录的数据远远不止这些,这里就不一一赘述啦。。。

Sysdiagnose的发现,为iOS数据取证提供了新的途径。但这只是开端,前面还有更广阔的星辰大海。撒花~~~

注:以上所有数据的获取都不需要jailbreak。更过分的是,该方法适用于任意iOS版本(包括最新的iOS 12.1.4)。更夸张的是,在某些场景下,提取该数据甚至都不需要去解锁手机屏幕。