Roh*_*nga 90 hard-drive controller
我正在阅读有关神奇的中国驱动器。这将如何完成?该帖子讨论了“循环模式”,评论建议使用不同的控制器来欺骗操作系统。
我去买了这些设备中的一个,试了一下,它像广告一样工作(当数据已满时覆盖数据),尽管当我格式化它时,它开始显示它的“真实”容量。
这是如何实现的?
Bar*_*dmv 58
FAT32有一个带有可用空间的主表。您可以对该主表进行十六进制编辑以显示任意数量的可用空间。我有一张 3.7 GB 大小的软盘已经有很长时间了。
KoK*_*oKo 19
硬件没有被修改 - 文件表只是被修改来欺骗操作系统。在格式化期间,文件表被擦除,因此恢复了真正的容量读数。
如果你去一个没有信誉的卖家那里,你可能会一直被这些廉价的假闪存驱动器甚至是中国的硬盘抓到。
直到我看到你的消息,我才确定这是一个不同的控制器 - 使用修改后的控制器,你可以告诉操作系统你喜欢的任何东西。但是鉴于格式修改了这种行为,这意味着在文件系统级别也发生了某种欺骗。这提出了两个选择:
这是对控制器的修改,在格式化后根本不起作用,因为它取决于文件系统修改(在我看来这仍然更有可能)。
还有另一种方法可以在不修改硬件的情况下执行此操作,例如通过将空闲块链表修改为循环(我对 FAT32 的细节不够熟悉,无法确定这是否可行 - 如果没有人可能会在几天内检查否则首先...)。
编辑:假设正在使用 FAT32 是幼稚的,更有可能的情况是使用了不同的文件系统,无意中允许使用这种循环可用空间管理技巧(只要操作系统也支持该文件系统 - 它会对用户几乎不可见)。这使得查看这样的设备更加有趣......
以下是在 key 上创建 1,000,000,000,000 字节 (1 TB) 磁盘的方法(使用 Linux):
创建假格式化的 1 TB 磁盘:
mkdosfs -C temp_file 1000000000
Run Code Online (Sandbox Code Playgroud)检查它是否真的发生了
ls -lh temp_file
Run Code Online (Sandbox Code Playgroud)连接你的 DoK 并检查它是如何安装的:
mount
Run Code Online (Sandbox Code Playgroud)找到设备名称,比如/dev/sdb1
(如果你在这里弄错了,你可能会破坏连接到系统的其他磁盘,所以要小心!)
卸载它:
sudo umount /dev/sdb1
Run Code Online (Sandbox Code Playgroud)找出我们的 FAT 表的大小:
ls -s temp_file
Run Code Online (Sandbox Code Playgroud)(第一个数字是以千字节为单位的大小)
复制到 DoK
echo "head -c [size_from_above]K temp_file > /dev/sdb1" | sudo sh
Run Code Online (Sandbox Code Playgroud)吓坏你的朋友!你可以在本地安装它,像这样玩:
mkdir test
sudo mount temp_file test -o loop
Run Code Online (Sandbox Code Playgroud)小智 5
非常简单,
闪存芯片控制器包含一些设置。产品 ID、供应商 ID 以及闪存芯片的数量和大小。
用小芯片的旧设备,用错误数量的闪存芯片覆盖固件,总驱动容量将大于安装闪存的数量。
因为地址线的数量没有改变,芯片将始终被写入。例如,先写入 128 MB,然后选择下一个芯片,然后再写入 128 MB。
因为只有一个芯片,所以没有连接选择线,第二个flashchip数据覆盖了第一个芯片的数据。
因为控制器报告了所有芯片的大小,包括未连接到操作系统的芯片,操作系统很乐意将其格式化为错误的大小。
| 归档时间: |
|
| 查看次数: |
25197 次 |
| 最近记录: |