用示波器恢復(fù)軟盤里的游戲,這個(gè)程序員大神的操作太硬核了

有態(tài)度
2021
05/24
23:23
量子位
分享
評(píng)論

來(lái)源:量子位

又到了考(bao)驗(yàn)(lu)閱(nian)歷(ling)的時(shí)候了。

盆友,你可識(shí)得此物?

在 80 年代 90 年代,可是有不少寶貴的代碼數(shù)據(jù),都是存儲(chǔ)在這樣的載體之中的,比如 DOS 版的仙劍 1。

辣么,如果現(xiàn)在有一張存儲(chǔ)古早代碼的軟盤到了你手里,你該如何解開(kāi)其中的歷史秘密?要知道,在今天,你可能連讀取軟盤的設(shè)備都很難找到……

要是再磕了碰了,那就更完蛋了。

最近,vsftpd作者、Google Project Zero 創(chuàng)始人 Chris Evans 大佬就遇到了這樣的難題:

在和 Phil Pemberton 一起恢復(fù)存儲(chǔ)在軟盤中的幾個(gè)古早游戲代碼時(shí),他們發(fā)現(xiàn),部分軟盤出現(xiàn)了不同程度的損壞,以致于直接用Greaseweazle這樣的設(shè)備是無(wú)法讀取的。

Greaseweazle F7 Plus

怎么辦?大佬決心要搞出一個(gè)船新的方案,搶救寶貴歷史代碼。

設(shè)備也簡(jiǎn)單,就用萬(wàn)能的示波器

沒(méi)錯(cuò),就是那種用來(lái)測(cè)試電路、顯示波形的儀器。

恢復(fù)出來(lái)的游戲代碼竟然還能玩,而且界面顯示清晰:

這波操作,看得網(wǎng)友直呼:數(shù)據(jù)考古不要太酷。

手敲 0 和 1,100% 恢復(fù)古早代碼

軟盤通常以模擬信號(hào)的方式存儲(chǔ)數(shù)據(jù)。

這里面存儲(chǔ)的模擬信號(hào),用的是最原始的FM 調(diào)制(頻率調(diào)制)。

也就是說(shuō),它所存儲(chǔ)的信號(hào)01,分別會(huì)以不同的波形頻率表示。

這代表的是 00101100

以下面這段波形為例,單位周期下,在信號(hào)為 0 時(shí),輸出的頻率是比較的;而當(dāng)信號(hào)變成 1 時(shí),頻率就會(huì)突然變

因此,只需要找到周期規(guī)律,就能判斷一個(gè)周期里,信號(hào)代表的是 0 還是 1。

但也不能僅僅看峰值來(lái)判斷信號(hào)是否為 1。例如,在這個(gè)周期里,就出現(xiàn)了一個(gè) "假峰值",然而人工解讀的結(jié)果還是 0。

因?yàn)檫@個(gè)峰值其實(shí)是一個(gè)噪音,信號(hào)的整體趨勢(shì)仍然是下降的,波形的頻率本質(zhì)上并沒(méi)有變化。(但信號(hào)為 1 時(shí),波形會(huì)呈現(xiàn)一個(gè)完整的周期,起始點(diǎn)和終點(diǎn)的值是非常接近的)

有網(wǎng)友給出了簡(jiǎn)單的判斷方法:一個(gè)周期過(guò)去,如果信號(hào)值變化很大,則代表 0;如果信號(hào)值幾乎不變,則代表 1。

據(jù) Chris Evans 介紹,代表 0 的正弦波信號(hào),是8 μ s一個(gè)周期;而代表 1 的正弦波信號(hào),則是4 μ s一個(gè)周期。

這種情況下,用 Greaseweazle 等 " 現(xiàn)代設(shè)備 " 直接讀取數(shù)據(jù),會(huì)出現(xiàn)一個(gè)問(wèn)題。

如果軟盤中的數(shù)據(jù),由于各種外部原因(時(shí)間久遠(yuǎn)、使用次數(shù)過(guò)多)出現(xiàn)了損壞,那么僅憑機(jī)器,是無(wú)法從這些帶有大量噪音的數(shù)據(jù)中完成解讀的。

就像這樣,有一個(gè)扇區(qū)出現(xiàn)了問(wèn)題

但人卻可以輕易看出這些數(shù)據(jù)中的 " 規(guī)律 ",從而判斷信號(hào)的狀態(tài)。

