戰斗在魔幻異世界

第203章 緩沖區溢出攻擊

類別︰科幻小說 作者︰十一月十四日 本章︰第203章 緩沖區溢出攻擊

    墨莫走向內存大樓二樓的一個房間。從深海腦魔的記憶里知道,這個房間有一個重啟這台計算機的地方。

    畢竟,外界的情況是復雜的。在一些極端情況下,鎖存器中的值會發生反轉,也就是原本儲存著0,結果變成了1,或者反過來1變成0。

    一旦在處理器一些比較重要的寄存器中出現這種情況,那就會死機。

    設計者也預料不到會有哪些情況會使這台機器死機,如果出現這種情況,那就需要重啟。

    在深海腦魔控制這台計算機幾個世紀的時間里,它就有上百次自行重啟︰內存里所有的數據全部丟失,然後對面大樓里的指令寄存器從最初的內存單元開始執行。魔法水晶硬盤里儲存的各個程序重新被調出,計算機重啟完畢,恢復對機關城的控制。

    每次出現這種情況,深海腦魔就會丟失對這台機器的控制。需要等待時機——只有等到機關城內出現緊急情況,需要機關獸出動時,通信程序才會被重新加載入內存,它才能重新奪回系統控制權。

    除了自行重啟之外,這台機器還可以手動重啟。不過,是需要密碼的。

    這個房間里面也是一樣的黑石、魔晶石、水晶線路構成的運算單元。

    在房間外有一個黑石方台,台子上有四橫四縱16個按鍵,被一個魔法水晶蓋子蓋住。

    “你想重新啟動這台機器?哈哈哈……你這是自尋死路!”深海腦魔自以為看出了墨莫的意圖,它在墨莫腦海中的聲音顯得很高興︰

    “看到角落里那堆黑石了嗎?”

    墨莫看到了,黑石控制台前面確實有一堆破爛不堪的黑石,然後墨莫等待著它的下文。

    “那是我控制的黑石機關獸!”深海腦魔說道,

    “我控制它來到這里,輸入密語,但是合上蓋子的瞬間,這個房間里閃爍一陣紅光,它就這麼碎了,我承認你的精神力很強大,法術也很強大,但是在這兒,你就是個渣!如果你輸入了正確的密語,確實可以讓我暫時失去控制這台機器的能力,但你要是輸錯了……哈哈哈!”

    對于深海腦魔的叫囂,墨莫理都沒理。腳步沒停,走到控制台前。

    觀察著上面的16個符號。這些符號就是古代林蔭人的字母。他們的文字都由這16個字母所組成。估計也正是因為他們的字母正好有16個,才創造般的想到了這樣一台計算機的實現。

    在這台計算機中,一個基本數據單位也是16個比特。沒有字節,只有字。內存上的程序和數據,也是以每16比特為一個單位的。

    所以,墨莫猜測,這16個按鍵,很有可能表示從0到f的16進制數。

    按照正常的工作程序,這個控制台是這樣工作的︰

    首先,控制者打開水晶蓋子,然後輸入密碼,再合上蓋子,如果輸入的密碼正確,那麼計算機重啟;如果不正確,控制台前的那堆黑石碎片,就是下場。

    只有一次機會。

    但是墨莫從一開始就沒打算輸入密碼重啟它,墨莫打算徹底控制這台計算機,就用這16個按鍵!

    經過觀察,這台計算機,雖然結構與地球上的同類有所不同,但是基本執行原理還是相同的。

    對面處理器大樓里有三個重要的寄存器,分別是指令指針ip,基址指針bp,棧頂指針sp。

    其中,ip里面存著的16位二進制數字,永遠是需要執行的下一條指令的地址。它是計算機最重要的寄存器。只要控制了ip,那麼就控制了這台計算機。

    當墨莫打開水晶蓋子的時候,計算機首先會把接收這個控制台輸入密碼的程序調入內存,並把控制權移交給它。

    怎麼移交呢?

    當然就是先把ip的值存入緩沖區,然後再把新程序在內存的位置交給ip。這樣就完成了計算機控制權的移交。接下來ip就會從新位置取出指令執行,這些指令就是新程序的指令了。

    為什麼要先把ip的值壓入緩沖區呢?當然是為了,在執行完了新程序之後,能夠從緩沖區里取出這個值,ip回到調用新程序之前的地址,接著執行舊程序。

    也就是重新將計算機控制權交還給深海腦魔。

    bp和sp里面的16位二進制地址,是當前正在執行的程序,它的數據儲存在內存中的範圍,被稱為緩沖區。緩沖區在內存中的位置,距離當前正在執行的位置,很遠很遠。此刻ip指向二樓,而bp和sp,指向四樓。

    當新程序被調用,它的數據的開頭位置,也就是bp也會被保存起來,以便執行完了新程序,能夠找到這些數據。

    這就是一個程序從打開,到關閉的基本過程。

    【米婭,把這些符號給我換成數字,我看著眼暈。】

    墨莫眼中的16個林蔭文字母變成了0到f的十六進制數字。

    墨莫一下子打開了水晶蓋子。

    下一刻,四樓的緩沖區首先發生了變化。bp的值被壓進緩沖區保存,sp的值向下移動一格。

    然後,對面大樓里,bp的值變成了和sp一樣的值,此刻,舊程序的緩沖區,被封在了它倆上面。

    下一步,四樓,ip的值被保存,sp再向下移動一格。接著,新程序被加載進了二樓的一段內存中。

    對面處理器大樓上,ip的值發生了變化,新的ip值正是新程序所在的二樓位置。

    最後,為了儲存新程序的數據,也就是墨莫即將輸入的密碼,sp再向下移動了整整六百格!

    然後計算機停下了,等待著墨莫的輸入。

    墨莫想都沒想,瞅準最後一個按鍵,也就是f,不停的按。

    米婭在心靈網絡中不停的計數︰【1,2,3……】

    隨著墨莫的輸入,四樓內存里,那六百格的數據,從下到上,一格接著一格開始依次變為整整齊齊的ffff、ffff……

    墨莫就這麼一直輸入,不停的按,四樓的ffff一直向上延伸,距離那幾個保存著寄存器數據的位置,越來越近。

    直到,墨莫按下第六百次,抬頭看了一眼,透過透明的魔法水晶,清楚的看到,在四樓緩沖區里,整齊的ffff前面,就是保存的舊程序的ip值。

    【米婭,那里的地址是多少?】

    米婭︰【經過計算,是df19。】

    墨莫點點頭,不再輸入千篇一律的ffff,而是接著輸入︰df1a……

    當墨莫輸入的時候,四樓的緩沖區,那保存著舊程序的ip值的那一格,被墨莫輸入的數據覆蓋掉了,直接變成了df1a。

    前面說過,這台機器的各個程序沒有權限高低之分,ip的值在內存的哪里,那麼那段內存上的程序就完全享有計算機的所有操控權。

    墨莫此刻這個輸入程序,那就是最高程序,輸入什麼,就一定會在內存里寫什麼,不管前面是什麼東西,統統會給覆蓋掉。

    在覆蓋掉舊程序的ip值後,墨莫根據解析出的cpu指令,開始在後面的內存空間中寫程序。

    這上面大概還有1mb的內存空間,對墨莫這種級別的程序員來說,甚至都可以做一個操作系統了。只見墨莫手指飛快,不停的在16個按鍵上按著。

    四樓那原本是緩沖區的位置,也被飛快的改寫著。

    舊程序的ip值被覆蓋,然後是舊程序的bp值被覆蓋,然後是舊程序的數據被覆蓋,乃至上面的更舊的程序、更上面的更更舊的程序的數據,紛紛被墨莫輸入的代碼覆蓋。

    直到,墨莫一直寫到了內存的終點。

    然後,墨莫手扶著這個操作台的水晶蓋子,輕輕的合上了。

    深海腦魔觸手上的眼楮猛然睜開,惡狠狠的盯著墨莫,它好像看到了,下一刻,墨莫就會被那里的機關融化!

    在墨莫合上蓋子的那一刻,位于內存大樓二樓的這個程序,終于執行完畢。

    內存大樓四樓緩沖區,df19位置的內容,被傳送給對面處理器的指令指針寄存器——ip。

    正常情況下,按照機器的執行順序,這個值就是舊程序的代碼在內存二樓的位置。ip將執行位于那里的舊程序,也就是將計算機的控制權還給深海腦魔。

    然而,這個值,早已不再是原來那個值了。它被墨莫替換成了——df1a。

    df1a就是df19的上一格,而那里的程序,不就是剛剛墨莫寫的那些代碼嗎?

    于是,機器開始忠實的執行墨莫輸入的代碼︰

    第一步,建立權限系統,只有特定代碼前綴的程序,才可以被執行,否則就是無效的。

    第二步,運行控制台輸入程序,使得墨莫可以通過這個控制台繼續編程。

    深海腦魔等了幾秒,等著墨莫被那個機關融化,然而那控制台的機關毫無反應。

    不僅如此,它還發現,那個每次和它的牢房交換信號的程序,不見了!自己再次與這台機器斷開了聯系。

    ‘難道他成功了?’深海腦魔暗暗思索,‘怎麼可能?他按了那麼多下,怎麼可能有那麼長的密碼?就算有,他又是怎麼知道的?’

    如果這使它困擾,那接下來發生的事,就讓它感到恐懼了。

    下一刻,關了它幾百年的牢籠,這個魔法水晶構造的房間,在一聲輕響過後,慢慢打開了……(www.101novel.com

加入書簽 上一章 目 錄 下一章 加入書架 推薦本書

如果您喜歡,請把《戰斗在魔幻異世界》,方便以後閱讀戰斗在魔幻異世界第203章 緩沖區溢出攻擊後的更新連載!
如果你對戰斗在魔幻異世界第203章 緩沖區溢出攻擊並對戰斗在魔幻異世界章節有什麼建議或者評論,請後台發信息給管理員。