当我们谈论从USB闪存设备恢复数据时,磨损的NAND闪存芯片是一个常见问题。如今,即使是出厂时的芯片质量也可能很低。您的U盘可能因此在一个月内就损坏。不幸的是,在我们谈到其他使用NAND芯片的设备时,也能看到这种趋势,例如固态硬盘、手机,甚至现代汽车!
1rh硬盘123
1rh硬盘123
2012年至2018年间生产的特斯拉汽车使用了由Nvidia Tegra 3片上系统驱动的信息娱乐系统,该系统包含8GB的eMMC NAND存储。问题在于,这些闪存芯片会磨损,达到其擦写周期限制,无法可靠地存储数据,从而导致运行故障。大约有16万辆汽车内部使用了此类eMMC存储,并且可能受到此问题影响。存储控制器无法再找到可用的良好NAND块,因此发生故障。一旦存储设备磨损,它可能会影响汽车的某些功能,如触摸屏、后视摄像头、除雾系统等。在最坏的情况下,它甚至可能影响特斯拉汽车的关键功能,如自动驾驶。
1rh硬盘123
特斯拉已经意识到这些问题,并尝试通过一些更新来补救,这些更新减少了写入的日志数量,改进了错误纠正和存储策略。此外,在2020年5月,特斯拉开始生产备件,现在使用64GB的美光eMMC,而不是海力士的8GB eMMC。
1rh硬盘123
但主要问题仍然存在。如果您需要查找并保存一些系统文件(如密钥和证书),该怎么办?
1rh硬盘123
让我们来看两个来自此类汽车的真实案例。
1rh硬盘123
第一个芯片是SM控制器,内存为ADD79491 6044ADD7,部件大小 = 4096Mb,页大小 = 8832字节,块大小 = 2048页。在这种情况下,芯片有两个Bank,但您也可能遇到只有一个Bank的芯片。我们需要找到名为 car.key 和 car.crt 的密钥文件和证书文件。
1rh硬盘123
为此,我们需要执行一些准备步骤。
1rh硬盘123
首先,您需要读取该芯片的转储数据。您需要找到引脚定义图。
1rh硬盘123
成功读取转储数据后,我们首先更改块大小。
1rh硬盘123
步骤 1。 由于该驱动器的容量非常大,第一步是在任务中将块大小更改为4096页。您可以像这样操作:
1rh硬盘123
>
此操作对于应用此大小的XOR是必要的。在某个阶段,您将需要恢复块大小的原始值(等于256),但我们稍后会回到这一点。
1rh硬盘123
步骤 2。 由于我们遇到的是一个具有两个Bank的案例,我们最终得到了一个包含两个转储数据的任务。与单Bank案例的区别仅在于少了一个“按块/页连接”的步骤。
1rh硬盘123
因此,两个Bank的主要问题是每个Bank都有对应的XOR。您可以在顶部的XOR列表中看到它们。
1rh硬盘123
1rh硬盘123
XOR的名称包含关于芯片使能部分和将要执行的操作的信息(用于错误纠正的ECC区域数据解密,或用于镜像组装的数据区域数据解密)。如果是单Bank芯片,则不需要CE1的XOR。
1rh硬盘123
步骤 3。 这些是此类案例的典型准备步骤:
1rh硬盘123
1rh硬盘123
在这种情况下,XOR用于一些虚拟平面,其大小是我们通过在芯片节点上更改芯片块大小来设置的。这个小技巧避免了在不同图中(即在图的第三行)校正和重新读取转储数据的需要,我们在那里定义ECC,进行校正并重新读取无效扇区。图的第四行再次是XOR,但这是用于数据的XOR,它本身并不自足,这就是为什么在应用了ECC的XOR之后应用它很重要。这种XOR更改看起来与AU案例非常相似,当时我们需要先选择用于ECC的XOR,然后再选择用于块编号的XOR。
1rh硬盘123
页面设计应如下所示:
1rh硬盘123
页大小:16个扇区 8832
扇区大小 544
结构*
32-512; 0-32;
544-512; 0-32;
1126-512; 0-32;
1638-512; 0-32;
2220-512; 0-32;
2732-512; 0-32;
3314-512; 0-32;
3826-512; 0-32;
4408-512; 0-32;
4920-512; 0-32;
5502-512; 0-32;
6014-512; 0-32;
6596-512; 0-32;
7108-512; 0-32;
7690-512; 0-32;
8202-512; 0-32;
1rh硬盘123
这是非常重要的一步! 在添加了所有转换之后,我们回到我们操作的第一步,并在参数中恢复初始的块大小(256页)。
1rh硬盘123
在所有转换完成、ECC生效并且转储数据尽可能被重新读取之后,您可以开始构建镜像。镜像是使用特殊脚本组装的。请确保所有参数与图片中相同。
1rh硬盘123
1rh硬盘123
如果ECC问题严重,您可以使用GREP搜索 car.crt,模式为 @4\x2D\x42\x45\x47\x49\x4E\x20\x43\x45\x52\x54;搜索 car.key 的模式为 @4\x2D\x42\x45\x47\x49\x4E\x20\x52\x53\x41\x20。两种类型的文件在文件末尾都有字节序列 2D2D2D2D2D0A,可用于确定文件的确切大小。
1rh硬盘123
第二个案例是PS8032控制器或类似控制器,1×2 ADD794DA 74C30000 内存,部件大小 = 4096Mb,页大小 = 8832字节,块大小 = 256页,双通道内存,这表明存在两组独立的IO0-7线路。
1rh硬盘123
总的来说,第二个任务与上面的案例非常相似,但有一些例外。
1rh硬盘123
-
图的第一行上的ECC应这样定义:
1rh硬盘123
– 0 [1076] – 1076 [1072] – 2148 [1072] – 3220 [1072] – 4292 [1072] – 5364 [1072] – 6436 [1072] – 7508 [1072]
1rh硬盘123
-
典型的转换集和组装参数应如下所示:
1rh硬盘123
1rh硬盘123
除此之外,方法和问题与本文的第一个案例相同。主要问题是转储数据的质量。芯片通常已经磨损。因此,更简单的做法是:先进行所有转换,然后通过GREP搜索找到必要的 car.key 和 car.crt 文件,并专注于重新读取包含这些文件的页。请记住,通道是不同的,并且转储数据是通过扇区组合的。这就是为什么您只能在图的第一行重新读取,但在最后一行保存文件。为了更方便地重新读取,您可以稍微改变转换的顺序,如下所示:
1rh硬盘123
1rh硬盘123
如果您对数据恢复案例有疑问,欢迎您向ACE实验室的技术支持部门提出。
1rh硬盘123 |