廣永元的辦公室內(nèi),靜悄悄地,只能聽到偶爾有手指敲擊鍵盤的聲音。
廣永元站在林鴻的身后,一臉地驚詫和激動(dòng)。
林鴻的表現(xiàn),讓他非常震驚的同時(shí)也升起了一種期待。
這種期待,并不是因?yàn)槿绻著檶⑵淦平獬鰜?lái),他們公司這次就不用遭受損失,而是能夠親眼目睹一個(gè)破解大師全稱破解一個(gè)游戲的榮譽(yù)感。
要是林鴻真的能夠?qū)⑵淦平獬鰜?lái),則說(shuō)明,他的水平很有可能達(dá)到大師級(jí)別。
廣永元此刻就好像是一位骨灰級(jí)的追星族,懷著激動(dòng)的心情正在聽一個(gè)歌手在唱歌,如果林鴻能將這首歌唱出來(lái),則說(shuō)明他是世界級(jí)的天皇巨星!
想象一下那些歌迷的瘋狂就能了解到廣永元此刻的情緒。
前面一路的破解都非常的順利,這也可以理解,畢竟林鴻之前已經(jīng)對(duì)這個(gè)流程研究了一番。
現(xiàn)在,他來(lái)到了整個(gè)破解的關(guān)鍵之處,速度也漸漸暫緩了下來(lái)。
林鴻一步一步地按著調(diào)試鍵,顯示器中的一個(gè)窗口將當(dāng)前程序在內(nèi)存中的變量名和對(duì)應(yīng)的數(shù)值顯示出來(lái),隨著他的動(dòng)作,不斷地變化著。
原本是十六進(jìn)制的機(jī)器碼,被反編譯軟件直接翻譯成了匯編代碼。
林鴻持續(xù)地按了幾十次,最終發(fā)現(xiàn)又回到了原來(lái)的地方,他的眉頭皺了皺。
一直沒(méi)有吭聲的廣永元這個(gè)時(shí)候輕聲問(wèn)道:“怎么了?”
林鴻道:“沒(méi)事,碰到反破解陷阱了。”
反編譯軟件畢竟是死的。只能根據(jù)特定的規(guī)則進(jìn)行翻譯,而一些有經(jīng)驗(yàn)的程序員,則會(huì)專門進(jìn)行反破解設(shè)置,他們會(huì)故意設(shè)置一些無(wú)效的變量用于干擾視線,甚至可以直接讓你的跟蹤軟件死掉,讓跟蹤無(wú)法進(jìn)行下去。
像現(xiàn)在遇到的這種反破解陷阱,卻是其中非常高級(jí)的技術(shù)。非常具有迷惑性,一般很難發(fā)現(xiàn),就算是發(fā)現(xiàn)了。也得花大量的時(shí)間去一一分析。
不過(guò),這卻難不倒林鴻。
他將這段代碼直接通過(guò)眼睛“復(fù)制”到了超腦系統(tǒng)中,然后進(jìn)行推演模擬。幾秒鐘就將其中的真正入口找了出來(lái)。
然后,他通過(guò)調(diào)試軟件,修改了其中的兩個(gè)地址,重新反編譯,代碼又完全不同了。
廣永元驚訝地張了張口,最終還是沒(méi)有問(wèn)出來(lái)。
他完全看不懂,林鴻這一步到底是如何做到的。在他眼里,這段代碼完全沒(méi)有問(wèn)題,要想找出其中的入口,肯定是需要每一步都下斷點(diǎn)跟蹤的。可是他看到林鴻卻只是盯著顯示器看了一會(huì)兒,然后便準(zhǔn)確地將其找了出來(lái)。
這到底是什么情況?
廣永元告訴自己,這肯定是巧合。
可是,一次可以認(rèn)為是巧合,接下來(lái)卻接二連三地出現(xiàn)了這種情況。
不得不說(shuō)。《英雄無(wú)敵》的確在這方面投入了極大的精力,反破解陷阱竟然隨處可見。
廣永元終于確定,林鴻之前并不是運(yùn)氣,而是真的擁有能夠僅僅憑借心算,就能準(zhǔn)確地找出反破解陷阱入口的能力。
“這就是大師?”廣永元自問(wèn)道。
在之前,他一直不能理解。為什么大家說(shuō)要成為大師,除了時(shí)間、毅力和勤奮,還需要天賦,在這一刻,他總算有了深切的體會(huì)。
這個(gè)時(shí)候,林鴻再次來(lái)到了一個(gè)重要關(guān)口。
他回頭看了廣永元一眼,說(shuō)道:“難怪這么難破解,原來(lái)是使用了加密算法。”
加密算法,即橢圓曲線加密算法。
其實(shí),加密算法最終可以歸結(jié)為數(shù)學(xué)問(wèn)題,很多加密算法,就是根據(jù)至今未能解決的數(shù)學(xué)問(wèn)題而發(fā)明的。加密算法安不安全,直接跟這個(gè)數(shù)學(xué)問(wèn)題有沒(méi)有解決直接掛鉤。
而橢圓加密算法的原理也是這樣,問(wèn)題為:給定素?cái)?shù)p和橢圓曲線e,對(duì)q=kp,在已知p,q的情況下求出小于p的正整數(shù)k。
可以證明,已知k和p計(jì)算q比較容易,而由q和p計(jì)算k則比較困難,至今沒(méi)有有效的方法來(lái)解決這個(gè)問(wèn)題,這就是橢圓曲線加密算法原理之所在。
橢圓曲線公鑰系統(tǒng)是代替rsa的強(qiáng)有力的競(jìng)爭(zhēng)者,與rsa相比,這個(gè)算法還擁有安全性更高、計(jì)算量小以及存儲(chǔ)空間占用小的優(yōu)點(diǎn),故而有著非常廣泛的應(yīng)用。
廣永元身為業(yè)內(nèi)人士,對(duì)一些知名的算法自然非常了解。雖然他早有心理準(zhǔn)備,但是聽到林鴻的話之后,還是被震了一下,畢竟加密算法實(shí)在是太出名,太復(fù)雜。
廣永元原本升起的希望頓時(shí)又破滅了。
難怪這么多人搞不定這個(gè)游戲的破解,原來(lái)關(guān)鍵在于這個(gè)算法。
他幾乎已經(jīng)對(duì)林鴻的這次破解不抱什么希望。
剛想說(shuō)什么安慰一下林鴻,說(shuō)就算破解不出來(lái)也可以理解,可是還沒(méi)等他說(shuō)出口,林鴻又說(shuō)話了。
“咦?有點(diǎn)意思!沒(méi)想到里面還藏了一個(gè)rijndael加密算法。”
這次廣永元徹底懵了。
ri什么算法?
這是什么算法?在他的腦海中,從來(lái)沒(méi)有這個(gè)算法的任何信息。
而這個(gè)時(shí)候,他才反應(yīng)過(guò)來(lái),不由愣愣地問(wèn)道:“你……這么快就看到第二個(gè)算法了?”
林鴻笑笑,道:“橢圓加密算法雖然復(fù)雜,但是他們并沒(méi)有很好的發(fā)揮出它的作用。”
在林鴻看來(lái),他們只要將橢圓加密算法充分發(fā)揮一下,別人要想破解,難度肯定可以再次翻倍,根本不用再到后面加上這個(gè)rijndael算法,簡(jiǎn)直有點(diǎn)畫蛇添足的感覺(jué)。
廣永元問(wèn)道:“你剛剛說(shuō)的什么算法?”
“r-i……”
林鴻將這個(gè)算法的名字重新拼了一遍,廣永元連忙用筆在紙上記了下來(lái)。
最終他確認(rèn)自己之前從來(lái)沒(méi)有接觸過(guò),非常的陌生。
林鴻解釋道:“這個(gè)算法是aes標(biāo)準(zhǔn)的一個(gè)實(shí)現(xiàn),他們所使用的是其中一個(gè)比較小的版本,只有52位,屬于對(duì)稱算法……”
rijndael最早由比利時(shí)計(jì)算機(jī)科學(xué)家開發(fā),后來(lái)被美國(guó)國(guó)家標(biāo)準(zhǔn)技術(shù)研究所選擇作為美國(guó)政府加密標(biāo)準(zhǔn)的加密算法,取代早期的數(shù)據(jù)加密標(biāo)準(zhǔn)des。
正當(dāng)廣永元在心中驚嘆于林鴻對(duì)這些加密算法了若指掌,其中典故順手拈來(lái)的時(shí)候,卻聽到林鴻突然說(shuō)道:
“搞定了。居然用了三十三分鐘,不好意思,不小心說(shuō)了大話,原本以為半個(gè)小時(shí)就能搞定。”
廣永元:“……”(本站您的支持,就是我最大的動(dòng)力。)
,