广告

示波器妙用:美国程序员用它恢复软盘里的游戏

2021-05-25 阅读:
最近,国外大佬恢复存储在软盘中的几个古早游戏代码时发现,部分软盘出现了不同程度的损坏,于是决心用万能的示波器,抢救宝贵历史代码。恢复出来的游戏代码竟然还能玩,而且界面显示清晰:这波操作,看得网友直呼:数据考古不要太酷。

最近,vsftpd作者、Google Project Zero创始人Chris Evans和Phil Pemberton一起恢复存储在软盘中的几个古早游戏代码时,他们发现,部分软盘出现了不同程度的损坏,以致于直接用Greaseweazle这样的设备是无法读取的。x9qednc

x9qednc

Greaseweazle F7 Plusx9qednc

怎么办?大佬决心用万能的示波器,抢救宝贵历史代码。x9qednc

没错,就是那种用来测试电路、显示波形的仪器。x9qednc

x9qednc

恢复出来的游戏代码竟然还能玩,而且界面显示清晰:x9qednc

x9qednc

这波操作,看得网友直呼:数据考古不要太酷。x9qednc

手敲0和1,100%恢复古早代码

软盘通常以模拟信号的方式存储数据。x9qednc

这里面存储的模拟信号,用的是最原始的FM调制(频率调制)。x9qednc

也就是说,它所存储的信号0和1,分别会以不同的波形频率表示。x9qednc

x9qednc

这代表的是00101100x9qednc

以下面这段波形为例,单位周期下,在信号为0时,输出的频率是比较慢的;而当信号变成1时,频率就会突然变快。x9qednc

x9qednc

因此,只需要找到周期规律,就能判断一个周期里,信号代表的是0还是1。x9qednc

但也不能仅仅看峰值来判断信号是否为1。例如,在这个周期里,就出现了一个“假峰值”,然而人工解读的结果还是0。x9qednc

x9qednc

因为这个峰值其实是一个噪音,信号的整体趋势仍然是下降的,波形的频率本质上并没有变化。(但信号为1时,波形会呈现一个完整的周期,起始点和终点的值是非常接近的)x9qednc

有网友给出了简单的判断方法:一个周期过去,如果信号值变化很大,则代表0;如果信号值几乎不变,则代表1。x9qednc

x9qednc

据Chris Evans介绍,代表0的正弦波信号,是8μs一个周期;而代表1的正弦波信号,则是4μs一个周期。x9qednc

这种情况下,用Greaseweazle等“现代设备”直接读取数据,会出现一个问题。x9qednc

如果软盘中的数据,由于各种外部原因(时间久远、使用次数过多)出现了损坏,那么仅凭机器,是无法从这些带有大量噪音的数据中完成解读的。x9qednc

x9qednc

△就像这样,有一个扇区出现了问题x9qednc

但人却可以轻易看出这些数据中的“规律”,从而判断信号的状态。x9qednc

因此,用示波器将软盘中传输的模拟信号展示出来,再由人工进行解读,会是个更好的方法。x9qednc

于是Evans和Pemberton将示波器直接连上了软盘驱动器的测试点,看看软盘到底都输出了些什么信号。x9qednc

其中,输入信号会呈现一正一负两个波形,用来消除一部分噪声。x9qednc

x9qednc

从各种“年代久远”的软盘解读出的信号来看,难怪Greaseweazle这些设备读不出来……(连人也得仔细分辨一会儿)x9qednc

x9qednc

接下来,就是处理这些神奇的波形了。x9qednc

为了更好地处理噪音、绘制信号图像,Evans和Pemberton还用上了Audacity来处理模拟信号。x9qednc

Audacity是一个免费开源的音频分析和编辑工具,能够快速放大和检查波形,还具有多功能低通滤波器,以及直接绘图的功能。x9qednc

x9qednc

另外,Audacity也支持CSV文件的导入。x9qednc

Evans和他的小伙伴还利用这样的音频工具搞出了新的衍生玩法……x9qednc

比如将速度放慢100倍,听一听软盘记录的声音。x9qednc

恢复出来的数据,效果还不错。x9qednc

x9qednc

