第502章 試驗(yàn)(二)
原因找到后,肖遠(yuǎn)將鉆進(jìn)god程序代碼段隱藏起來的種子抓了出來,卻沒有對(duì)它的主體進(jìn)行修改,但是為了便于觀察,肖遠(yuǎn)在種子進(jìn)化出的代碼的基礎(chǔ)上,給它增加了一個(gè)監(jiān)視模塊,并將這個(gè)模塊的規(guī)則設(shè)置成必須存在,這樣做是為了防止種子在繼續(xù)進(jìn)化的時(shí)候,將這個(gè)模塊給破壞掉。
將種子改造完之后,肖遠(yuǎn)將被破壞掉了的god程序恢復(fù)了正常,并將種子發(fā)現(xiàn)并利用的那個(gè)漏洞給打了補(bǔ)丁,但是為了驗(yàn)證他的想法,他在將漏洞堵掉的同時(shí),有刻意的加入了另一個(gè)漏洞。
搞完這一切之后,肖遠(yuǎn)運(yùn)行了god程序,一個(gè)初始狀態(tài)的世界被創(chuàng)造了出來,種子隨后被放了進(jìn)去,靜態(tài)平衡瞬間被打破了,god和種子之間的新一輪對(duì)抗開始了。
因?yàn)檫@次放進(jìn)去的是進(jìn)化后的種子,god監(jiān)控程序繪制出來的圖像上能夠看得出來,它在進(jìn)到世界之后,比起最初的版本進(jìn)去后對(duì)god的圍追堵截疲于應(yīng)付的情況來,顯得輕松自如的多,以至于世界內(nèi)只看到種子在快速的到處移動(dòng),所到之處,引起的波瀾卻小了很多,而在它離開后,原本激蕩的波瀾也不會(huì)持續(xù)多久,就快速平息了下來。
肖遠(yuǎn)沒有去過多關(guān)注這個(gè)圖像,他將這個(gè)監(jiān)控程序扔到了后臺(tái),將剛剛植入種子的監(jiān)控模塊調(diào)了出來,這個(gè)模塊會(huì)將種子程序的每一步操作記錄下來,并將之存儲(chǔ)成一個(gè)標(biāo)準(zhǔn)的記錄文件。
為了減少種子的代碼長(zhǎng)度,肖遠(yuǎn)設(shè)計(jì)的種子的監(jiān)控程序記錄下來的操作是二進(jìn)制機(jī)器碼,因此他如果想要閱讀這些操作,還需要進(jìn)行進(jìn)一步轉(zhuǎn)換,這個(gè)轉(zhuǎn)換肖遠(yuǎn)用到了另外一個(gè)分析工具,這個(gè)分析工具讀取記錄文件,并實(shí)時(shí)將每一步操作反匯編成匯編程序顯示在他的一個(gè)側(cè)窗口中,而匯編語言雖然讀起來不如高級(jí)語言那么清晰,但是閱讀匯編語言對(duì)于肖遠(yuǎn)來說,并不是什么難事。
仔細(xì)觀察著這些匯編代碼,肖遠(yuǎn)發(fā)現(xiàn)種子在進(jìn)入世界后,并沒有馬上去入侵那個(gè)已經(jīng)被肖遠(yuǎn)堵住的漏洞,而像是在適應(yīng)著環(huán)境,很長(zhǎng)一段的匯編操作,都是利用匯編的跳轉(zhuǎn)命令,在內(nèi)存空間跳轉(zhuǎn),跳轉(zhuǎn),再跳轉(zhuǎn),不停的變換著自己的方位。
當(dāng)然在變換方位的時(shí)候,它還做了其他一些操作,其中最讓肖遠(yuǎn)感興趣的是它在轉(zhuǎn)移后對(duì)原來現(xiàn)場(chǎng)的清理,肖遠(yuǎn)在編制這個(gè)程序的時(shí)候,給出的設(shè)定規(guī)則是,當(dāng)種子利用跳轉(zhuǎn)命令從一個(gè)內(nèi)存區(qū)域離開的時(shí)候,它在原來區(qū)域造成的不平衡會(huì)棄之不顧,恢復(fù)平衡的工作完全交由god程序來完成,這種策略就像一個(gè)旅游者在某一個(gè)地方制造了一堆垃圾,離開時(shí)完全不理會(huì),清理工作將會(huì)有景區(qū)的清潔工來完成。
但是現(xiàn)在的情況是,這個(gè)旅游者好像變得文明了,他離開之前,將垃圾清理,甚至還幫著將他弄亂的環(huán)境給恢復(fù)了原狀,種子跳轉(zhuǎn)離開后,會(huì)將他原來搞得失去平衡的區(qū)域重新恢復(fù)平衡。
看到這里,肖遠(yuǎn)將這種情況和god監(jiān)控程序顯示的情況進(jìn)行了對(duì)比,發(fā)現(xiàn)兩者是一致的。
種子為什么會(huì)進(jìn)化出這樣的功能出來,肖遠(yuǎn)有些想不通,他以人類的思維考慮了一番,覺得如果他要是到了一個(gè)地方,被這個(gè)地方的人追殺,為了順利逃脫,他一定會(huì)竭盡所能將這個(gè)地方徹底攪亂,而不是反其道而行之。
這樣的情況持續(xù)了一段時(shí)間,情況開始有了變化,種子每過一處都會(huì)自己清理現(xiàn)場(chǎng),必然會(huì)耗費(fèi)一定的計(jì)算時(shí)間,反過來說,也給god節(jié)省了大量的計(jì)算時(shí)間,此消彼長(zhǎng)間,種子有六次被god都被god將代碼段給破壞掉了。
肖遠(yuǎn)在最初設(shè)計(jì)種子程序的時(shí)候,這種情況實(shí)際上已經(jīng)考慮到了,針對(duì)這種情況,他專門為種子設(shè)計(jì)了一個(gè)備份器,這個(gè)備份器會(huì)將種子最近一個(gè)穩(wěn)定版本存儲(chǔ)下來,而種子的代碼一旦被破壞,這個(gè)備份器就會(huì)被觸發(fā),然后將他存儲(chǔ)的正常代碼把被破壞掉的代碼覆蓋掉,從而達(dá)到修復(fù)種子的目的。
六次種子被god破壞,其中五次都是通過上面的方法進(jìn)行修復(fù)的,但是第六次卻發(fā)生了意外,這次意外源于時(shí)間上的巧合,god在對(duì)種子代碼段的破壞剛剛開始之時(shí),種子也正好發(fā)出代碼跳轉(zhuǎn)命令,于是種子的代碼被破壞掉了兩個(gè)字節(jié)后就跳轉(zhuǎn)到另外的區(qū)域去了。
因?yàn)樘D(zhuǎn)命令執(zhí)行成功,所以備份模塊認(rèn)為種子沒有遭到破壞,因此備份程序的恢復(fù)功能沒有被觸發(fā),反而備份功能被觸發(fā)了,備份功能是將此時(shí)正常的種子代碼拷貝到備份存儲(chǔ)器中一份。
此時(shí)種子程序顯然是有問題的,為了防止備份程序采樣到這種有問題的程序,當(dāng)初肖遠(yuǎn)在設(shè)計(jì)的時(shí)候,給它設(shè)計(jì)了一個(gè)校驗(yàn)功能,這個(gè)校驗(yàn)功能會(huì)對(duì)它讀取到的代碼進(jìn)行校驗(yàn),如果發(fā)現(xiàn)有問題,就會(huì)進(jìn)一步判定種子代碼出問題了,進(jìn)而啟動(dòng)恢復(fù)功能,使用備份存儲(chǔ)器中的正常代碼覆蓋有問題的代碼。
這是正常的流程,如果不發(fā)生其他意外的話,種子同樣會(huì)被恢復(fù)正常,然而另一個(gè)巧合再次發(fā)生了,這段被破壞掉的代碼實(shí)際上仍然是一個(gè)二進(jìn)制字符串,這個(gè)字符串和cpu的某一個(gè)指令非常巧合的完全一樣,以至于它竟然魚目混珠般的通過了校驗(yàn),混進(jìn)了種子程序的代碼中。
“難道這就是別的代碼混入種子的方法嗎?”
分析過這段代碼后,肖遠(yuǎn)腦子里產(chǎn)生了這樣的想法,同時(shí)想到昨晚的試驗(yàn),除了god和種子之外,還有自動(dòng)腳本程序也參與了這個(gè)過程,使得情況變得更加復(fù)雜和不可預(yù)測(cè),發(fā)生某種巧合的可能性估計(jì)比這種情況更大。
“很有這種可能,不過種子是怎么進(jìn)化到找到god的漏洞的,這個(gè)恐怕已經(jīng)不可查了。”
肖遠(yuǎn)腦中不停的思考著,對(duì)種子程序的演化仍然保持著密切的觀察,又過了片刻,種子再一次受到了傷害,然后備份程序?qū)偛呕烊隿pu代碼的問題代碼覆蓋到了種子代碼上,要知道,剛才的cpu代碼是硬生生的嵌入到種子代碼中的,因此,這兩個(gè)字節(jié)的代碼并不能很好的和其他代碼配合工作,這種情況促使種子的進(jìn)化器發(fā)生了連鎖反應(yīng),對(duì)代碼做了進(jìn)一步修改調(diào)整,使之合理化,因此種子的功能發(fā)生了有些改變。
“進(jìn)化實(shí)際上是由一系列的偶然事件形成的必然結(jié)果。”肖遠(yuǎn)突然有了這樣的一個(gè)感悟,同時(shí)也對(duì)這顆種子究竟會(huì)進(jìn)化成什么樣子產(chǎn)生了很強(qiáng)烈的好奇,因?yàn)槭录S機(jī),種子的進(jìn)化必然也是完全隨機(jī)的,哪怕一個(gè)極其微小的條件變化,都有可能徹底改變它的進(jìn)化方向,而這種特性正好是混沌系統(tǒng)的具體表現(xiàn)。
思考著這些問題的時(shí)候,種子的自我調(diào)整并沒有結(jié)束,終于在某一次的意外發(fā)生過后,進(jìn)化器再次對(duì)種子的代碼進(jìn)行了調(diào)整,種子內(nèi)一直沒有運(yùn)行過得那段入侵god的代碼被調(diào)了出來,運(yùn)行了起來。
而原來的漏洞早已被肖遠(yuǎn)堵住了,這段代碼的運(yùn)行結(jié)果可想而知,入侵沒有成功,反而因?yàn)閱适Я艘淮翁D(zhuǎn)的機(jī)會(huì),被god追上,并對(duì)它的代碼進(jìn)行了大量的破壞,種子的生命岌岌可危。
ps:純技術(shù)性的章節(jié)快沒有了,這種章節(jié)寫起來太費(fèi)腦子了。
,