第502章 試驗(二)(2 / 2)

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

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

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

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

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

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

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

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

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

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

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

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