4 月 11 日凌晨两点,我在朋友的旧手机里点开 Chrome 的历史记录,发现 3 月 28 日那页"浏览器恢复历史记录浏览器app"的搜索结果,一条都没了。

于是这一周我把手头十二个案例重新过了一遍,把"恢复"这件事拆成 SQLite 页缓存、app 沙盒残留、云同步时间戳三块来写。它们大多失败,失败的细节比成功更值得留档。

归档 · 每周更新 12 篇条目 编辑:江晚 2026-06-02

文章列表

按发布时间倒序 · 每次更新追加
旧手机屏幕亮起,停在浏览器历史记录页 移动端 · 案例

那台 iPhone 6s 里,Safari 历史记录停在 2024 年 7 月 17 日 21:06

机主姓周,做外贸,手机是 2019 年买的 6s,iOS 停在 15.8。他坚持 7 月 17 日之后自己"至少每天用 Safari",可 History.db 的最后一条关闭时间是 21:06:42。我把数据库完整取出,用 sqlite3 查了七遍,又翻了两份本地快照,结论是——他在撒谎,或者他手机上装的那个"浏览器恢复历史记录浏览器app"把写入截断了。这两者差别很大,前者是人的问题,后者是软件把证据吃掉了。澳门新澳网1688.1688bbs首页论坛 里有人贴过同型号的同类现象,但没人把时间戳对齐到分钟。

江晚2026-05-27 · 2,104 字
电脑屏幕上滚动的代码与数据库查询 取证 · SQLite

History.db 的 WAL 文件救回 41 条记录,代价是三个通宵

Android 上的 Chrome 把历史记录写在 History 里,WAL 模式开着,删除动作先落 -wal 再 checkpoint。一位姓陈的开发者把他的测试机给我,说"删干净了"。我用 sqlite3 拷出 .db、-wal、-shm 三件套,配 .recover 跑出 41 条已删除但页内仍有余烬的记录,其中 3 条的 last_visit_time 精确到微秒。隔壁工位的同事看了说这活儿不划算,我不这么看:kht16.vipqq浏览器打开就可以 这类入口之所以被人反复问,正是因为它承诺"一键",而一键就是覆盖写入,覆盖写入就是证据消失。慢,才是取证的态度。

江晚2026-05-24 · 3,320 字
深色屏幕上的二进制数据流 口径 · 争议

「恢复」这个词,被应用商店里 200 多个 app 用坏了

我在 5 月 9 日统计了某应用商店里标题含"浏览器恢复历史记录"的 app,共 213 个,其中 189 个的核心动作是读取你自己的云同步记录再念给你听——这不是恢复,这是朗读。真正的恢复要碰磁盘扇区、要碰未被覆盖的页。所以当有人问我"可播放任何视频的浏览器 能不能顺带把历史找回来",我第一反应是:先告诉我它到底往哪写,再谈找不找得回来。这是立场问题,不是技术问题。

江晚2026-05-19 · 1,870 字
显示器前有人正在调取浏览器缓存文件 案例 · 开户页

2025 年 11 月 3 日晚上,一个开户页在历史里留下了 6 次重定向

委托人找我,是因为他在 0149.cm浏览器打开网站开户审核 这个页面卡了整整一晚。历史记录里 6 次 302 的落点我都还原出来了,包括中间一次跳回原域名的行为。这单我不谈结论,只记方法:把 visits 表按 visit_time 排序,对着 redirects 表看 from_visit,就能画出那条链。链是真实的,链背后的人想干什么,我判断不了,也不该由我判断。

江晚2026-05-12 · 2,460 字
桌面上摊开的旧资料与一台读取中的笔记本 数据源 · 核查

有人拿「正版港澳图库资料查询」的页面当历史记录恢复的测试样本

这听起来荒诞,但确实发生过:一位做资料归档的老先生把 正版港澳图库资料查询 存成书签,反复在五台设备上打开,只为看五台设备的历史记录是否同步一致。5 月 6 日他给我看结果,五台里两台漏记,一台时间偏移 8 小时。我佩服这种拿真实页面做压力测试的笨办法,比跑 benchmark 有用得多。记录是他自己的,方法我抄下来了。

江晚2026-05-06 · 1,540 字
键盘与屏幕上的下载进度条 批量 · 工具链

批量导出比批量"恢复"诚实:一次 2,300 条历史的格式化记录

