當前位置: UU看書 > 次元 > 駭客無間道最新章節列表 > 第五章 觀戰
選擇背景顏色: 選擇字體: 選擇字體大小:

第五章 觀戰

一個程式的健壯性並不在於它的程式碼有多長,關鍵是要看程式本身的程式碼緊不緊湊,呼叫合不合理,這個日本學生的程序代碼比較短小,不過他的程式碼卻顯得很精簡,透過呼叫,攻防兼備。

相對於日本學生編寫的程序代碼,歐洲學生編寫的程序代碼就顯得要冗長得多,不過歐洲學生的程式碼攻擊性看起來卻更加強大。

歐洲學生的程式是一款比較出名的IMP程式,這個程式的目的就是不斷把自己移動到下一個記憶體單元,然後執行到下一個記憶體單元執行,透過對記憶體的加一指令,使得自身在記憶體中的位置不斷移動,它的生存能力比跳轉自身的死循環要強,透過程式在記憶體中的位置移動,即可躲避對手的攻擊。

歐洲學生的程序代碼還採用“哨兵”概念,即先在程式碼前面放一個資料,然後

檢查該資料是否被改變,如果資料被改變表示其他程序運行到了該處,或者攻擊了該地址,自己就可以採取相應的對策,透過移動,躲避攻擊或者發動對該地址的攻擊。

生存之道,在他的程式裡體現得淋漓盡致啊!當然,程式的對抗不僅僅在於生存之道,攻擊才是重中之重!

“磁芯大戰”的對抗在於自己的程式能夠覆蓋對手的程式,不過覆蓋對手的程式後也並代表你一定能取勝,因為它不一定能導致對手的程序執行中止程序操作,所以,程式中要用轟炸指令,即當你的DAT覆蓋了對方的程式時,你呼叫的程式就要對記憶體單元的資料區域進行轟炸。

歐洲學生的程式碼透過跳轉,每隔兩個記憶體單元就對其它程式就行迴圈轟炸,最後再對整個記憶體以Dat形式進行全面轟炸!

這樣的轟炸程式是非常有效的攻擊,現在的很多程式都是靠這種手法攻擊其它程式,攻擊得手後,然後它利用IMP的方法移動自己避免被攻擊。

這個歐洲學生的程式功能大概就是這樣的情況,在蕭雲飛看來,這個程式只能算作差強人意。

兩個人的程式一對比,日本學生的程式讓蕭雲飛更為期待。

歐洲學生在程式最後一行寫上END,然後編譯成功,側過頭來看著羅傑斯笑了笑:“教授,我準備好了……”

“終於好了?”羅傑斯教授伸了個懶腰,“我們都等你好久了。”

歐洲學生不好意思的撓了撓頭:“當然,和教授你對戰,我自然要謹慎一點。”

【鑑於大環境如此,本站可能隨時關閉,請大家儘快移步至永久運營的換源App,huanyuanapp.org 】

聽到這句話,羅傑斯和周圍的學生善意的笑了笑。

羅傑斯教授側過頭看了看盯著計算機屏幕一臉專注的日本學生問道:“你呢?你準備好了嗎?”。

日本學生聽到羅傑斯問話,站起身又要朝他鞠躬,羅傑斯連忙擺了擺手:“你坐下,不用站起來……”

日本學生顯得有點尷尬,剛剛離開椅子的屁股又坐上了椅子:“教授,我準備好了,隨時可以進行對抗。”

“好,”羅傑斯拍了拍手,“那我們就準備開始吧。”

兩個學生編寫的程式透過區域網傳輸到了羅傑斯教授的計算機上,Mars系統的虛擬機器早已經準備就緒,羅傑斯教授將三個程式儲存在虛擬系統的儲存磁芯。

三個程式載入完成後,系統給每個程式在程序佇列中建立了一個位置隨機的程序,然後,羅傑斯教授開啟了程式“併發”執行。

很快的,三個程式開始在程序列表中混戰開來。

透過虛擬機器中的追蹤功能,三個程序運行情況很直觀的顯示在了計算機屏幕上。

當然,日本學生的程式是處於死循環跳轉,它在記憶體中的地址是固定的,所以它在程序佇列中很直觀,因為它是靜止不動的。

不過正是由於這個原因,他的程式並沒有遭到羅傑斯教授和歐洲學生的程式的攻擊,所以,在程序佇列中,主要是羅傑斯教授和歐洲學生的程式在激烈廝殺。

既然羅傑斯教授敢擺下“磁芯大戰”的擂臺,他當然是有所依仗的,他的程式的攻擊性已經達到了變態的地步。

羅傑斯教授的程式隨機載入內存地址,系統建立的程序位置也是隨機的,不過用了不到兩分鍾時間,這個程式就已經遍歷了整個內存地址,好像在巡視自己的領地一般,跳轉極為瘋狂。

遍歷內存地址的目的相當於掃描過程,如果在記憶體單元中,這個程式一旦發現了其它程式體,它就會主動進攻其它程式。

