删除的文件只剩碎片还能拼回来吗?看开源工具 Scalpel3 的最新突破

作者:奇安信洞鉴 发布:2026-11-11 17:30 收录:2026-11-11 20:25 2 次阅读 约 3066 字
摘要:数据一块没少,为什么恢复出来全是废片?
推荐理由:本文围绕「开源工具」、「美国」、「电子数据取证」等主题展开。
很多人都听过一句话:“删除不等于消失”。只要硬盘底层的数据还没被新文件覆盖,取证人员就有机会把删掉的文件找回来。
但这句话,只说对了一半。
真实的取证现场,更棘手的情况是:文件数据明明还在硬盘里,一块都没被覆盖,常规恢复软件扫出来的却是一堆打不开的乱码,或是一张张残缺不全的废片。
因为这份文件被删除之前,就已经在硬盘里散成了许多碎片。当记录碎片位置的目录也一起消失,取证人员还能把这些散落的碎片重新拼回来吗?
近期,美国路易斯安那州立大学(LSU)网络中心研究团队给出了新的答案。他们发布的开源工具 Scalpel3,专门针对这个困扰电子数据取证界多年的难题,提出了一套全新的解题思路。

01
为什么删了能恢复,碎了却难拼?


要搞懂碎片为什么难拼,先看看硬盘里的文件是怎么存储的。
保存一份文件时,系统其实干了两件事:一是把文件的实际内容写进硬盘存储空间;二是在文件系统的账本上记一笔——这个文件叫什么名字、数据存放在哪些位置、应该按什么顺序读取。
平时按下删除键,甚至把硬盘快速格式化,系统通常只是抹掉账本上的那行记录,底层真正的图片、文档数据并没有立刻清空。
图-目录记录删除,但底层数据仍可能保留
如果这份文件当初是一口气连续存放在一起的,账本丢了也好办。许多常见文件都有可以识别的开头标志,有些还带有结尾标志。传统恢复工具(比如2005年问世的初代 Scalpel、Foremost 等)就可以利用这些特征,在硬盘里确定文件的位置,把连续存储的数据一刀切出来,文件就有机会完整恢复。
这种不看目录、直接从底层数据里把文件抠出来的技术,叫文件雕复。
可问题是,硬盘用久了,有些文件就不再整整齐齐地待在一起。
每天反复新建、修改、删除,硬盘里剩下的空闲位置就像高峰期的停车场,东一个空位、西一个空位。这时候再存一张照片或一份大文档,一整块空地放不下,系统就会自动把文件拆成几段,也就是数据碎片,见缝插针地塞进不同空位。
文件没删的时候,账本清楚记着每一段碎片在哪,打开文件丝毫不受影响;可一旦文件被删、账本也没了,麻烦就来了 —— 硬盘底层的数据块,本身是不带页码编号的。
图-连续存储与碎片存储对比
这时候,如果还按“从头到尾连续读取”的老办法硬切,会发生什么?
2007 年,取证学者 Simson Garfinkel 在论文《Carving Contiguous and Fragmented Files with Fast Object Validation》中,展示过一张火星照片。它来自 2006 年国际数字取证研究工作组(DFRWS)文件恢复挑战赛。
在测试镜像中,这张照片的数据本身一块都没少,但它被存成了前后两段,中间刚好隔着一段其他文件的数据。如果直接从照片开头连续读到结尾,把中间夹杂的外来数据一并读入,恢复出的照片就会大面积损坏:只有上半部分还能看出火星地貌,其余区域全变成了死板的灰色和杂乱色块。
正确的做法,是先识别并剔除中间穿插的无关数据,再把真正属于照片的前后两段重新拼接,完整的火星画面才得以还原。
一张仅仅分成两段、中间插了其他数据的照片尚且如此;如果文件被拆成更多段,甚至连存放顺序都被打乱,恢复起来就更棘手了。
没有目录,没有页码,一旦碎片数量变多、顺序打乱,靠计算机盲目尝试所有排列组合,计算量会迅速膨胀为天文数字。
这一痛点并非今天才出现。早在 2006 年和 2007 年,DFRWS 就连续举办过两届文件恢复挑战赛。此后二十年间,学界虽针对特定场景提出过不少方法,却始终缺少一款能够同时兼顾大规模并行计算与多格式通用验证的开源工具。

02
Scalpel3 怎么破局:不靠穷举,层层缩小范围


