iOS 13 – 滑动输入
iOS 13带来了许多有趣的新功能,其中我已开始使用的一个就是滑动输入。它的准确性给我留下了深刻印象。
这个功能在第三方应用中早已存在,并且在安卓系统中作为原生功能也有一段时间了(我认为)。
那么,iOS原生版本在底层是怎样的呢?
滑动输入 – 有趣的文件
/private/var/mobile/Library/Keyboard/shapestore.db
这个数据库包含的内容与你期望在dynamic-text.dat词典文件中看到的大致相同。唯一明显有用的表叫做shapes,它以string_representation的形式存储滑动输入的单词。还有一个shape_data的blob条目,可能存储与手势跟踪精度相关的数据,不过这只是假设。
/private/var/mobile/Library/Keyboard/user_model_database.sqlite
这个数据库看起来才是真正有趣的。数据库中有几个表,但我们感兴趣的是:
usermodeldurablerecordsusermodeltransientrecords
usermodeldurablerecords
这个表看起来非常简单,它显示了已键入单词的总数和“已路径化”的单词数。推测第二个值可能与通过滑动输入功能创建的单词数量有关。
usermodeltransientrecords
这个表有许多与键盘用户活动相关的字段或键:
tium.wordsTypedtium.pathEligibleWordsTappedtium.durationTappedWordstium.wholeWordDeleted
尽管其中一些含义会相当明显,但我尚未弄清楚每一项具体对应什么。正如你所见,这些记录都有最后更新的时间戳。
当这些数据与SMS.db中的短信活动、网页浏览记录或其他应用程序数据配对时,将成为识别用户何时实际操作其设备的良好证据。
尽管还需要进一步研究,但这无疑是一个不错的新取证线索,可以纳入调查人员的工具包,用于寻找用户实际操作设备的证据。