iOS 13 - 滑动输入
iOS 13带来了许多有趣的新功能,其中一个我已开始使用的就是滑动输入。其准确性令我印象深刻。
这项功能在第三方应用中早已存在,并且在Android中(我认为)作为原生功能已有一段时间。
原生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
这个数据库看起来才是真正有趣的。这个数据库中有几个表,但我们感兴趣的是:
- usermodeldurablerecords
- usermodeltransientrecords
usermodeldurablerecords
这个表看起来非常简单,它显示了键入单词的总数和路径单词的数量,推测第二个值与通过滑动输入功能创建的单词数量相关。
usermodeltransientrecords
这个表有许多与键盘用户活动相关的字段或键:
- tium.wordsTyped
- tium.pathEligibleWordsTapped
- tium.durationTappedWords
- tium.wholeWordDeleted
我尚未弄清楚每个字段的具体含义,尽管有些会很明显,如您所见,还有最后更新时间戳。
当与SMS.db中的消息活动、网页浏览或其他应用程序数据配对时,这将为识别用户实际与设备交互的时间提供良好证据。
虽然还需要进一步的工作,但这是一个不错的新线索,调查人员可以将其纳入工具包,用于查找设备实际使用的证据。