JDCTS5 发表于 2023-7-4 15:31:51

数据取证:PC-3000 SSD -如何绕过TRIM

本帖最后由 JDCTS5 于 2023-7-4 16:11 编辑

数据取证:PC-3000 SSD--如何绕过TRIM
在本文中,我们将讨论TRIM命令,它出现在SSD时代的开始(大约14年前),并成为所有现有固态硬盘的原生功能。
https://blog.acelab.eu.com/wp-content/uploads/2023/06/TRIM_MAIN.jpg那么,这是什么,它是如何工作的呢?TRIM -是一个内部硬件SSD命令,它与操作系统配对工作。默认情况下,TRIM完全集成在从Windows Vista SP1、Windows 7和MacOS X 10.6(大约从2009-2010年)开始的所有操作系统中。我们知道NAND存储芯片可以非常快地写入和读取信息。但是重写会非常慢,因为NAND存储器必须:1. 找到写入新数据的位置;
2. 擦除旧数据(用零填充NAND单元格);
3. 进行写操作。为了防止这种缓慢的处理,SSD开发人员决定添加TRIM命令(一个垃圾收集器),它在后台擦除所有标记为已删除的数据。当用户决定在已经TRIM和清理过的地方写入新数据时,这有助于节省时间。SSD如何知道哪些数据应该被TRIM呢?操作系统告诉驱动器哪些数据被标记为“已删除”,SSD只是擦除属于已删除区域的块。https://blog.acelab.eu.com/wp-content/uploads/2023/06/TRIM_Scheme.png TRIM 活动方案https://blog.acelab.eu.com/wp-content/uploads/2023/06/TRIMMED_FS.pngZero size of TRIMed folders in DE有时SSD甚至可以做一件更简单的事情——在快速格式化的情况下,SSD只是擦除翻译器-主要微程序地址的物理到逻辑扇区。因此,在尝试从SSD读取任何数据时,SSD只返回0(新的逻辑翻译器对旧的物理数据一无所知,因此它只“读取”0)。当你错误地通过数码相机格式化了mSD, SD和CF卡时,数码相机也会发生同样的事情。在RAW恢复中,你找不到任何东西,因为翻译器已经被擦除,新版本的翻译器也不关心任何旧数据。在这种情况下,我们使用PC-3000闪存和我们的方法从mSD/SD读取NAND内存并重建映像。然后可以看到RAW格式的数据,有时甚至可以建立具有完整或部分文件夹结构的映像。但是对于ssd来说,芯片关闭不起作用,因为所有现代ssd都包含完整的硬件加密或带数据压缩的自适应XOR,所以在解密之前,我们不会看到NAND内部的任何数据。还记得以前的好日子吗?客户给你一个格式化的硬盘,并要求恢复?只需在DE中点击几个按钮,就可以获得完整的文件夹结构和十几个RAW数据。不幸的是,这些日子已经一去不复返了,因为即使是基于Shingle磁记录(SMR)技术的经典硬盘也在使用TRIM!因此,在快速格式化后,翻译器将被擦除,您将只得到零,而不是实际数据。让我们回到固态硬盘。格式化的SMR恢复将是未来博客文章的另一个主题。那么,让我们假设客户错误地格式化了他的SSD,现在他想恢复数据。这可能吗?这取决于以下因素:驱动器容量、写入驱动器上的数据数量等。通常情况下,需要10分钟到24小时,硬盘才会在后台完全擦除数据。现代SSD控制器具有多核结构,这允许它们同时做一些事情。例如,当您试图使用数据提取器扫描驱动器并在RAW中找到至少一些内容时,另一个CPU核心将继续后台处理,所有数据将继续擦除。您应该记住的最重要的一点是,驱动器是TRIMing数据,即使它只是插在电源上!如果断开基于SATA的SSD与SATA电缆的连接,这对您没有帮助,因为CPU会在后台不断擦除。https://blog.acelab.eu.com/wp-content/uploads/2023/06/TRIM_1.png默认驱动器初始化和处理防止TRIM的唯一方法是禁止CPU访问NAND芯片!我们该怎么做?唯一的方法是在安全模式下短路驱动器——这将帮助我们禁用对NAND芯片的任何访问,并将使驱动器仅在CPU-RAM模式下运行。所以,我们可以在RAM中写入一些内容或从RAM芯片中读取信息,但这将不可能影响NAND芯片。https://blog.acelab.eu.com/wp-content/uploads/2023/06/SAFE_EXT.png任何SSD上的安全模式方案现在,我们需要一个Loader——一个由ACELab开发人员制作的指定和优化的小型固件。它有点像一个与目标控制器兼容的小型固件,在这里,ACELab开发人员完全关闭了所有后台活动,并解锁了一些以前被锁定的附加功能。如果我们有一个兼容的实用程序,我们可以尝试将加载程序加载到驱动器RAM中,并通过技术模式访问SSD。然后,尝试使用旧的翻译器副本重建翻译器,并将其上传到驱动器RAM中。之后,我们可以尝试使用以前使用的自定义加载程序访问数据提取器中的数据。在这种情况下,驱动器将在单通道模式下工作——速度较慢,但没有任何后台活动。https://blog.acelab.eu.com/wp-content/uploads/2023/06/TRIM_3.pngLoader上传后的Techno Mode方案现在让我们总结一下信息:
[*]TRIM工作非常快。如果有东西被删除或驱动器被格式化,你只有几分钟的时间,数据就会永远消失;
[*]请勿将驱动器插入电源!任何用于进一步研究的驱动器连接(通过SATA、M.2、USB等)都将触发SSD CPU中TRIM功能!
[*]目标驱动器必须由PC-3000 SSD支持。如果不支持,我们不能禁用TRIM或阻止数据擦除;