因此,用示波器將軟盤中傳輸?shù)哪M信號(hào)展示出來(lái),再由人工進(jìn)行解讀,會(huì)是個(gè)更好的方法。

于是 Evans 和 Pemberton 將示波器直接連上了軟盤驅(qū)動(dòng)器的測(cè)試點(diǎn),看看軟盤到底都輸出了些什么信號(hào)。

其中,輸入信號(hào)會(huì)呈現(xiàn)一正一負(fù)兩個(gè)波形,用來(lái)消除一部分噪聲。

從各種 " 年代久遠(yuǎn) " 的軟盤解讀出的信號(hào)來(lái)看,難怪 Greaseweazle 這些設(shè)備讀不出來(lái)……(連人也得仔細(xì)分辨一會(huì)兒)

接下來(lái),就是處理這些神奇的波形了。

為了更好地處理噪音、繪制信號(hào)圖像,Evans 和 Pemberton 還用上了Audacity來(lái)處理模擬信號(hào)。

Audacity 是一個(gè)免費(fèi)開(kāi)源的音頻分析和編輯工具,能夠快速放大和檢查波形,還具有多功能低通濾波器,以及直接繪圖的功能。

另外,Audacity 也支持 CSV 文件的導(dǎo)入。

Evans 和他的小伙伴還利用這樣的音頻工具搞出了新的衍生玩法……

比如將速度放慢 100 倍,聽(tīng)一聽(tīng)軟盤記錄的聲音(軟盤每轉(zhuǎn)一次時(shí)間為 0.2 秒,該樣本為 20 秒):

恢復(fù)出來(lái)的數(shù)據(jù),效果還不錯(cuò)。

但上面這些,還只能用于數(shù)據(jù)比較正常的信號(hào)。

對(duì)于軟盤本身有輕微損壞的信號(hào),想要恢復(fù)就變得更困難了。

軟盤壞了怎么辦?

要是軟盤上有劃痕,這部分的信號(hào)就會(huì)變得非常難以辨認(rèn)。

這是 Evans 和 Pemberton 還原的其中一個(gè)凹痕的信號(hào),顯然中間那部分,信號(hào)振幅(圖中信號(hào)的強(qiáng)度)丟失得非常厲害,還自帶噪音

其中一種方法是,多用幾種不同的軟盤驅(qū)動(dòng)器試試。

先用 MF504C 軟盤驅(qū)動(dòng)器過(guò)濾一下噪音:

好像效果不大。

換上另一個(gè) TEAC 軟盤驅(qū)動(dòng)器后,顯示的信號(hào)更加給力了,但強(qiáng)度還是很小:

用肉眼分辨的話,難度還是太高了。

鑒于此,Evans 和 Pemberton 又換上了 TEC 軟盤驅(qū)動(dòng)器,效果好多了,峰值也變得清晰可辨。

除此之外,應(yīng)對(duì)這類信號(hào)振幅丟失的情況,還有另一種方法:手工繪制修復(fù)。

由于峰值缺失得實(shí)在太厲害,只能通過(guò)人為修復(fù),繪制部分峰值信號(hào),來(lái)解決強(qiáng)度過(guò)低的問(wèn)題。

但無(wú)論如何,這些信號(hào)都可以被修復(fù)。

據(jù)作者介紹,上面這些辦法100%可以恢復(fù)軟盤中的數(shù)據(jù)。

除非真的出現(xiàn)了不可抗力。

例如,軟盤的一部分被損壞得很徹底:

這種情況下,軟盤數(shù)據(jù)就徹底沒(méi)辦法恢復(fù)了。

所以,家里有 " 上古寶物 " 的小伙伴,一定要保護(hù)好自己的軟盤!

關(guān)于作者

這個(gè)項(xiàng)目的作者之一,是最受歡迎的 Linux 發(fā)行版 FTP 服務(wù)器程序vsftpd作者、著名黑客Chris Evans

他畢業(yè)于牛津大學(xué),畢業(yè)后進(jìn)入甲骨文工作,其后又在谷歌工作了 9 年時(shí)間,是 Chrome 瀏覽器安全團(tuán)隊(duì)和谷歌黑客團(tuán)隊(duì) Project Zero 的創(chuàng)建者。

據(jù)報(bào)道,Project Zero 團(tuán)隊(duì)由谷歌內(nèi)部頂尖安全工程師組成,使命是找出全球范圍內(nèi)高價(jià)值的安全漏洞,并將其徹底消除。