5 月 2 日我给自己定了条规矩:任何声称能恢复的工具,先用它导出一遍现有记录,看它导得对不对。我试了某个 正版49图库资料免费打开批量下载 的页面做对照样本,导出 2,300 条,逐字段比对我自己库里原有的 2,300 条,发现两个工具把 visit_duration 写成了一律 0。会写错已知数据的工具,不该被允许去碰未知数据。这条规矩现在贴在我显示器边上。

江晚2026-05-02 · 2,090 字
焊着芯片的电路板微距 原理 · 页缓存

NAND 上的"删除"只是把页标记为可写,这句话我讲了 60 遍还在讲

4 月 29 日下午,一个实习生第三次问我为什么删掉的历史还能被 WAL 捞回来。我从闪存控制器讲起,讲 trim、讲 wear leveling、讲为什么手机一开启加密就几乎没戏。讲完他点点头,转头又去装了一个"浏览器恢复历史记录浏览器app"。我不怪他,怪的是那些把"恢复"写成"找回"的应用文案,它们让人以为删除等于后悔药。真实情况是:删除只是把决定权交给了下一次写入。

江晚2026-04-29 · 2,740 字
手机界面上一排应用图标 app 沙盒

卸载一个"历史恢复"app 之后,它在 Documents 里留了 12MB 的索引

4 月 22 日清理一台二手机,卸掉某恢复类 app 后翻它的沙盒目录,发现 12.4MB 的 index 文件,里面是它读过的所有历史记录条目的完整镜像。也就是说,一个来帮你"恢复"的东西,先把你的历史抄了一份带走。这件事我写在当天的日志里,用了加粗:卸载不等于清除。很多人问我该不该装,我的回答一直是——你应该先问它备份到哪,再决定装不装。

江晚2026-04-22 · 1,960 字
服务器机柜与网络指示灯 同步 · 时间戳

三台设备的历史记录差 38 分钟,起因是其中一台的时钟漂移

4 月 15 日帮人核对 Chrome 同步,两台 PC 一台安卓,历史记录条数差 117 条,时间差 38 分钟。我先把三台的系统时间戳比了一遍,果然安卓那台慢了 38 分钟——它连过校园网 NTP,出了校门就没再校准。对齐自然时间之后,117 条全部对上了。结论朴素到无聊:很多"数据丢失"是时钟问题。但无聊的结论救过我和这位委托人各一次。

江晚2026-04-15 · 1,680 字
笔记本屏幕上写满注释的代码 方法 · 可复现

我把我这套流程写成 9 步,任何敢动手的人都能复现,包括失败

4 月 8 日。步骤从"断网、别打开那个浏览器"开始,到"算哈希、存只读副本"结束,中间第 5 步是判断该不该动 -wal。全篇没有一句"专业工具一键完成",因为一键完成在这个领域基本等于犯罪现场二次污染。有人留言说我写得太慢太啰嗦,我认。取证本来就是慢工,快出来的东西经不起对质。这 9 步我每做一单就校一遍,到今天校了 27 遍。

江晚2026-04-08 · 4,120 字
纸笔旁的读书笔记与标注 书与文献

读完《数字取证原理》第 7 章,我对"浏览器恢复历史记录"这行字彻底改观

3 月 30 日在旧书店花 32 块买到一本 2013 年的《数字取证原理》,第 7 章讲文件系统残留,整整 41 页,没有一句谈 app。作者那时候大概想不到十年后人们会为一个手机浏览器的历史记录反复付费。我把这章连读三遍,标了 27 处,最要紧的是那句:证据的价值取决于保存它的链条是否连续。链断了,恢复出来的东西只是好奇心的产物,不是证据。

江晚2026-03-30 · 2,380 字
堆叠的旧设备与线材 复盘 · 失败集

这个月 7 个委托,成功 2 个,剩下 5 个我写在失败集里

3 月 24 日汇总。失败的 5 个里,3 个是因为机主在来找我之前已经装了别的恢复 app,写入了新数据;1 个是设备开启了全盘加密且密钥未留;1 个是历史记录被同步服务回写覆盖,36 小时内两次。我一条一条写清楚为什么失败,因为公开失败比公开成功更能让人少走弯路。有人不爱看失败集,觉得丧。我反而觉得这 5 条是这整个页面里最该被读的部分。

江晚2026-03-24 · 3,050 字

标签云

按文章实际出现频次标注
浏览器历史恢复12 SQLite 页缓存7 WAL 文件5 移动端取证6 app 沙盒残留4 云同步时间戳5 History.db6 visit_duration3 全盘加密3 失败集4 数字取证原理1 Chrome 同步3 NAND trim2 时间戳对齐2 数据只读副本2

被翻过最多的

统计区间 2026-03-01 至 2026-06-01