以下是我认为可能相关的简短主题中的具体问题:
我有一个西部数据(我的书工作室)外部驱动器。 (旧版本,2009 年左右买的,有 USB 和 FIREWIRE 端口)
在那个驱动器中我有很多重要的备份。
该驱动器已加密。
不知何故,在拔掉驱动器插头时出了问题,我失去了访问权限。
驱动器还是好的,没有坏道。
我设法使用各种工具恢复文件,甚至使用 dd 命令制作了完整的图像。
问题是恢复的文件仍然是加密的。
根据我所做的调查,我设法发现这些 WD 驱动器使用存储在驱动器最后扇区中的硬编码加密密钥,而我在加密时选择的密码仅用于创建sha256 哈希值又用于访问实际的解密密钥。
从这篇关于这些驱动器的(非常好的)文章中:https://eprint.iacr.org/2015/1002.pdf我发现对于我的特定芯片组,加密密钥以硬盘驱动器最后一个块中的“SInE”开头。
我的问题是如何读取硬盘块才能获取完整的密钥? dd可以这样做吗?这是一个 2 Tera 字节驱动器,没有坏扇区。根据上面发布的文章,WD 硬件阻止对这些扇区的访问,但如果我将驱动器从 WD 机箱中取出并将其直接插入 SATA 端口,我应该能够访问它们。
我尝试过的事情:因为我已经有了驱动器的磁盘映像以确保“安全”,所以我尝试直接从驱动器恢复文件,但是恢复软件在执行深度扫描时也会搜索较旧的(已删除的)文件,并且似乎恢复更少的东西。因此,我使用 dd 将整个驱动器写入零(以确保不会有可恢复的“删除”文件),然后将驱动器放回到原始的 Western Digital 机箱中并再次格式化,并创建相同的加密驱动器(使用与我原来的密码相同),然后使用 dd 来“恢复”我制作的图像...然后我运行了 mac diskutil 急救(这些都是 mac 文件,原始格式是 HFS+)。我希望驱动器能够以某种方式识别出其中的文件仍然是加密的。没用。
我将恢复的文件放在单独的磁盘上,但找不到任何可以解码/修复它们的软件。如果我尝试手动解码,它总是告诉我解密密钥是错误的。这是因为我之前说过:我的密码不是实际的密钥,它只是用于访问驱动器上的硬编码密钥。
DD 对于 2 TB 驱动器的“实验”来说非常慢,我想要尝试的任何测试都需要超过 32 小时,所以我需要一种方法来“跳”到驱动器的最后一个扇区,除非我不知道有多少个扇区有多少个扇区,或者我应该跳到多少个扇区,或者即使 DD 是读取我需要的原始 ascii 块的正确工具。
感谢您的帮助,我已经这样做了近 20 天了。
非常感谢。
PS 我有 Linux (Ubuntu 20.04) 和 Mac 计算机,所以我正在寻找非 Windows 解决方案。谢谢
答案1
tail -c 512000 /dev/sdX
将读取驱动器的最后 512000 字节并将它们写入标准输出。
通过管道 toperl -0777 -ne 'print $& if /SInE.*/s'
提取从第一次出现的部分开始的部分SInE
。
或者perl
自己去寻找终点:
perl -e '
seek STDIN, -512000, 2 or die "seek: $!";
$/ = undef;
$_ = <STDIN>;
print $& if /SInE.*/s' < /dev/sdX
答案2
当然,dd skip={Number of 1kB input blocks to skip} bs=1024 if=yourdiskimage of=imageofendofdrive
在输入中向前跳指定的千字节数。
但:您的驱动器映像根本没有加密。您正在尝试解决不需要解决方案的问题!
正如你自己所说:
我尝试过的事情:因为我已经有了驱动器的磁盘映像以确保“安全”,所以我尝试直接从驱动器恢复文件,但是恢复软件在执行深度扫描时也会搜索较旧的(已删除的)文件,并且似乎恢复更少的东西。因此,我使用 dd 将整个驱动器写入零(以确保不会有可恢复的“删除”文件),然后将驱动器放回到原始的 Western Digital 机箱中并再次格式化,并创建相同的加密驱动器(使用与我原来的密码相同),然后使用 dd 来“恢复”我制作的图像...然后我运行了 mac diskutil 急救(这些都是 mac 文件,原始格式是 HFS+)。我希望驱动器能够以某种方式识别出其中的文件仍然是加密的。没用。
与文件存在相关的数据根本没有加密,否则您的恢复软件无法找到任何 文件。驱动器不“理解”您正在使用的文件系统 - 它直接处理您写入磁盘的字节。
如果您可以恢复文件,但其内容实际上已加密,则您必须在此基础上进行另一层加密。位于文件系统驱动程序层中并加密单个文件而不是整个磁盘的东西。