2015 年,特斯拉把這位黑客大神攬入麾下,負(fù)責(zé)領(lǐng)導(dǎo)安全工作。2016 年,Evans 從特斯拉離職。

Evans 還是漏洞賞金平臺(tái) HackerOne 的成立顧問(wèn)。

現(xiàn)在,據(jù)老哥自己說(shuō),他處在 " 半退休 " 狀態(tài)。

最后的最后,你是否也對(duì) 80 年代的游戲代碼長(zhǎng)啥樣產(chǎn)生了好奇?

Evans 表示,這些恢復(fù)出來(lái)的源代碼已經(jīng)交給游戲原作者,是否開(kāi)源就要看原作者的意思了,如果你感興趣,不妨蹲個(gè)后續(xù) ~

THE END
廣告、內(nèi)容合作請(qǐng)點(diǎn)擊這里 尋求合作
科技
免責(zé)聲明:本文系轉(zhuǎn)載,版權(quán)歸原作者所有;旨在傳遞信息,不代表砍柴網(wǎng)的觀點(diǎn)和立場(chǎng)。

相關(guān)熱點(diǎn)

近日,市場(chǎng)調(diào)研機(jī)構(gòu) Counterpoint 發(fā)布的最新數(shù)據(jù)顯示,在今天第一季度的國(guó)內(nèi)市場(chǎng),relame、OV、小米和去年第四季度相比,均出現(xiàn)增長(zhǎng)的情況。同時(shí)蘋果、華為、榮耀,出現(xiàn)了下滑情況。其中華為、榮耀下滑幅...
業(yè)界
微軟近日已推送了 Win10 KB5003173 累積更新,該更新帶來(lái)了 " 新聞和興趣 " 功能。
業(yè)界
三星已經(jīng)申請(qǐng)了一個(gè)名為 Z Roll 的商標(biāo),這表明該公司可能正在開(kāi)發(fā)一款名為 Galaxy Z Roll 的新的卷軸屏手機(jī)。
每日快訊
據(jù)外媒 The Verge 消息,蘋果公司在跟 Epic 的庭審中向法官表示其并未對(duì) App Store 所有服務(wù)抽成。并且蘋果公司今日給出了具體財(cái)務(wù)數(shù)據(jù)來(lái)證實(shí)這一情況,在 2019 年蘋果公司的 App Store 內(nèi)共實(shí)現(xiàn)了 4000 ...
每日快訊
最近幾個(gè)月半導(dǎo)體行業(yè)的大型并購(gòu)頻發(fā),9 月 Nvidia 宣布將以 400 億美元現(xiàn)金加股票的形式收購(gòu) Arm。十月底,AMD 又宣布將以 350 億美元收購(gòu)賽靈思。緊接著,Marvell 也宣布將通過(guò)股票加現(xiàn)金的方式,以總價(jià)...
人工智能

相關(guān)推薦

1
3
主站蜘蛛池模板: 鲁一鲁一鲁一鲁一曰综合网| 一个上面吃一个下免费| 欧美精品一区视频| 婷婷无套内射影院| 久久精品无码一区二区三区| 欧美特黄高清免费观看的| 公洗澡时强要了| 乱系列中文字幕在线视频| 无码人妻丰满熟妇啪啪网站| 亚洲一区二区三区高清| 美女被免费喷白浆视频| 国产裸体舞一区二区三区| 久久久久波多野结衣高潮| 欧美一级视频在线高清观看| 亚洲精品老司机| 露脸国语对白视频| 国产精品WWW夜色视频| 99re免费在线视频| 日本三级不卡视频| 亚洲av无码不卡在线播放| 精品一区二区三区无卡乱码| 国产三级精品三级在线专区| 99re热视频| 小鲜肉同性同志videosbest| 久久久久久人妻无码| 欧美电影一区二区三区| 免费一级毛片在级播放| 美女黄频a美女大全免费皮| 国产精品无码日韩欧| 99久久综合精品国产| 无码一区二区波多野结衣播放搜索| 久青青在线观看视频国产| 欧美性大战久久久久久片段| 亚洲精品无码你懂的| 男人的天堂色偷偷之色偷偷| 又爽又黄又无遮挡网站| 自拍偷自拍亚洲精品播放| 国产亚洲精久久久久久无码 | 欧美性69式xxxx护士| 亚洲第一成年免费网站| 色哟哟www网站|