但上面这些,还只能用于数据比较正常的信号。x9qednc

对于软盘本身有轻微损坏的信号,想要恢复就变得更困难了。x9qednc

关于作者

这个项目的作者之一,是最受欢迎的Linux发行版FTP服务器程序vsftpd作者、著名黑客Chris Evans。x9qednc

他毕业于牛津大学,毕业后进入甲骨文工作,其后又在谷歌工作了9年时间,是Chrome浏览器安全团队和谷歌黑客团队Project Zero的创建者。x9qednc

据报道,Project Zero团队由谷歌内部顶尖安全工程师组成,使命是找出全球范围内高价值的安全漏洞,并将其彻底消除。x9qednc

2015年,特斯拉把这位黑客大神揽入麾下,负责领导安全工作。2016年,Evans从特斯拉离职。x9qednc

x9qednc

Evans还是漏洞赏金平台HackerOne的成立顾问。x9qednc

现在,据老哥自己说,他处在“半退休”状态。x9qednc

x9qednc

最后的最后,你是否也对80年代的游戏代码长啥样产生了好奇?x9qednc

Evans表示,这些恢复出来的源代码已经交给游戏原作者,是否开源就要看原作者的意思了,如果你感兴趣,不妨蹲个后续~x9qednc

参考链接:x9qednc
[1]https://scarybeastsecurity.blogspot.com/2021/05/recovering-lost-treasure-filled-floppy.htmlx9qednc
[2]https://news.ycombinator.com/item?id=27187435x9qednc

(本文内容节选自量子位)x9qednc

责编:Demix9qednc

本文为EDN电子技术设计 原创文章,禁止转载。请尊重知识产权,违者本司保留追究责任的权利。
  • 微信扫一扫
    一键转发
  • 最前沿的电子设计资讯
    请关注“电子技术设计微信公众号”
  • 一加Nord 2在非充电时段突然爆炸 日前,印度一位用户Ankur Sharma在Twitter 上发文称他妻子的 OnePlus Nord 2 在没有充电的情况下突然爆炸。Ankur 在他的推文中表示,他的妻子在 5 天前购买了 Nord 2,然后去骑自行车,将她的新智能手机放在吊兜里。装置突然爆炸,伴随着巨大的烟雾产生,他的妻子也因此受伤。
  • 特斯拉全球最大电池储能项目基地起火,持续烧了4天 据EDN报道,特斯拉公司(Tesla Inc.)在澳大利亚最大的公用事业规模的电池储能项目基地(Megapack)于7月30日发生火灾,已持续烧了4天。维多利亚州消防局声明提到,火势虽明显减弱,但尚未完全控制。
  • 剖析谷歌自研的Tensor芯片:历时4年打造,有何特别之处? 谷歌及谷歌母公司Alphabet CEO Sundar Pichai今日在其推特晒出了谷歌自研芯片Tensor。谷歌这颗芯片Tensor代号为Whitechapel,它由谷歌设计,由三星代工生产,将是一个 8 核、5 纳米、基于 ARM 的芯片。到目前为止,本文剖析了有关 Tensor 的一些重要信息。
  • 拓展应用新领域、提升使用新体验,无线快充主导力量探索 很多厂商的旗舰手机和耳机都具备无线充电功能,同时还有很多的智能家居、车载和音响已经开始集成无线充电模块,未来无线充电市场还有非常广阔的发展空间。
  • 英特尔高管意外曝光Thunderbolt 5规格:80Gbps、PAM-3调 周日早上,英特尔执行副总裁兼计算部总经理格雷戈里·布莱恩特他发布的推文中,意外展示了关于下一代Thunderbolt技术的相关信息。随后这条推文被立即删除。
  • 布局功率组件,晶圆厂加码SiC供应 晶圆供应对于芯片业从硅过渡到SiC半导体组件至关重要。多起SiC晶圆收购与交易与合作协议,充份展现芯片制造商如何透过内部和外部资源以因应市场需求,并进一步推动SiC半导体的规模经济...
广告
热门推荐
广告
广告
EE直播间
在线研讨会
广告
广告
面包芯语
广告
向右滑动:上一篇 向左滑动:下一篇 我知道了