PC3000 Flash如何从可用模式列表中搜索和应用XOR
异或 – 是某种特殊操作,允许控制器使用特殊模式加密数据。因此,基本上我们可以将其称为“软加密”,因为这种 XOR 可以更改用户数据,并且不允许我们在转储中找到任何标头。
所有位于闪存驱动器中的现代控制器都使用 XOR。它有助于减少对小型NAND闪存单元的磨损影响,并提高从存储芯片读取数据的质量(在写入和读取数据期间减少位错误)。
用户在尝试在转储中查找任何标头之前应该做的第一件事是消除 XOR。存在几种用于 XOR 检测和消除的规则。
- 始终尝试检测控制器的正确名称。它将帮助您从模式列表中选择可匹配的 XOR。
- 在 ECC 自动检测期间,请尝试查找有关已用 ECC 结构的信息。此信息还可以帮助您查找 XOR。
- 最后,永远不要忘记检查存储芯片中块号和页面大小的物理值参数。
现在 – 一个小例子:
我们有一个 USB 闪存驱动器,具有以下参数:
控制器:群联 PS2251-50-F
内存芯片数量:1 个物理芯片,1 个逻辑部分
芯片总容量:4 GB
内存芯片 ID:0x98D79432,参数如下 [页码:8576 字节(16 个扇区)。区块大小:2048 个扇区(128 页)]
当我们尝试找到可能的XOR时,PC-3000闪存软件将自动向我们显示存储芯片参数的所有可能的XOR。这意味着从 XOR 的完整列表中,我们将只看到页面大小为 8576 字节的 XOR。其他 XOR 模式,例如,用于页面大小为 4320、8640、9216 等的内存芯片将被隐藏。
所以,现在最有趣的事情是:如果我们观察 XOR 列表,我们将看到它们都具有特殊的结构,例如:
25 |PS2251 BLK=128 PG=8576 (1074-1070*7)
哪里:
- 25 – 异或的 ID
- PS2251 – 控制器名称(我们可以从 USB 闪存 PCB 上的控制器获取)
- BLK=128 – 存储芯片参数中的块大小(我们可以从存储芯片参数中获取)
- PG=8576 – 存储芯片参数中的页面大小(我们可以从存储芯片参数中获取它)
- (1074-1070*7) – ECC的结构
如果尝试在我们的存储芯片上自动检测 XOR,我们可以获得 ECC 的结构。然后,在日志中,我们将看到以下结构:
或 (1074-1070*7)
有时,如果控制器标记不可用或被黑色化合物覆盖(如在某些 SD 卡上),则可以使用 ECC 结构来检测正确的 XOR。例如——在我们的例子中,我们不仅可以尝试
异或ID_25 PS2251 BLK=128 PG=8576 (1074-1070*7)
而且
异或ID_32 BLK=128 PG=8576 (1074-1070*7)
因为块大小、页面大小和 ECC 结构是相似的。
此外,如果我们找不到具有相同块大小的 XOR,则可以应用具有相同页面大小但块号较小的 XOR。例如,在我们使用 PS2251 控制器和内存芯片的任务中:
0x98D79432,具有以下参数 [页码:8576 字节(16 个扇区)。区块大小:2048 个扇区(128 页)]
我们可以将 XOR 与以下参数一起使用:PS2251 BLK=64 PG=8576,但我们不能使用块大小大于内存芯片的 XOR:PS2251 BLK=256 PG=8576
但是,当然,在任何时候,我们都可以忘记手动更改XOR,并自动使一切
只需选择: 数据检查 -> 010 异或分析:
结果顶部的 XOR 将是最兼容的。经过一段时间的检查和检查后,软件会选择它: