0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

太牛了!大神用示波器恢復(fù)軟盤里的游戲

Q4MP_gh_c472c21 ? 來源:量子位 ? 作者:量子位 ? 2021-05-28 16:52 ? 次閱讀

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

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

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

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

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

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

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

設(shè)備也簡單,就用萬能的示波器。

沒錯(cuò),就是那種用來測試電路、顯示波形的儀器。

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

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

ee14b67e-be3a-11eb-9e57-12bb97331649.png

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

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

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

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

ee2259c8-be3a-11eb-9e57-12bb97331649.png

△這代表的是00101100

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

ee2cdb78-be3a-11eb-9e57-12bb97331649.png

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

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

ee9cc488-be3a-11eb-9e57-12bb97331649.png

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

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

eead2ba2-be3a-11eb-9e57-12bb97331649.png

據(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è)問題。

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

eec1ef2e-be3a-11eb-9e57-12bb97331649.png

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

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

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

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

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

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

ef2a071c-be3a-11eb-9e57-12bb97331649.png

接下來,就是處理這些神奇的波形了。

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

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

ef35d592-be3a-11eb-9e57-12bb97331649.png

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

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

比如將速度放慢100倍,聽一聽軟盤記錄的聲音?;謴?fù)出來的數(shù)據(jù),效果還不錯(cuò)。

ef51e7d2-be3a-11eb-9e57-12bb97331649.png

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

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

▍軟盤壞了怎么辦?

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

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

ef898f52-be3a-11eb-9e57-12bb97331649.png

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

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

ef9a585a-be3a-11eb-9e57-12bb97331649.png

好像效果不大。

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

efc6eb36-be3a-11eb-9e57-12bb97331649.png

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

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

efdcdc20-be3a-11eb-9e57-12bb97331649.png

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

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

efeaf97c-be3a-11eb-9e57-12bb97331649.png

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

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

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

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

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

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

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 驅(qū)動(dòng)器
    +關(guān)注

    關(guān)注

    52

    文章

    8112

    瀏覽量

    145844
  • 噪音
    +關(guān)注

    關(guān)注

    1

    文章

    169

    瀏覽量

    23868
  • 軟盤
    +關(guān)注

    關(guān)注

    0

    文章

    20

    瀏覽量

    10395
  • csv
    csv
    +關(guān)注

    關(guān)注

    0

    文章

    38

    瀏覽量

    5797

原文標(biāo)題:太硬核了!大神用示波器恢復(fù)軟盤里的游戲

