广告

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

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

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

GVLednc

Greaseweazle F7 PlusGVLednc

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

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

GVLednc

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

GVLednc

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

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

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

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

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

GVLednc

这代表的是00101100GVLednc

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

GVLednc

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

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

GVLednc

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

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

GVLednc

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

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

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

GVLednc

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

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

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

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

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

GVLednc

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

GVLednc

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

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

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

GVLednc

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

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

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

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

GVLednc

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

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

关于作者

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

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

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

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

GVLednc

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

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

GVLednc

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

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

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

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

责编:DemiGVLednc

  • 微信扫一扫
    一键转发
  • 最前沿的电子设计资讯
    请关注“电子技术设计微信公众号”
  • 将锂金属电池寿命提高750%,竟然只需要“水”? 随着新能源汽车、移动设备等领域的快速发展,高性能电池的需求日益旺盛,锂金属作为新一代阳极材料,因具有高能量密度、轻量化等优点,备受关注。然而,锂金属电池所存在的寿命短、易起火或爆炸等问题,限制了其广泛的商业应用···
  • 按下ON还是按住OFF,将这种开关电路升级到交流电 2024年10月14日,Nick Cornford发布了一个名为“按下去再按上来,这种开关有哪些门道?”的设计实例(DI)。对于直流电压来说,这是一个非常有趣的DI,但对于交流电压呢?
  • 协同创新,助汽车行业迈向电气化、自动化和互联化的未来 汽车行业正处在电动化和智能化的转型过程中,而半导体企业站在这一变革的最前沿。这一转型带来了重大发展机遇,也带来了诸多挑战,需要颠覆性的技术以及更短的开发周期。加强半导体制造商、一级供应商和汽车制造商之间的合作,对于应对这些复杂情况及推动行业迈向电气化、自动化和互联化的未来至关重要···
  • 将单电源单端输入改成伪A/B类差分输出放大器 该放大器采用Barrie Gilbert的微混频器拓扑结构可将单端输入转换为单电源A/B类电流输出···
  • 加强低功耗FPGA的领先地位 在快速发展的技术领域,从以云端为中心到以网络边缘为中心的创新转变正在重塑数据的处理和利用方式···
  • 打造下一代家用机器人:精心构建智能化、集成化和电源优 ​​​​​​​今天的家用机器人不仅仅是工具,它们已经成为人们的生活伙伴,为日常生活增添了便利性和互动性。设计这些结构紧凑、功能强大的机器需要克服连接性、电源和外形尺寸等方面的严峻挑战,每一次突破都使我们更接近全面集成的智能家居体验···
  • 用LM337改造,让PWM DAC获得1.5 A输出能力 DAC是一种低功耗设备,其功率和电流输出能力仅限于毫瓦和毫安范围。当然,从根本上讲,它们没有理由不与合适的功率输出级配合使用,这确实也是常见的实际做法。不过,为了好玩,这个设计实例采用了不同的供电方式···
  • 意法半导体:让可持续世界从概念变为现实 最近,意法半导体人力资源和企业社会责任总裁Rajita D’Souza分享了意法半导体的可持续发展战略和近期工作重点···
  • 如何制作双变频的航空波段接收机? 随着互联网的发展,中波和短波频段的接收机已成为过去式,更不用说长波了。不过也许在无线电领域中最有趣的活动之一就是收听服务发射机,对于我这个与航空相关的人来说,主要指的是飞机的发射机和空中交通管制塔···
  • 用4200A和矩阵开关搭建自动智能的可靠性评估平台 在现代ULSI电路中沟道热载流子(CHC)诱导的退化是一个重要的与可靠性相关的问题···
  • 新一代MCU向着边缘AI和实时控制发展 在工业和汽车领域,电机驱动和数字电源转换是典型的实时控制系统,要求处理器具有高实时性和强大的数学计算与处理能力。这些应用需要优质的ADC和PWM功能,并通过联动机制,形成高效、有机的实时控制系统。
  • 英特尔Ultra处理器,用普通内存也能超频到10000 MT/s+? 目前内存超频的世界记录是12666MT/s,而想要达成这样的频率不光需要降低CPU频率,还需要辅助液氮等特殊的冷却方案,对内存进行降温。但已有主板可以在没有特殊冷却方案的情况下,超频到10000 MT/s以上···
广告
热门推荐
广告
广告
广告
EE直播间
在线研讨会
广告
面包芯语
广告
向右滑动:上一篇 向左滑动:下一篇 我知道了