當前位置:遊戲中心平台 - 熱門遊戲 - 遊戲是怎麽反外掛呢?

遊戲是怎麽反外掛呢?

首先我們科普壹下外掛的定義(自己總結非官方):能夠修改目標程序原有的行為或數據的第三方程序。其中最常見的目標程序就是網絡遊戲客戶端。壹直以來,網絡遊戲開發商以及運營商與外掛開發者之間的對抗,從未停止過。正所謂,八仙過海各顯神通。在對抗的過程當中,雙方都有壹定的收益,在利益的驅使下,雙方都竭盡所能使用更高端的技術完成攻與防的內容。

正所謂,知己知彼百戰百勝。我們作為專業的反外掛開發商,非常有必要了解各種常見遊戲外掛所采用的技術。只有知道了他們的原理,我們才能想出對抗外掛的技術方法。下面列出我們在十數載反外掛研究中發現的外掛技術種類(不全之處,還望補充)。

壹.脫機類外掛

在遊戲開發過程中,每款遊戲的客戶端與服務端都會有固定的通信格式,大部分遊戲通信協議位於TCP層之上,自定義的數據結構,外掛開發者們稱此為封包。下面簡單列舉壹個簡單的打鬥封包,以方便說明脫機類外掛原理。

0000ABCD 0000DCBA 00001234 00001000

例如玩家1在與玩家2打鬥過程中,發送到服務器這樣壹個16字節的數據包,其中遊戲開發者定義此數據包含義如下:

0000ABCD:玩家1的ID。

0000DCBA:玩家2的ID。

00001234:玩家1所使用的技能編號。

00001000:玩家1對玩家2造成的傷害,轉換為十進制為:4096。

當服務器接收到此數據包時,則會將玩家2的血量減少4096點,如果玩家血量減少後小於等於0,則判定為玩家2已經陣亡。這時服務器會返回給玩家2的客戶端壹個數據包,玩家2的客戶端則播放壹個玩家2已經死亡的動畫。

以上邏輯,其實存在著大量的漏洞,比如說,服務器應該判定玩家上壹次釋放00001234號技能是否在冷卻時間內,再比如說,服務器應該判定玩家戰鬥過程中所造成的傷害是否與其裝備、法力值、攻擊力、暴擊等相吻合,是否超過了遊戲本身限制的最大傷害。類似這種漏洞,每壹款遊戲都會存在,只不過不會這麽明顯。壹些老遊戲在這方面做的相對較弱,所以漏洞更多。

另外,在遊戲開發過程中,數據通信的格式在遊戲開發商的公司中都有相關文檔明確定義的。而這些文檔非常機密。壹些遊戲開發商公司的安全做的不夠好的情況下,可能會造成遊戲代碼以及文檔的泄露。這些資料,壹旦流入外掛開發者手中,那麽這款遊戲就極有可能會出現脫機式外掛。

脫機外掛定義:在不開啟遊戲客戶端的情況下,第三方程序直接與遊戲服務器進行通信,模擬賬號登陸驗證、選擇角色、進入遊戲、進入場景、開始戰鬥、對怪物造成傷害等操作時的合法數據包,發送給服務器,而服務器是沒有能力判斷出這些包是否是客戶端發來的,即便有驗證手段,由於源碼已經泄露,外掛開發者可以輕而易舉的模擬出服務端的各種驗證機制。即便數據包傳送過程中是加密的,由於源碼外漏,外掛開發者壹樣可以正確模擬出數據包的加密方式。

對於這種類型的外掛,常見的屏蔽手段就是修改加密方式,使得脫機外掛發送過來的數據包,服務端無法解析,或者解析出的結果是錯誤的,而服務端發現客戶端發送錯誤的數據包時,則斷開連接。此方法,需要客戶端與服務端同步更新。改動較大。

還有壹種常見方法,是在客戶端中嵌入壹些驗證性代碼,與另外壹個專門負責驗證的服務端通信,客戶端必須正確作答後,服務端方可認為是合法客戶端發來的數據包。此類反外掛方式,我們也會經常見到,比如壹些遊戲中為防止掛機行為而加入的答題機制。

  • 上一篇:dnf 赤血龍女現在可以交易嗎
  • 下一篇:淘寶怎麽查幾年前買過的店鋪
  • copyright 2024遊戲中心平台