为了演示它是如何工作的,让我们向您展示一个现实生活中的例子。我们在这里得到了一个基于SM2259XT控制器和两个由英特尔/美光制造的NAND芯片的noname(SmartBuy NOVA)驱动器。
https://blog.acelab.eu.com/wp-content/uploads/2023/06/NOVA.jpghttps://blog.acelab.eu.com/wp-content/uploads/2023/06/SM2259XT.png我们正在检查这个驱动器上的内容,里面全是用户数据。一些视频、图片、文档——顾客每天使用的所有东西。https://blog.acelab.eu.com/wp-content/uploads/2023/06/1_new.png现在,让我们尝试用Windows上的快速格式化按钮来格式化这个驱动器;https://blog.acelab.eu.com/wp-content/uploads/2023/06/1_1_F_new.pnghttps://blog.acelab.eu.com/wp-content/uploads/2023/06/2_new.png如你所见,数据不见了。https://blog.acelab.eu.com/wp-content/uploads/2023/06/MeMe_TRIM.jpg在通用实用程序和数据提取器中,我们只会看到零,因为DE使用的是本机驱动器翻译器——这是一个在快速格式化驱动器后制作的新翻译器。https://blog.acelab.eu.com/wp-content/uploads/2023/06/3-1.pngLBA 1 232 134通用实用程序中的数据用零代替 https://blog.acelab.eu.com/wp-content/uploads/2023/06/4-1.png格式化驱动器后为空分区https://blog.acelab.eu.com/wp-content/uploads/2023/06/5-1.pngRAW没有任何旧数据-只是分区格式化后的新NTFS记录我们时间不多了,因为扫描硬盘的次数越多,后台被擦除的数据块就越多。我们需要尽快在安全模式下短路驱动器-这个技巧将帮助我们从CPU禁用NAND芯片。https://blog.acelab.eu.com/wp-content/uploads/2023/06/SAFE.jpg现在,让我们保持驱动器短路,因为对于Silicon Motion和Phison控制器,我们需要在驱动器初始化期间为它们重新供电几次。SSD必须始终处于安全模式。让我们启动SM2259XT的兼容实用程序(例如Silicon Power),并上传用于激活驱动器额外功能的加载程序。https://blog.acelab.eu.com/wp-content/uploads/2023/06/6-1.pnghttps://blog.acelab.eu.com/wp-content/uploads/2023/06/7-1.pnghttps://blog.acelab.eu.com/wp-content/uploads/2023/06/7_5.png有时我们需要手动选择兼容的加载程序https://blog.acelab.eu.com/wp-content/uploads/2023/06/8-1.pnghttps://blog.acelab.eu.com/wp-content/uploads/2023/06/9-1.png当驱动器完成初始化时,就可以启动翻译器建立过程。驱动器将扫描服务区域,将接收一些重要的SA模块,这些模块包含有关重新分配、删除、坏扇区和好扇区的信息,并将在自动模式下制作一个新的转换器。https://blog.acelab.eu.com/wp-content/uploads/2023/06/10.png翻译器建立已准备就绪。转到数据提取器,并使用PC-3000实用程序作为源进行新任务。https://blog.acelab.eu.com/wp-content/uploads/2023/06/11-1.pnghttps://blog.acelab.eu.com/wp-content/uploads/2023/06/12-2.png当一切就绪时,在对驱动器进行镜像之前,让我们首先检查LBA 1 232 134,它在驱动器格式化后由零填充。现在,它包含数据!https://blog.acelab.eu.com/wp-content/uploads/2023/06/12_3.png在翻译器建立之后,LBA 1 232 134包含数据,而不是零!当然,我们必须使用RAW恢复来查看文件。如果我们有一些-让我们停止这个过程,开始完整的驱动器镜像。万一驱动器出现问题,我们还有一个完整的内容副本。https://blog.acelab.eu.com/wp-content/uploads/2023/06/12_5.png现在,在RAW中,我们看到了1000 000 LBA扫描后的大量数据!https://blog.acelab.eu.com/wp-content/uploads/2023/06/13.png逐扇区复制到另一个驱动器以进行进一步分析当复制完成时,让我们回到RAW,并尝试找到一些有用的东西。正如你所看到的,RAW充满了数据!不幸的是,有时文件夹结构可能会消失,因为快速格式化会覆盖Zero Block,其中包括有关主引导和引导扇区的信息。如果没有这些信息,文件系统将不存在。https://blog.acelab.eu.com/wp-content/uploads/2023/06/15.png仅进行10%的RAW扫描后的结果–许多文件仍在SSD上但是数据提取器是一个非常强大的工具,经过磁盘分析,即使在格式化驱动器的情况下,也可以找到分区的旧副本并进行恢复。当然,它比完整的FS更糟糕,但比RAW要好得多。伙计们,来了!关于如何使用PC-3000 SSD来防止TRIM的大部分信息。让我们再次总结最关键的信息:
[*]自2010年以来,TRIM在每个操作系统和每个SSD中默认开启;
[*]数据从1分钟到24小时被TRIMed(取决于驱动器容量和删除的数据量);
[*]即使是快速格式化也会导致翻译器擦除。所有的数据将在数据提取器中显示为零;
[*]防止TRIM的唯一方法-关闭驱动器电源或使其永久处于安全模式;
[*]删除或格式化SSD后仍然可以恢复数据,但驱动器必须由PC-3000 SSD支持!


yI首简单歌 发表于 2023-7-27 09:45:47


学习一下,多谢楼主了
页: [1]
查看完整版本: 数据取证:PC-3000 SSD -如何绕过TRIM