第182章 漏洞

字數:3617   加入書籤

A+A-




    匆匆洗漱完,李正一便急哄哄地趕到網吧。

    一進網吧,李正一忍不住發傻,不是說傳奇出問題嗎?怎麽一網吧人還在玩得不亦樂乎,傳奇遊戲正常得很呀。

    李正一剛要問怎麽回事,邵琴在吧台內說:“趕緊進來。”

    “咋了?”

    “你快來看看。”邵琴對走進吧台的李正一說,“我在捆金條,發現背包裏的錢怎麽捆都不會減少,金條卻一根一根增加,你說是不是出問題了?”

    李正一點開邵琴掛在安全區的小戰士背包,眼睛瞪得死死的,嘴巴張大完全無法合攏。名叫正一網吧的這名小戰士背包裏,黃燦燦的一包袱金條。

    “你……你這是怎麽來的?”李正一聲音有些發抖。

    “換來的呀。”邵琴也搞不懂怎麽回事,把昨天李正一教她怎麽捆金條的事說了一遍。

    李正一說:“我記得你這小戰士沒金幣的,金幣哪來的?”

    “我找李勇要的。”邵琴說,“早上來搞好衛生,正好空著,我就上小戰士號想去再試試捆金條,然後發現小戰士錢不夠,我就讓李勇交易給我的。”

    望著小戰士背包中1002000金幣,李正一頭皮突然有些發麻,他知道,自己的小舅媽無意之中歪打正著,觸碰到了前世一個令人瘋狂的刷錢BUG。

    這個漏洞前世聽人說過,那時候李正一對這些東西聽得雲裏霧裏,從來都是左耳進右耳出,所以根本就不知道漏洞具體是怎麽回事。

    李正一平靜一下心情,然後說:“小舅媽,這事有點大,你沒聲張吧?”

    邵琴說沒有。

    李正一又說:“那就好,你把經過原原本本跟我說一遍。”

    兩人躲在吧台後麵竊竊私語,不一會,李正一就把來龍去脈弄得清清楚楚,聽完心裏直歎氣,果然陰差陽錯歪打正著啊。

    事情還得從邵琴這邊說起。

    早上邵琴搞完衛生,登上小戰士號,本想去比奇外麵打打稻草人玩,突然想到昨天李正一捆金條的事,也想用這個號試試,便興衝衝地跑去倉庫一捆,卻被提示金幣不足。

    邵琴知道李勇控製的礦工號,便私聊李勇,讓他交易點金幣給自己。

    李勇正好在毒蛇村賣礦,挖了一晚上,加上更新之前剩餘的,一百萬不到,就問邵琴要多少金幣。

    邵琴做事比較認真,平時記賬算賬都是一板一眼,絲毫都不馬虎。所以李勇問她要多少金幣,她順手拉過吧台常用的計算器,用李正一說過的一百萬加上手續費,減去自己背包的金幣,然後把需要的金幣量告訴李勇。

    李勇這個人很多時候做事比較死板,他見邵琴給出一個具體數字,也沒問為什麽,老老實實按邵琴提供的數字,交易給她金幣。

    就這樣,邵琴背包中的金幣,定格在1002000,一個做事一板一眼的邵琴,碰到腦筋死板的李勇,陰差陽錯地開啟了傳奇最離奇的BUG。

    運氣來了神都擋不住,李正一隻能這樣感歎,如果早知道這個bug這麽早就出現,還能被小舅媽發現,自己何必巴巴地浪費那麽多時間,跑去改施工圖、請混混、買電腦、買桌椅、拉寬帶,忙乎那麽久,實際上頂不上區區一個BUG。

    這個BUG,前世李正一聽說過的,但從來就沒問過具體怎麽弄,也不知道如何操作,唯一記得爆發的時間,應該是在白日門開通之後。

    前世,李正一未出國混社會之前,在沿海一帶成天鬼混,沒事就打私服,聽人吹牛B說BUG時,聽說過捆金條BUG。據說是白日門更新之後,這個BUG才爆發出來,造成傳奇金幣瞬間貶得一文不值。

    相比起其他較為複雜的刷錢刷裝備BUG,捆金條BUG理解起來不是很難。不過李正一的性子比較懶惰,絕逼不會去研究這些過時的玩意,也不會花費腦筋去理解那些沒用的東西,所以這一世,李正一對於傳奇BUG,隻知道爆發的大概時間,具體BUG如何操作一竅不通。

    捆金條BUG其實是利用背包中金幣不能為0的基本原則,讓程序處理時產生邏輯性錯誤,而程序設計時並沒有考慮到這一點,同時也沒有設置邏輯錯誤回滾機製。所以一旦出現這個錯誤,服務器程序在給出金條的同時,再返還玩家背包同等數額的金幣,程序認為雙方都是合法存在的,因此而形成了刷金條的漏洞。

    這個漏洞不是很難,卻隱藏在傳奇中一年多時間沒人知曉,後來才有人無意之中,就像今天的邵琴一樣,陰差陽錯之下才被發現。

    其難點在於,玩家背包中的金幣很難巧合地達到1002000這個數值。一旦達到這個數值,玩家在捆金條時,傳奇客戶端運行程序首先會向服務器發送一道捆金條的請求指令,服務器收到指令後,會判斷玩家背包中的金幣數量是不是能夠完成捆金條的驗證要求。

    這個驗證要求就是金條本身的數額和手續費,總數值就是1000000+2000,所以說,低於這個數值,捆金條指令是沒法通過驗證的。

    服務器通過驗證,會發送指令給服務器執行程序,在玩家背包中增加一根金條,同時扣除玩家背包中1002000金幣。

    這個時候邏輯錯誤形成了,服務器執行程序給出金條時,是因為玩家背包確實擁有等值的金幣數額,這一指令是通過了驗證程序合理合法的,所以執行程序不能撤銷。服務器執行程序隨之扣除玩家資料庫背包中1002000金幣後,發現玩家背包金幣數值為0,而背包金幣為0是主程序基本原則中明令禁止不允許出現的。

    怎麽辦?

    很簡單,服務器執行程序認為,這一次扣除金幣的行為是錯誤的,不能執行,所以必須返還同等數額的金幣。

    當然,這些原理對於李正一來說,相當於對牛彈琴,他也不需要明白這些,隻要知道,現在掌握了一個超級刷錢BUG,那隨後無數個服務器,所有金幣都可以壟斷。

    這是多大的一筆財富?

    財富其實沒多大,李正一又不是傻子,現階段傳奇就三個區服,目前玩家人數頂天就一萬出頭。雖然金幣緊俏,但玩家群體的消費額度是有上限的,賣到一定程度就會賣不動。

    如果李正一傻傻地大批量往外傾銷金幣,會不會被查還不一定,關鍵是金幣一多,就會造成金幣市場不穩定。

    所以說,這個BUG最大的好處是節約了李正一大量的時間和人力物力,原本需要靠時間累積的金幣,現在隻需要點一點鼠標就可以。