时隔 20 年,初代 Scalpel 的原作者、LSU 网络中心主任 Golden G. Richard III 教授与 James Ghawaly 助理教授带领 9 名学生,用超过 20 万行 C 语言代码重写并开源了新一代工具 Scalpel3。
据 LSU 官方报道,研究团队称 Scalpel3 成功完整重建了 2006 年、2007 年两套 DFRWS 历史挑战测试集中的碎片文件,并获得了美国国家安全局(NSA)75 万美元的后续研发资助。
具体是怎么做到的?我们可以把它的核心思路概括成三步:
第一步:先分拣,再动手。
可以想象成一桶混在一起的动物拼图,先把大象、长颈鹿、小狗的碎块大致分开,再分别还原。
Scalpel3 内置了一个机器学习分类器 MoDiCo,它能识别 619 种文件类型的数据块特征,判断每块数据更可能属于哪类文件,让系统优先尝试更有希望的候选组合。
第二步:隐藏障碍物,让碎片在逻辑上合拢。
很多文件之所以断开,只是因为中间刚好插进了另一个完整的小文件。
Scalpel3 设计了一套叫 File Mirror 的机制。它会维护一份不断更新的逻辑视图:先把容易恢复的完整文件找出来,验证通过后,就把这些文件占用的数据块从后续搜索中隐藏起来。
这样一来,原本被其他文件隔开的两段碎片,就可能在逻辑视图中重新连到一起,直接按照连续文件的方式尝试恢复。
整个过程并不会改变原始磁盘镜像,只是让工具换了一种方式查看和搜索数据。原始位置仍然保留,方便取证人员回溯核查。
第三步:边拼边验,让格式自己把关。
面对真正乱序的碎片,工具会调用专门的格式验证器,用每种文件内部的语法结构、长度约束和校验信息,判断拼接是否合理。
以 Linux 可执行文件 ELF 为例,工具可以分析它的内部结构,估算文件边界和长度,再让机器学习辅助识别可能属于这类文件的数据块。
此外,工具支持保存进度和人工介入,长耗时任务中,取证人员可以随时接管。
这三步指向同一个目的:尽量减少无效尝试。机器学习帮助确定搜索方向,动态视图减少碎片之间的干扰,格式验证器负责检查拼接结果是否合理。
Scalpel3 的重要进展,是把这些方法整合进一套支持大规模并行计算、能够扩展不同文件格式的开源框架,让复杂的碎片重组有了更实用的工具基础。

03
为什么 PNG 容易拼,乱序 JPEG 依然很难?


Scalpel3 成功解决了两项困扰取证研究领域近 20 年的历史挑战,但这不代表现实中所有被删除、被打碎的文件都能恢复。
论文第 7 节的一组实验结果,就非常能说明问题。
在同时存在间隔和乱序的复杂碎片测试中,PNG 图片的完整恢复率超过 99%,JPEG 却只有约 19%。
同样是图片,为什么恢复难度会差这么多?
先看看具体数据:
  • PNG:内部自带校验信息,拼错了更容易发现。
    虽然底层磁盘扇区没有编号,但 PNG 格式自身将数据划分为一个个逻辑结构块(Chunk),每个结构块末尾都带有 CRC 循环冗余校验码。Scalpel3 可以利用这种内部结构及 CRC 代数关系来约束碎片组合,大幅缩小候选范围,快速筛除不匹配的碎片。
  • JPEG:缺少分段校验,拼错了也不一定马上报错。
    JPEG 内部是一段连续的压缩图像数据流,没有类似 PNG 的分段校验码。哪怕在半截 JPEG 后面接上一块错误的碎片,解码器往往还能继续合法解码许多字节才会报错。由于无法在拼接错误的第一时间将其排除,算法面对乱序 JPEG 时,就不得不耗费大量算力回溯试错。
图-PNG与JPEG碎片拼接的错误检测差异
工具确实取得了明显进展,但碎片恢复的难度依然取决于具体的数据组织方式和文件格式。
此外还有一点需要明确区分:Scalpel3 的分类模型能够识别 619 种文件类型的数据块特征,不等于能够完整恢复 619 种文件格式。 目前,其深度验证器主要覆盖图片、可执行程序、音频、压缩包以及现代 Office 文档等十余种格式。最终能否完成复杂碎片重组,仍取决于对应的格式验证能力与实际数据受损情况。

04
结语


从早期的连续文件提取,到如今 Scalpel3 探索大规模碎片文件的并行重组,20 年的技术演进不断刷新着“技术能够从数据废墟中找回什么”的上限。
对于电子数据取证而言,能够找回更多被删除、被打散的数据,意味着发现潜在电子证据的机会正在增加。
但恢复出一份文件,只是第一步。数据是否完整、碎片拼接是否准确、恢复结果能否得到可靠验证,仍然需要专业鉴定人员开展专业的检验、分析与核查。
工具不断拓展数据恢复的技术边界,而专业的判断与验证,始终是电子数据取证与司法鉴定工作不可替代的价值所在。

奇安信集团旗下有北京、上海、西安三家司法鉴定所:北京网神洞鉴科技有限公司司法鉴定所、上海盘石洞鉴科技有限公司司法鉴定所与陕西西安洞鉴云侦声像资料司法鉴定所。其中,上海所是上海第一家通过 CNAS 认证认可的民营计算机类司法鉴定机构。三所均通过了CMA资质认定,是目前国内少数能够通过自主研发软件进行取证与分析的电子数据司法鉴定机构,具有独立的实验室场所,其中包括:案件受理区、数据恢复区、手机取证区、计算机取证区、屏蔽室、无尘工作间和物证室,并配备多种国内外先进的技术检验及辅助设备。经过多年的时间积累和发展,现拥有一批胜任鉴定工作的专业技术人员,以专业的技能和丰富的经验,来开展声像资料和电子数据司法鉴定工作。开展的鉴定服务范围包括:声像资料鉴定、电子数据司法鉴定、计算机证据固定和获取、手机终端取证与分析、数据恢复、密码破解以及涉及电子设备的民事调查等。

转载声明:本文转载自原发布平台 (作者:奇安信洞鉴), 原文标题《删除的文件只剩碎片还能拼回来吗?看开源工具 Scalpel3 的最新突破》, 查看原文。 版权归原作者及原发布平台所有,本站仅作收录与展示,未对正文内容作实质性修改; 若涉及侵权请联系本站处理。