数码之家

标题: U盘跑盘测试软件是否都有特殊算法生成数据防止扩容盘通过检测 [打印本页]

作者: tomyluo    时间: 2024-9-22 17:53
标题: U盘跑盘测试软件是否都有特殊算法生成数据防止扩容盘通过检测
最近在研究单片机模拟U盘,发现电脑读取U盘本质上就是读取各个扇区的数据,然后U盘根据电脑请求的扇区编号读取出存储颗粒上面的对应数据,把数据返回电脑。U盘测试软件则是按照一定算法生成一段伪随机数据文件填充U盘,然后读取上面的数据,在校验过程中程序自己可能也是根据算法相应生成对应位置数据进行比较,判断U盘上对应位置的数据是否和自己生成的数据一样(比如,校验文件第1000字节时,程序也在自己根据算法来生成“正确的”第1000字节数据,然后和U盘文件中的第1000字节数据比较)。这时我想到一个问题,扩容盘里面完全可能是没有存储芯片的,直接用单片机生成扇区数据(比如,电脑读取第1扇区数据,单片机根据扇区编号1生成对应的数据返回电脑),在电脑看来读取过程和正常U盘是完全没有区别的(除了不能正常写入)。于是,我想到,是否可能出现一种扩容盘,专门按照某个检测软件的算法生成校验数据,使得检测软件校验通过?我分析了一下,例如一个扇区大小4096字节,如果测试软件每一次只生成4096字节数据(1个扇区)或者更少,而且这段内容的生成仅和一个参数有关(例如这段内容在文件中的偏移量),彼此独立,那么单片机是有可能生成这个数据的,但是,如果测试软件生成的数据是从前往后迭代生成的(比如,第9~16字节的生成依赖于第1~8字节,第17~24字节的生成依赖于第9~16字节……),那么,要生成这一片段中后面部分的数据,就必须生成前面部分的数据。如果U盘是个通过算法生成数据的扩容盘,在生成其中某个扇区数据的时候,由于迭代算法的原因,需要非常长的时间(例如当电脑读取第128扇区,单片机需要从头开始迭代计算,直到生成第128扇区的数据返回电脑)。U盘跑盘测试软件是否都是这样通过迭代的方式产生测试数据,使得U盘不可能通过实时计算的方法快速的直接生成任意一个位置的数据?
作者: tomyluo    时间: 2024-9-22 18:05
本帖最后由 tomyluo 于 2024-9-22 18:06 编辑

这是我看到的关于urwtest的分析,里面提到在校验过程中有时也会返回前面的位置重新校验,是否就是防止此类实时生成数据的U盘?如果全程都按顺序读取,例如按照1-2-3-4-5-6扇区顺序读取,那么U盘有可能一个一个扇区生成数据,生成完1扇区数据,将这个数据缓存,如果下次电脑读取第2扇区数据,就根据算法和第1扇区数据计算出来,但是,按照1-2-3-4-2-5-6的顺序读取,在U盘实时生成完第4扇区数据之后,缓存的是刚刚生成的第4扇区数据,要生成第2扇区数据,就要重新再计算出1扇区数据,然后再迭代生成第2扇区数据,之后电脑又读取第5扇区数据,缓存的是第2扇区,又得重新生成第3、4扇区数据,再生成第5扇区数据,这样一来这种U盘就会暴露。虽然电脑上面也是一个个迭代生成校验数据的,但是电脑可以自己决定把前面生成过的哪一个数据保存下来(例如在校验到第100个扇区的时候,自己也在生成第100扇区的“正确”校验数据,记录这里生成的校验数据和编号100,之后可以回过来重新校验和对比),而U盘是完全无法预测之后哪个扇区要被读取的。

[attach]2207372[/attach]

作者: newboyfeng    时间: 2024-9-22 19:27
你这个是针对算法,万一校验是随机写的数据呢
作者: zzfaye    时间: 2024-9-23 03:57
论坛那个检验u盘的软件好久没更新了。。。
作者: 吃烧饼喝三鹿    时间: 2024-9-23 09:50
确实好久都没更新了啊
作者: digital2001    时间: 2024-9-23 10:24
扩容盘理论上是可以做到对抗跑圈软件的验证手段的,但只是理论,真要实践,还是要通过主控,而主控厂商基本不可能做这种毁商誉的东西,华强北也许有技术能力,但是没利润空间,不可能去研发这种主控。而且软件(跑圈算法)一旦升级,硬件(主控)就要落后挨打了。
作者: tomyluo    时间: 2024-9-23 14:08
digital2001 发表于 2024-9-23 10:24
扩容盘理论上是可以做到对抗跑圈软件的验证手段的,但只是理论,真要实践,还是要通过主控,而主控厂商基本 ...

我做了个“扩容盘”,能通过h2testw检测,不过只能通过这一个软件的检测
https://www.mydigit.cn/thread-473516-1-1.html
作者: digital2001    时间: 2024-9-23 17:20
tomyluo 发表于 2024-9-23 14:08
我做了个“扩容盘”,能通过h2testw检测,不过只能通过这一个软件的检测
https://www.mydigit.cn/thread- ...

能预判跑圈软件的预判还是挺厉害的
不过跑圈软件更多的是用来检测量产以后的可靠性,扩容检查只是顺带的,我曾经遇到过ecc设置到0,量产成功以后多跑几圈还是通不过,应该是颗粒已经磨损得差不多了。
作者: 笑着无奈    时间: 2024-9-24 08:52
会跑圈的人不多。更多人都不知道什么事扩容。所以扩容只针对除了少部分知道的人之外的大部分人。
只需要赚大部分人的钱就行了。




欢迎光临 数码之家 (https://www.mydigit.cn/) Powered by Discuz! X3.4