夢幻西遊:周末活動經常出現卡頓,其實真不是官方故意設定的

九分精彩 2024-05-09 10:56:05

在夢幻西遊裏,每當周末活動舉行的時候,服務器都很卡,這是官方故意設定的?其實真不是故意的。大家肯定不知道爲什麽?這裏就給你們解釋一下。

無論是夢幻還是其他遊戲的數據都是建立遊戲公司專用的高並發內部數據庫的時候,id和level是挂鈎的。就是說越低級的套裝的數據越在小數字上,越高級的的套裝的數據越在大數字上,按照服務器設計的規則,id越小對服務器的訪問權限越大。

夢幻在過去20年裏面多次更新,所以你要獲得高等級高id的數據相對容易,但是你要攻擊服務器內核的數據的時候就需要低等級低id的高訪問權限。這個時候我們就要分析數據庫的沉積數據哪一個最低。

夢幻西遊的寶寶的數據最低的level是大海龜、海毛蟲、巨蛙。由于程序的設計的問題,我們要訪問數據庫數據的話,有一個問題需要考慮,那就是這三個同爲初始level0哪一個的數據比較靠前,能成爲我們訪問數據庫的攻擊點,實際上應該就是巨蛙最靠前。

夢幻西遊最新的數據存儲是A+B型的,也就是說類似于奇安信虎符算法,客戶端只留存一半的數據,這個數據在服務器上進行拼接,就可以獲得完整的數據。我進行測試後發現。兩種轉化方式都可以確定巨蛙在服務器的數據id應該是1或者0。

巨蛙:

ascii:5d e8 86 d9

16進制e5b7a8e89b99->7a 8b 99

由于數據堆棧訪問的容量不同,在20年前的計算機普遍內存都很小,硬盤也不大,所以說要使遊戲流暢id=1、或者id=0,需要寫入超級用戶權限,所以說要使數據占用堆棧盡量小不要超出堆棧大小,所以說需要相應的存儲字符要小。我們看到的數據很有意思,我們看到巨蛙的ascii有2個字符位置、16進制虎符存儲有3個字符位置,這說明了同等與大蝙蝠、大海龜、海毛蟲等數據存儲少了1個字符的位置。但是要知道所有的數據庫的存儲方式都是統一的,也就是說0級的寶寶的名字的存儲字符應該都是3個字符,這個時候我們就可以在多余的1個字符位置上進行溢出,並寫入命令了。

由此可見,隨著遊戲不斷優化更新,對服務器的要求就越來越高,這就是爲什麽出現卡頓的原因。

0 阅读:81

九分精彩

簡介:分享有趣精彩遊戲視頻,探討遊戲電競動態。