数据恢复永远是电子数据取证中最重要的内容之一。每当客户问我:胡工,能帮忙恢复一下xx文件吗?大部分时候我的回答是:很遗憾,这些文件已经彻底无法恢复了。

无法恢复的原因是如今操作系统(无论是Windows、macOS,还是Android、iOS)均支持固态硬盘的[[2-电子取证:2.基础知识:trim|TRIM]]功能,且会默认启用。这意味着文件删除后,系统会在空闲时间将对应区域置零,也就是彻底删除。

以Windows为例,判断文件是否恢复的方法很简单。使用X-Ways Forensics(其他取证工具亦可)加载镜像,将某个分区进行递归浏览(Explore recursively),然后按大小排序,找到体积最大的“空余空间(net)”或“Free space (net)”,以“File”视图查看十六进制内容,如下图所示。如果内容全为零,意味着文件不可恢复。

请输入图片描述

原理很简单。X-Ways Forensics中显示的“空余空间(net)”,并非具体某一个文件,而是分区中未分配空间的集合,他们甚至都不是连续的(FTK Imager中的“unallocated space”节点就是X-Ways Forensics中“空余空间(net)”按实际情况分段显示的结果)。文件删除后,占用的空间被释放,成为未分配空间(X-Ways Forensics中的Free space,FTK Imager中的unallocated space)的一部分,如果未分配空间为全零,文件自然就无法恢复了。

当我说恢复的希望很渺茫或科普完TRIM的相关知识后,对方往往不甘心地问我,会不会这台电脑正好没有启用TRIM功能呢?也不是没有可能。那就检查确定一下吧。

管理员权限打开命令提示符,执行“fsutil behavior query DisableDeleteNotify”,如果执行结果为“DisableDeleteNotify = 0”或“NTFS DisableDeleteNotify = 0 (已禁用)”,意味着TRIM已启用,反之若执行结果为“DisableDeleteNotify = 1”或“NTFS DisableDeleteNotify = 1 (已启用)”,意味着TRIM未启用。

请输入图片描述

以上内容网上很容易搜到(顺便吐槽一下微软,上图中的“已禁用”真的很容易引起误解)。开机情况通过命令提示符或PowerShell可以直接查询TRIM状态,那么关机情况呢?

网上搜了一下,基本没有收获。所以只好自己想办法了。

管理员权限打开命令提示符或PowerShell,先执行“fsutil behavior set disabledeletenotify 1”关闭TRIM。然后输入“fsutil behavior set disabledeletenotify 0”备用。

打开RegistryChangesView,点击Creat Registry Snapshot创建当前注册表快照。

请输入图片描述

马上回到命令提示符或PowerShell,按回车键执行刚刚输入的启用TRIM命令。

接着回到RegistryChangesView,点击OK按钮对比当前注册表和刚刚创建的注册表快照。如下图所示。

请输入图片描述

很明显,启用TRIM后,HKEY_LOCAL_MACHINE\System\ControlSet001\ Control\FileSystem\DisableDeleteNotification的值由“1”变成了“0”。

我们来验证一下。

打开注册表,定位到HKEY_LOCAL_MACHINE\System\ControlSet001\ Control\FileSystem\,将DisableDeleteNotification的值由“0”改为“1”。

请输入图片描述

回到命令提示符或PowerShell,执行“fsutil behavior query DisableDeleteNotify”,结果显示NTFS文件系统的TRIM已禁用。如下图所示(请忽略图中容易让人误解的“已启用”)。

请输入图片描述

至此,Windows系统下TRIM是否启用的标记已经找到了。X-Ways Forensics加载后定位到“C:\Windows\System32\config\SYSTEM”,打开后定位到HKEY_LOCAL_MACHINE\System\ControlSet001\Control\ FileSystem\,若DisableDeleteNotification值为0,则意味着TRIM已启用。

标签: none

添加新评论