透過虛擬機器的追蹤功能,非常直觀地看到了這個程式的所有動作,首先羅傑斯教授的程式在遍歷內存地址的時候,它在記憶體單元中就發現了兩個和它自身不一樣的程式。

因為日本學生的程式沒有什麼危險,歐洲學生設計的“哨兵”程式碼觸發了羅傑斯教授的攻擊指令,所以,它率先對歐洲學生的程式發起了攻擊。

為什麼羅傑斯教授的程式會首先會攻擊歐洲學生的程式呢?

原因就出在歐洲學生程序代碼的“哨兵”身上。

哨兵,顧名思義,就是起到站崗、放哨、警戒的作用,羅傑斯教授的程式在遍歷記憶體單元時,當它移動到歐洲學生程式所在的內存地址時,該區段的資料必然會產生變化,“哨兵”程式碼向程式本體傳送警報,提示有敵來襲。

當然,“哨兵”程式碼只是起到提示、警報作用,它本身並沒有攻擊作用,這就像打仗的時候,敵軍空襲,自己基地里拉響的防空警報。

當然,透過防空警報知道敵人的空軍來轟炸基地了,然後可以根據基地自身的防禦情況,可以決定是逃跑還是反擊。

“哨兵”向程式本體提醒自己所在的內存地址資料發生了變化,根據程式設計師的設計,它會選擇是移動記憶體單元躲避還是透過資料塊轟炸。

很顯然,歐洲學生的程序執行的動作是反擊!

人家都打到你的地盤來了,你還能無動於衷,坐視不理?看來這個歐洲學生是個反壓迫的好戰分子。

其實很多時候,從程序代碼的編寫可以看出一個人的性格,有的程式設計師會在編寫程序的時候留下一些連他自己都不知道小細節。比如有的人喜歡用跳轉指令,他會在程式裡設計無數跳轉指令,跳呀跳呀的,整得像個迷宮似的;有的程式設計師還有一些怪癖,他甚至在編寫程序的時候喜歡將自己的名字或者愛人的名字插入到程式碼中。

言歸正傳,羅傑斯教授的程式已經開始轟炸歐洲學生的程式了,人家的程式當然不會坐以待斃,於是它開始發動反擊了!

不是有話說得好嗎?哪裡有壓迫,哪裡就有反抗嘛。

羅傑斯教授的程序執行的是DAT資料區段大範圍轟炸,它可以一次性對多個記憶體單元進行轟炸,在這樣強烈的攻擊下,就算歐洲學生的程式雖然可以移動到下一個記憶體單元,但是在羅傑斯教授的程式大範圍的轟炸下,它就顯得有點脆弱了。

不過狗急了尚且跳牆,兔子逼急了還咬人呢。

在羅傑斯教授的程式開始對資料區段轟炸的時候,歐洲學生的程式在記憶體單元連續複製,不過他的程式剛複製完移動到下一個記憶體單元時,很遺憾的就會被羅傑斯教授的程式轟炸掉,但是這個程式的複製速度非常快,它總是能在被轟炸之前將自己成功複製,然後跳轉到下一個記憶體單元,由此可以見,這個程式的生命力確實頑強。

終於,經過多次連續複製後,歐洲學生的程式終於跳出羅傑斯教授的轟炸資料區段,現在,它開始反攻了。

跳轉後,這個程式也執行了轟炸指令,第一次,在A區段的0、5座標,羅傑斯教授的程式被轟炸了一次;第二次,在B區段的4、6區段,羅傑斯教授的程式又被轟炸了一次。

A、B兩個區段,羅傑斯的程式都被轟炸過一次,不過令人遺憾,資料轟炸不徹底,羅傑斯教授的程式從這兩個座標中逃了出來。

此後,歐洲學生的程式就再也未能在記憶體單元中轟炸到羅傑斯教授的程式,想必羅傑斯教授的智慧程式啟動後,程式的陷阱對它不能起到作用了。

接下來的形勢完全呈現一邊倒的局面,歐洲學生的程式在記憶體單元中完全只要躲避的份,根本就沒有還手之力。

羅傑斯教授的程式轟炸的資料區段越來越廣,模擬的八千個記憶體單元,它一次性可以轟炸二十個連續的記憶體單元!

不要小看這二十個連續的記憶體單元,用於“磁芯大戰”的程式,在跳轉躲避對手轟炸的時候往往不會超過這二十個連續的記憶體單元。

所以,儘管歐洲學生的程式複製的速度也快了很多,但是它的IMP程式,目的就是不斷把自己移動到下一個記憶體單元,這些記憶體單元是連續的,它複製的速度再快,也無法逃過羅傑斯的程式對二十個連續單元的轟炸啊。

看來歐洲學生的程式被吃掉遲早是早晚的事。

終於,羅傑斯教授的程式在A區段的一個記憶體單元將歐洲學生的程式鎖定了,然後,狂風暴雨的轟炸開始了。

所有圍觀者看著這個情形都搖了搖頭,失望的嘆了一口氣。(未完待續,如欲知後事如何,請登陸www.qidian.com,章節更多,支援作者,支援正版閱讀!)(未完待續)