美亚杯手机取证题,考到最后全在拼数据库。自动工具能翻译出八成信息,剩下那两成分,全靠你会不会自己开库、写 SQL。
这五年考得越来越深。2021 年才 6 道题,到 2025 年直接飙到 34 道,成了绝对主力。而且考法变了:以前只问“在哪张表”,现在考“两张表怎么接”“字段为什么打架”。
找库也有讲究。安卓规矩,数据都在 /data/data/包名/databases/ 里。iOS 路径乱,但规律在 BundleID 上。千万别用后缀筛库,苹果的通话记录叫 CallHistory.storedata,一筛就漏。最稳的办法是搜文件头,看到 SQLite format 3 才是真库。
打开库别瞎翻,先看三张自带说明书:sqlite_master 列所有表,Z_PRIMARYKEY 看主键,Z_METADATA 看版本。想快速找字段,跑段 Python 把全库字段导成 JSON,Ctrl+F 一搜比翻界面快得多。
还有个巨坑是 WAL 日志。主库里的数据可能是旧的,最近的消息全在旁边的 -wal 文件里。单拷主库读不到最新内容,必须和日志放一起,或者执行一句 PRAGMA wal_checkpoint(FULL); 落盘。
说白了,工具给的是它算的结果,数据库里才有原始记录。答案冲突时,回数据库拿证据。