数字取证:PC-3000 SSD-如何绕过TRIM 大家好! 在这篇文章中,我们将谈论TRIM命令,它出现在SSD时代的开始(大约14年前),并成为所有现有固态驱动器的原生功能。 ![]()
那么,这是什么?它是如何工作的? TRIM–是一个内部硬件SSD命令,与操作系统协同工作。默认情况下,从Windows Vista SP1、Windows 7和MacOS X 10.6开始,TRIM已完全集成在所有操作系统中(大约从2009-2010年开始)。 我们知道,NAND存储器芯片可以非常快地写入和读取信息。但是重写将非常缓慢,因为NAND存储器必须: 1.找到写入新数据的位置;
2.擦除旧数据(用零填充NAND单元);
3.进行写入操作。 为了防止如此缓慢的处理,SSD开发人员决定添加TRIM命令(垃圾收集器),该命令在后台擦除标记为已删除的所有数据。当用户决定在已经TRIMed和清理过的地方写入新数据时,这有助于节省将来的时间。SSD如何知道哪些数据应该是TRIMed?好吧,操作系统告诉驱动器哪些数据被标记为“已删除”,SSD只需擦除属于已删除区域的块。 ![]()
TRIM活动方案
![]()
DE中TRIMed文件夹的零大小
有时,固态硬盘可以做一件更容易的事情——在快速格式化的案例下,固态硬盘只需擦除翻译器——寻址物理到逻辑扇区的主微程序。因此,SSD在尝试从其读取任何数据时仅返回零(新逻辑翻译器对旧物理数据一无所知,因此它只“读取”零)。 当您错误地通过数码相机对mSD、SD和CF卡进行格式化时,数码相机也可以对它们进行同样的处理。在RAW恢复中,你找不到任何东西,因为翻译器已经被删除,新版本的翻译器也不关心任何旧数据。 在这种案例下,我们使用PC-3000 Flash和我们的方法从mSD/SD读取NAND存储器并重建图像。然后可以看到RAW中的数据,有时甚至可以建立具有完整或部分文件夹结构的映像。 但对于固态硬盘来说,芯片关闭并不能操作,因为所有现代固态硬盘都包含完整的硬件加密或数据压缩的自适应XOR,所以在解密之前,我们不会看到NAND内部的任何数据。 还记得客户给你带来格式化硬盘并要求恢复的美好时光吗?只需在DE中点击几个按钮,就可以获得完整的文件夹结构和十几个RAW数据。 不幸的是,这些日子已经过去了,因为即使是基于单片磁记录(SMR)技术的经典硬盘驱动器也在使用TRIM!因此,在快速格式化之后,翻译器被擦除,您将只得到零而不是真正的数据。 但让我们回到固态硬盘。格式化的SMR恢复将是未来博客文章的另一个主题 所以,让我们想象一下,客户错误地格式化了他的SSD,现在他想恢复数据。有可能做到吗?这取决于:驱动器容量、驱动器上写入的数据数量等。通常,驱动器需要10分钟到24小时才能完全擦除后台的数据。 现代SSD控制器具有多核结构,这允许它们同时做一些事情。例如,当您尝试扫描驱动器并使用数据提取程序(Data Extractor)在RAW中找到至少一些内容时,另一个CPU内核将继续后台处理,所有数据将继续擦除。 你应该记住的最重要的一点是,驱动器是TRIMing数据,即使它只是插在电源上!如果您将基于SATA的SSD系统从SATA电缆上“断开”,这对您没有帮助,因为CPU会在后台不断擦除。 ![]()
默认驱动器初始化和处理
防止TRIM的唯一方法——禁用从CPU到NAND芯片的访问!我们该怎么做?唯一的方法是在安全模式下缩短驱动器-这将帮助我们禁用对NAND芯片的任何访问,并将使驱动器仅在CPU-RAM模式下运行。因此,我们可以在内存中写一些东西,或者从内存芯片读取信息,但不可能影响NAND芯片。 ![]()
HP EX900 M.2 NVMe驱动器上的安全模式短路示例
![]()
任何SSD上的安全模式方案
现在,我们需要一个加载程序——一个由ACE实验室开发人员制作的指定和优化的小型固件。它有点像一个与目标控制器兼容的小型固件,ACE实验室的开发人员完全关闭了所有后台活动,并解锁了一些以前被锁定的附加功能。如果我们有一个兼容的实用程序,我们可以尝试将加载程序加载到驱动器RAM中,并访问当前SSD的技术模式。然后,尝试使用翻译器的旧副本重建翻译器,并将其上载到驱动器RAM中。之后,我们可以尝试使用我们以前使用的自定义加载程序访问数据提取程序(data Extractor)中的数据。在这种案例下,驱动器将在单通道模式下操作——速度缓慢,但没有任何背景活动。 ![]()
装载机上载后的技术模式方案
现在让我们总结一下信息: 1.TRIM工作非常快。如果某些内容被删除或驱动器被格式化,你只有几分钟的时间,数据将永远消失; 2.请勿将驱动器插入电源!任何用于进一步研究的驱动器连接(通过SATA、M.2、USB等)都将是SSD CPU中TRIM功能的原因! 3.目标驱动器必须由PC-3000 SSD支持。如果不支持,我们不能禁用TRIM或阻止数据擦除;
为了演示它是如何工作的,让我们显示展示一个现实生活中的例子。我们在这里得到了一个基于SM2259XT控制器和两个由Intel/Micron制造的NAND芯片的noname(SmartBuy NOVA)驱动器。 ![]()
![]()
我们正在检查这个驱动器上的内容,其中充满了用户数据。一些视频、图片、文件——随机客户每天使用的所有内容。 ![]()
现在,让我们尝试用Windows上的快速格式化按钮来格式化这个驱动器; ![]()
![]()
正如你所看到的,数据已经不见了。 ![]()
在通用实用程序和数据提取程序(Data Extractor)中,我们将只看到零,因为DE使用的是本机驱动器翻译器,这是一个新的,是在快速格式化驱动器后制作的。 ![]()
LBA 1 232 134中通用实用程序中是零而不是数据
![]()
驱动器格式化后的空分区
![]()
RAW没有任何旧数据,只有格式化分区后的新NTFS记录 我们现在没有太多时间,因为我们扫描驱动器越多,背景中的块就会被擦除得越多。我们需要急于在安全模式下使驱动器短路-这个技巧将帮助我们从CPU禁用NAND芯片。 ![]()
现在,让我们保持驱动器短路,因为对于Silicon Motion和Phison控制器,我们需要在驱动器初始化期间对其重新供电几次。SSD必须始终处于安全模式。 让我们启动SM2259XT的兼容实用程序(例如,Silicon Power),并上传加载程序以激活驱动器的额外功能。 ![]()
![]()
![]()
有时我们需要手动选择兼容的加载程序
![]()
![]()
当驱动器完成初始化时,将可以启动建立翻译器过程。驱动器将扫描服务区域,将采用一些重要的服务区(SA)模块,其中包含有关重新分配、删除、坏扇区和好扇区的信息,并将在自动模式下制作新翻译器。 ![]()
建立翻译器已准备就绪。前进到数据提取程序(Data Extractor),使用PC-3000实用程序作为源进行新任务。 ![]()
![]()
当一切准备就绪时,在对驱动器进行镜像之前,让我们首先检查驱动器格式后由零填充的LBA 1 232 134。现在,它包含数据! ![]()
建立翻译器之后,LBA 1 232 134包含数据,而不是零! 当然,我们必须使用RAW恢复来查看文件。如果我们有一些——让我们停止这个过程,从完整的驱动器镜像开始。在驱动器出现一些问题的情况下,我们仍然得到了完整的内容副本。 ![]()
现在,在RAW中,我们看到了1000 000 LBA扫描后的大量数据!
![]()
逐扇区复制到另一个驱动器以进行进一步分析 当复制完成时,让我们回到RAW,并尝试找到一些有用的东西。正如你所看到的,RAW充满了数据!不幸的是,有时文件夹结构可能会消失,因为快速格式化会覆盖零块,其中包括有关主引导和引导扇区的信息。如果没有这些信息,文件系统将不存在。 ![]()
仅进行10%的RAW扫描后的结果-许多文件仍在SSD上
但数据提取程序(Data Extractor)是一个非常强大的东西,经过磁盘分析,即使在驱动器格式化的案例下,也可以找到分区的旧副本并恢复它们。当然,它比一个完整的文件系统更糟糕,但比一个RAW好得多。 关于如何使用PC-3000 SSD来防止TRIM的大部分信息。让我们再次总结最关键的信息: § 自2010年以来,TRIM在每个操作系统和每个SSD中默认打开; § 数据从1分钟到24小时变为TRIMed(取决于驱动器容量和删除数据量); § 即使是快速格式化也会导致翻译器擦除。所有数据将在数据提取程序(data Extractor)中显示为零; § 防止TRIM的唯一方法是将驱动器从电源上“关闭”或永久保持在安全模式; § 删除或格式化SSD后仍然可以恢复数据,但驱动器必须由PC-3000 SSD支持!
如果您对数据恢复案例有任何疑问,欢迎向技术支持部门咨询。
|