文章出處:【微信號(hào):gh_c472c2199c88,微信公眾號(hào):嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    硬盤和軟盤的驅(qū)動(dòng)器屬于什么類型

    硬盤和軟盤驅(qū)動(dòng)器是計(jì)算機(jī)系統(tǒng)中用于存儲(chǔ)數(shù)據(jù)的兩種不同類型的設(shè)備。硬盤驅(qū)動(dòng)器(HDD)和軟盤驅(qū)動(dòng)器(FDD)在計(jì)算機(jī)歷史上都扮演了重要的角色,盡管隨著技術(shù)的發(fā)展,軟盤驅(qū)動(dòng)器已經(jīng)逐漸被淘汰。 硬盤驅(qū)動(dòng)器
    的頭像 發(fā)表于 10-10 15:47 ?485次閱讀

    軟盤驅(qū)動(dòng)器和硬盤驅(qū)動(dòng)器的區(qū)別

    軟盤驅(qū)動(dòng)器(Floppy Disk Drive)和硬盤驅(qū)動(dòng)器(Hard Disk Drive)是計(jì)算機(jī)存儲(chǔ)設(shè)備中的兩種不同類型,它們?cè)诖鎯?chǔ)容量、數(shù)據(jù)傳輸速度、耐用性、尺寸、成本以及使用場景等方面都
    的頭像 發(fā)表于 10-10 15:44 ?346次閱讀

    軟盤驅(qū)動(dòng)器是輸入還是輸出設(shè)備

    軟盤驅(qū)動(dòng)器是一種古老的計(jì)算機(jī)外圍設(shè)備,用于讀取和寫入軟盤上的數(shù)字?jǐn)?shù)據(jù)。它既可以作為輸入設(shè)備也可以作為輸出設(shè)備,這取決于用戶的操作目的。 1. 軟盤驅(qū)動(dòng)器的歷史 軟盤驅(qū)動(dòng)器的歷史可以追溯
    的頭像 發(fā)表于 10-10 15:41 ?320次閱讀

    log114做仿真時(shí),示波器看它的波形卻失真為什么?

    請(qǐng)教各位高手,log114做仿真時(shí),最后的輸出電壓值是正確的,但是示波器看它的波形卻失真,怎么回事?
    發(fā)表于 08-30 08:09

    示波器表功能調(diào)整方法

    示波器和萬表是電子測量領(lǐng)域中非常重要的兩種儀器,它們?cè)陔娐吩O(shè)計(jì)、調(diào)試和故障診斷中發(fā)揮著關(guān)鍵作用。然而,由于示波器和萬表的功能和操作方式存在差異,因此在使用過程中需要進(jìn)行適當(dāng)?shù)恼{(diào)整以
    的頭像 發(fā)表于 08-09 15:02 ?697次閱讀

    示波器濾波功能怎么

    示波器,作為電子工程師和科研人員的得力助手,在信號(hào)處理、電路調(diào)試、通信分析等領(lǐng)域扮演著不可或缺的角色。而在示波器的眾多功能中,濾波功能尤為重要。濾波功能能夠有效地去除信號(hào)中的噪聲和干擾,提高信號(hào)
    的頭像 發(fā)表于 05-17 17:23 ?1549次閱讀

    示波器的極簡模式和全功能模式

    熟練掌握這些功能的使用。對(duì)于新手或者對(duì)示波器很多功能不太了解的客戶,我們會(huì)收集到他們的一個(gè)反饋,就是覺得界面復(fù)雜。有些客戶掌握的比較基礎(chǔ)一些,很多LOTO
    發(fā)表于 05-16 11:29

    模擬示波器和模擬萬表的區(qū)別

    在電子測量領(lǐng)域,模擬示波器和模擬萬表是兩種常用的工具,它們各自具有獨(dú)特的功能和用途。本文將對(duì)模擬示波器和模擬萬表進(jìn)行詳細(xì)比較,從工作原理、使用場景、操作復(fù)雜度以及測量精度等多個(gè)角度
    的頭像 發(fā)表于 05-15 18:07 ?506次閱讀

    數(shù)字萬表和數(shù)字示波器的區(qū)別

    數(shù)字萬表和數(shù)字示波器在電子測量領(lǐng)域都是非常重要的工具,但它們的功能和使用場景存在顯著的區(qū)別。
    的頭像 發(fā)表于 05-09 17:21 ?551次閱讀

    示波器可以當(dāng)萬

    示波器通常不能當(dāng)作萬表來使用。盡管示波器和萬表都是電子測量工具,但它們?cè)诠δ芎陀猛旧洗嬖陲@著的區(qū)別。
    的頭像 發(fā)表于 05-08 17:06 ?757次閱讀

    示波器和萬表測量區(qū)別

    示波器和萬表在測量方面存在顯著的區(qū)別。
    的頭像 發(fā)表于 05-08 16:35 ?620次閱讀

    stm8tim1輸出一個(gè)頻率固定的pwm,在示波器里看到短暫出現(xiàn)需要的波形后便死機(jī)或重啟為什么?

    tim1輸出一個(gè)頻率固定的pwm,現(xiàn)在我在中斷里計(jì)數(shù)幾個(gè)脈沖后置為強(qiáng)制輸出低電平,然后幾個(gè)脈沖后恢復(fù)正常,在示波器里看到短暫出現(xiàn)需要的波形后便死機(jī)或重啟,有人遇到過類似情況嗎
    發(fā)表于 05-08 06:31

    你知道激光鉆孔技術(shù)有多嗎?看完這篇文章你就明白

    你知道激光鉆孔技術(shù)有多嗎?看完這篇文章你就明白
    的頭像 發(fā)表于 02-29 17:09 ?843次閱讀

    如何用DMA的方式讀寫串口數(shù)據(jù)?

    串口接收(或者發(fā)送)的數(shù)據(jù)比較大,如果中斷逐字節(jié)從FIFO讀數(shù)據(jù)耗時(shí),光盤里的找不到有關(guān)DMA讀寫串口的demo
    發(fā)表于 01-17 07:35

    ADAU1361示波器測LOUT和Rout時(shí),發(fā)現(xiàn)這個(gè)腳的信號(hào)變成數(shù)字信號(hào)的方波的原因?

    示波器測LOUT和Rout時(shí),發(fā)現(xiàn)這個(gè)腳的信號(hào)變成數(shù)字信號(hào)的方波,正常應(yīng)該是模擬信號(hào),請(qǐng)問怎么解釋這種現(xiàn)象?
    發(fā)表于 11-29 06:05