一款开源数据恢复工具——scalpel
scalpel是一款命令行工具,虽然是在linux环境下开发,但也可以在Windows下使用。scalpel的实现原理和foremost很相似,但是他较之foremost做了一些改进。
scalpel恢复原理:
扫描整个镜像文件,根据配置文件寻找相关文件类型的文件头和文件尾,正常找到后将这段内容雕刻出来;当找到了文件的头部,但是在它附近没有找到文件尾标志的时候,scalpel提供两种处理方式,一是放弃对该文件的雕刻,二是根据自定义的各类文件的最大长度进行雕刻。
scalpel的几个特点
从他的恢复原理我们可以得出scalpel的几个特点:
1、使用scalpel恢复镜像文件时,不需要关心镜像文件的文件结构是否有损坏,或是镜像文件是否因不同机器制作而打上不同的标记,适用性很强。
2、由于scalpel只是盲目的进行扫描搜索,因此scalpel并不能区分它扫描到的哪些属于删除文件,哪些是正常文件。
3、scalpel在“雕刻”文件的时候,是将文件头至文件尾的这部分内容全部“抄写”,也就是说它适用于恢复连续性碎片。而视频、音频文件往往比较大,形成连续性碎片的几率比较小,因此scalpel对大文件恢复的效果很差(恢复出来的几乎都不可读)。
4、由于scalpel使用了多线程进行扫描搜索和雕刻,恢复的效率较高。
scalpel恢复文件类型
就我的试验来看,使用scalpel恢复效果比较好的集中文件类型是PDF,Word,JPG图片,html文件。对图片而言,png、gif、tif格式的图片恢复出来的大多不可读。
另外,使用scalpel恢复的效果好坏取决于配置文件中对各种文件类型标志的确定,文件类型的标志确定的越准确,恢复的结果就比较好。
scalpel使用方法
scalpel的使用方法是:在配置文件scalpel.conf 中选择要恢复的文件类型,就是去掉相应的注释,当然也可以在配置文件中创造自己的文件类型标志,然后在命令行下使用命令: “ scalpel.exe -o 恢复文件存储路径(此目录必须是空的) 要恢复的镜像文件路径” 即可。当然scalpel还有一些参数设置,这里只说了最简单的一种方式。
scalpel源码
scalpel的开源代码在github上有,这里放一下连接:
https://github.com/sleuthkit/scalpel