原因找到後,肖遠將鑽進god程序代碼段隱藏起來的種子抓了出來,卻沒有對它的主體進行修改,但是為了便於觀察,肖遠在種子進化出的程式碼的基礎上,給它增加了一個監視模組,並將這個模組的規則設定成必須存在,這樣做是為了防止種子在繼續進化的時候,將這個模組給破壞掉。

將種子改造完之後,肖遠將被破壞掉了的god程式恢復了正常,並將種子發現並利用的那個漏洞給打了補丁,但是為了驗證他的想法,他在將漏洞堵掉的同時,有刻意的加入了另一個漏洞。

搞完這一切之後,肖遠執行了god程式,一個初始狀態的世界被創造了出來,種子隨後被放了進去,靜態平衡瞬間被打破了,god和種子之間的新一輪對抗開始了。

因為這次放進去的是進化後的種子,god監控程式繪製出來的影象上能夠看得出來,它在進到世界之後,比起最初的版本進去後對god的圍追堵截疲於應付的情況來,顯得輕鬆自如的多,以至於世界內只看到種子在快速的到處移動,所到之處,引起的波瀾卻小了很多,而在它離開後,原本激盪的波瀾也不會持續多久,就快速平息了下來。

【新章節更新遲緩的問題,在能換源的app上終於有了解決之道,這裏下載 huanyuanapp.org 換源App, 同時查看本書在多個站點的最新章節。】

肖遠沒有去過多關注這個影象,他將這個監控程式扔到了後臺,將剛剛植入種子的監控模組調了出來,這個模組會將種子程式的每一步操作記錄下來,並將之儲存成一個標準的記錄檔案。

為了減少種子的程式碼長度,肖遠設計的種子的監控程式記錄下來的操作是二進制機器碼,因此他如果想要閱讀這些操作,還需要進行進一步轉換,這個轉換肖遠用到了另外一個分析工具,這個分析工具讀取記錄檔案,並實時將每一步操作反匯編成匯編程序顯示在他的一個側視窗中,而組合語言雖然讀起來不如高階語言那麼清晰,但是閱讀組合語言對於肖遠來說,並不是什麼難事。

仔細觀察著這些彙編程式碼,肖遠發現種子在進入世界後,並沒有馬上去入侵那個已經被肖遠堵住的漏洞,而像是在適應著環境,很長一段的彙編操作,都是利用彙編的跳轉命令,在內存空間跳轉,跳轉,再跳轉,不停的變換著自己的方位。

當然在變換方位的時候,它還做了其他一些操作,其中最讓肖遠感興趣的是它在轉移後對原來現場的清理,肖遠在編制這個程式的時候,給出的設定規則是,當種子利用跳轉命令從一個記憶體區域離開的時候,它在原來區域造成的不平衡會棄之不顧,恢復平衡的工作完全交由god程式來完成,這種策略就像一個旅遊者在某一個地方製造了一堆垃圾,離開時完全不理會,清理工作將會有景區的清潔工來完成。

但是現在的情況是,這個旅遊者好像變得文明了,他離開之前,將垃圾清理,甚至還幫著將他弄亂的環境給恢復了原狀,種子跳轉離開後,會將他原來搞得失去平衡的區域重新恢復平衡。

看到這裡,肖遠將這種情況和god監控程式顯示的情況進行了對比,發現兩者是一致的。

種子為什麼會進化出這樣的功能出來,肖遠有些想不通,他以人類的思維考慮了一番,覺得如果他要是到了一個地方,被這個地方的人追殺,為了順利逃脫,他一定會竭盡所能將這個地方徹底攪亂,而不是反其道而行之。

這樣的情況持續了一段時間,情況開始有了變化,種子每過一處都會自己清理現場,必然會耗費一定的計算時間,反過來說,也給god節省了大量的計算時間,此消彼長間,種子有六次被god都被god將代碼段給破壞掉了。

肖遠在最初設計種子程式的時候,這種情況實際上已經考慮到了,針對這種情況,他專門為種子設計了一個備份器,這個備份器會將種子最近一個穩定版本儲存下來,而種子的程式碼一旦被破壞,這個備份器就會被觸發,然後將他儲存的正常程式碼把被破壞掉的程式碼覆蓋掉,從而達到修復種子的目的。

六次種子被god破壞,其中五次都是透過上面的方法進行修復的,但是第六次卻發生了意外,這次意外源於時間上的巧合,god在對種子代碼段的破壞剛剛開始之時,種子也正好發出程式碼跳轉命令,於是種子的程式碼被破壞掉了兩個位元組後就跳轉到另外的區域去了。

因為跳轉命令執行成功,所以備份模組認為種子沒有遭到破壞,因此備份程式的恢復功能沒有被觸發,反而備份功能被觸發了,備份功能是將此時正常的種子程式碼拷貝到備份存儲器中一份。

此時種子程式顯然是有問題的,為了防止備份程式取樣到這種有問題的程式,當初肖遠在設計的時候,給它設計了一個校驗功能,這個校驗功能會對它讀取到的程式碼進行校驗,如果發現有問題,就會進一步判定種子程式碼出問題了,進而啟動恢復功能,使用備份存儲器中的正常程式碼覆蓋有問題的程式碼。

這是正常的流程,如果不發生其他意外的話,種子同樣會被恢復正常,然而另一個巧合再次發生了,這段被破壞掉的程式碼實際上仍然是一個二進制字串,這個字串和CPU的某一個指令非常巧合的完全一樣,以至於它竟然魚目混珠般的透過了校驗,混進了種子程式的程式碼中。

“難道這就是別的程式碼混入種子的方法嗎?”

分析過這段程式碼後,肖遠腦子裡產生了這樣的想法,同時想到昨晚的試驗,除了god和種子之外,還有自動指令碼程式也參與了這個過程,使得情況變得更加複雜和不可預測,發生某種巧合的可能性估計比這種情況更大。

“很有這種可能,不過種子是怎麼進化到找到god的漏洞的,這個恐怕已經不可查了。”

肖遠腦中不停的思考著,對種子程式的演化仍然保持著密切的觀察,又過了片刻,種子再一次受到了傷害,然後備份程式將剛才混入CPU程式碼的問題程式碼覆蓋到了種子程式碼上,要知道,剛才的CPU程式碼是硬生生的嵌入到種子程式碼中的,因此,這兩個位元組的程式碼並不能很好的和其他程式碼配合工作,這種情況促使種子的進化器發生了連鎖反應,對程式碼做了進一步修改調整,使之合理化,因此種子的功能發生了有些改變。

“進化實際上是由一系列的偶然事件形成的必然結果。”肖遠突然有了這樣的一個感悟,同時也對這顆種子究竟會進化成什麼樣子產生了很強烈的好奇,因為事件隨機,種子的進化必然也是完全隨機的,哪怕一個極其微小的條件變化,都有可能徹底改變它的進化方向,而這種特性正好是混沌系統的具體表現。

思考著這些問題的時候,種子的自我調整並沒有結束,終於在某一次的意外發生過後,進化器再次對種子的程式碼進行了調整,種子內一直沒有執行過得那段入侵god的程式碼被調了出來,執行了起來。

而原來的漏洞早已被肖遠堵住了,這段程式碼的執行結果可想而知,入侵沒有成功,反而因為喪失了一次跳轉的機會,被god追上,並對它的程式碼進行了大量的破壞,種子的生命岌岌可危。

PS:純技術性的章節快沒有了,這種章節寫起來太費腦子了。

章節目錄

推薦閱讀
相鄰推薦