SQLite数据库取证——APP的“记账本”
手机上绝大多数应用——微信、QQ、浏览器、备忘录——都用SQLite存数据。SQLite是嵌入式数据库,不需要装服务器,数据以一个.db文件存在。
SQLite基本结构:
表(Table)——数据按行列存储
索引(Index)——加速查询
触发器(Trigger)——自动执行某些操作
WAL文件——事务日志,记录尚未完全提交的修改
WAL文件是隐藏宝藏。SQLite修改数据时,先写到WAL,再合并到主数据库。如果数据被删除后WAL还没被checkpoint,删除前的记录可能还在WAL里。越早拿到数据库文件,恢复机会越大。
常用工具:DB Browser for SQLite——图形界面,可浏览表格、执行SQL查询、导出数据。
常用表名规律(各开发者命名不同,但有些通用):
聊天记录 → messages 或 chat
联系人 → contacts
浏览历史 → history
下载记录 → downloads
通话记录 → calls
利用WAL恢复已删除记录:
找WAL文件(跟主数据库同目录,.wal扩展名)
PRAGMA wal_checkpoint强制合并到主文件,看能不能找回
不行就用专门的SQLite恢复工具扫描WAL残留
实际例子:用DB Browser打开微信的EnMicroMsg.db,按时间排序筛选案发时间段。发现一条消息“我把文件传到网盘了”——重要线索。然后在WAL文件里发现DELETE FROM messages WHERE time = ...——有人删过这条记录。结合WAL残留,可能把删除前的内容找回来。
浙公网安备 33010602011771号