專利名稱:主動反外掛的網絡游戲系統及網絡游戲系統反外掛方法
技術領域:
本發明涉及網絡游戲技術領域,尤其是涉及一種主動反外掛的網絡游戲系統及網絡游戲系統反外掛的方法。
背景技術:
中國網絡游戲產業在經歷了將近10年的探索后,已成功實現從依靠代理進口游戲到自主研發的民族網絡游戲為主的逆轉,進入了一個高速穩定發展的新階段。與此同時, 網絡游戲也面臨著嚴重的安全問題,而外掛是其中影響最為廣泛的安全隱患。外掛是指專門針對一款或多款網絡游戲,制作的作弊程序。用戶利用外掛可以輕易得到其他正常用戶無法得到、或必須通過長期運行程序才能得到的游戲效果。外掛的危害主要體現在以下三個方面(1)嚴重干擾了網絡游戲的正常運行和游戲的公平性,使得正常玩家大量流失;極大的增加了網絡服務器的數據流量負載,從而導致運營商的運營成本急劇升高,大大縮短游戲的生命周期,直接影響到經濟收入和聲譽,有些游戲甚至在正式運營前就因為外掛而夭折;(3)游戲中的虛擬貨幣實際上是通過銀行真實電子貨幣轉賬購買的,因而容易滋生木馬盜號等安全問題。依據是否依賴官方發布的游戲客戶端程序,可將外掛分為脫機式外掛和掛機式外掛兩大類,前者技術上是完全獨立的,通過模擬正常玩家與游戲服務器之間的通訊來達到作弊目的;后者利用游戲在設計和實現上的漏洞,分別在客戶端的驅動層、RING3層和游戲數據包通訊三個層面,通過模擬鍵盤、鼠標消息、截獲、修改內存、文件及通訊數據來實現外掛。其中,脫機外掛對網絡游戲平衡性的破壞力最強;通過篡改通訊數據來實現的外掛占據市面上外掛的90%。針對外掛泛濫的現象,也出現了很多反外掛的方法。常見的反外掛方法從技術方面可以分為以下幾種①游戲數據安全通訊網絡游戲所處的互聯網網絡是一個開放的系統環境,網絡游戲過程中客戶端與服務器之間的通訊數據包也可輕而易舉地被外掛制作者截獲并加以分析和篡改偽造。對通訊數據包進行加密后再在網絡上傳輸,增加數據包分析偽造的難度,這是實現游戲數據安全通訊的基本保護措施。該方法可以有效防御脫機外掛和修改游戲封包的這類外掛。②游戲客戶端進程的完整性保護該方法針對破壞游戲客戶端進程完整性的具體外掛技術來實現防御,但是游戲玩家是外掛的主動使用者,因而僅從系統層面來防御外掛,安全性不高;③玩家人工認證通過在游戲過程中隨機彈出難以用程序自動回答的問題,如圖像識別,要求玩家在限定時間內給出正確的答案,以識別玩家是否在電腦旁。這種方法能有效防御脫機外掛和有全自動練級功能的這類外掛,但是該方法會干擾玩家的正常游戲,影響游戲的連貫性;需投入大量人力物力去維護更新答題系統; 而且還可能存在由于正常玩家一時疏忽給出的錯誤答案而導致誤判的可能。雖然圖片識別等方式的玩家人工認證的方法在目前的網絡游戲的反外掛產品和專利中廣泛使用,但是由于其自身存在的諸多弊端,因而僅能作為目前缺乏有效反外掛產品的現狀下的一個防御外掛的過渡方法。④利用游戲邏輯通常將游戲邏輯復雜化或利用異常邏輯檢測來實現反外掛。游戲邏輯復雜化是從游戲代碼上使部分邏輯、數據難于分析和理解,甚至在游戲邏輯中添加各種信息、密碼的校驗,使得游戲的邏輯部分難以被偽造或篡改。該類方法主要針對脫機外掛和部分篡改游戲的這類外掛有效,其缺點是實現非常麻煩,且需投入較大的人力進行后期的維護開發。異常邏輯檢測,是游戲服務器通過檢查一些已知的邏輯上的漏洞以識別外掛。該類方法僅針對破壞了游戲規則的這類外掛有效,且極容易出現正常游戲玩家因網絡延時等出現錯誤的游戲邏輯而被誤判為外掛使用者的情況。目前
游戲數據安全通訊技術從通訊數據的安全性角度來遏制外掛。為了減少游戲服務器負載,保障游戲運行流暢性,數據加密方法不宜采用高安全性能的復雜加密技術。如何兼顧高效性和安全性,選擇合理的加密算法是其中的關鍵。目前采用的加密算法有三種① 《金庸群俠傳》等網絡游戲中采用逐位異或算法對游戲通訊數據進行加密,該種方式下加密和解密所采用的密鑰是相同的,且客戶端和游戲服務器的密鑰都由程序產生,不經過網絡傳輸。但是,存在以下缺點第一,僅使用異或算法來實現加密,其安全性難以得到保證;第二,即使采用多層加密也并不能增加加密強度;②胡陽在2004年申請的專利《采用密碼技術來防止網絡游戲外掛的方法》(申請號200410001138.X)中提出采用公開的對稱加密算法,并定期對算法進行更新,各客戶機擁有一套互不相同的子密鑰祖,對稱加密算法的密鑰通過用戶號、時間戳和隨機碼控制對用戶的子密鑰組進行隨機、實時組合選取,基本可以達到一次一密。但是,一次一密的方式無疑會帶來較大的加解密開銷,并且增加了游戲運行的負擔;③華為公司在2007年申請專利《一種防范網絡游戲外掛的方法、系統、服務器及終端設備》(申請號=200710002715. 0)中將通訊數據包依據不同的重要性選擇加密的算法進行分級加密,以達到既防止加密數據被破解,又不會過于影響運營成本及用戶體驗的目的。但是,將通訊數據包的重要性量化定級本身是一個難點。游戲客戶端進程的完整性保護技術在游戲客戶端系統層面遏制外掛,比較典型的有INCA公司的nProtect GameGuarcU安博士研究所的AhnLab HackShielcU金山游盾和盛大的GPK。它們都是利用系統層面的技術來實現反外掛,如,通過加載設備驅動進入Ring 0 級獲得系統的控制權并在所有進程中注入監測模塊以監測系統API被非法進程調用,利用類似于病毒掃描的特征碼來識別非法進程和模塊,采用服務端認證來檢測反外掛模塊是否正常工作并檢查客戶端程序的完整性等。但是這類產品存在一些內在的缺陷,不能從根本上遏制外掛技術。①設計思路是阻止外掛侵害客戶端,僅著眼于對游戲客戶端進程的保護, 完全不能防御不依賴于客戶端存在的脫機外掛。②對所有進程都接管監控,軟件兼容性差; ③過多地使用底層技術搶占系統控制權,會影響系統穩定性;④依賴于系統底層技術來防御外掛技術的反外掛產品,實際上是在與外掛制作者較量誰能夠最終控制系統。但是游戲玩家是主動的外掛使用者,而不是被動的受害者,因而外掛程序在用戶的系統中擁有和反外掛程序同樣的控制權限。反外掛產品在系統控制權的爭奪上并沒有明顯優勢。用戶可能會根據外掛的使用說明,嚴格地按步驟操作,甚至會按外掛的要求安裝新的操作系統;⑤外掛與病毒和木馬有完全不同的目的和代碼特征,而且在利益的驅動下,外掛的變形更新能力遠高于病毒和木馬,因此基于特征碼識別的技術很難取得明顯的效果。金山公司在2003 年12月推出的金山游盾就是最好的例證;⑥過多地使用底層技術,也不利于反外掛產品的快速更新以應對層出不窮的外掛技術;⑦更多地是在操作系統層面與游戲客戶端綁定,與游戲過程本身的關聯很弱,因而反外掛系統可能在系統層面被成功剝離,且由于底層機制的更新困難,這種剝離基本上只需要做一次。從以上分析也可以看出,單一地使用這兩類技術,還有很多缺陷,不能從根本上解決外掛問題。游戲數據安全通訊技術和客戶端保護技術分別從不同層面來防御外掛,將這兩類技術結合的方式,逐漸成為反外掛的主流發展趨勢。國內越來越多的網絡游戲反外掛的相關發明專利中使用這種方式,如何將這兩者有機結合,以實現對外掛技術的有效防御,成為現在該領域研究的主流方向。現有的專利主要是在游戲服務器對來自客戶端的外掛特征碼掃描結果 進行判斷,以識別客戶端是否使用外掛。其中,客戶端的外掛特征碼掃描結果的真實性也通過加密算法的安全性來得到保障。客戶端的外掛特征碼掃描結果可以通過附加到游戲通訊數據后再加密,或者直接加密后提交到游戲服務器。但是一旦加密算法被破解,就可以成功篡改客戶端的外掛特征碼掃描結果,從而達到欺騙游戲服務器的目的,因而安全性不高。綜上所述,現有的反外掛系統主要存在以下問題①缺乏安全有效的反外掛框架 如何真正有效、有機結合數據安全通訊技術和客戶端保護技術,是首要要解決的問題;② 處于被動的反外掛游戲玩家是外掛的主動使用者;與游戲過程脫離,針對具體外掛來防御,疲于應付不斷出現新外掛;③兼容性差與外掛爭奪系統控制權的攻防斗爭中,使用了過多底層技術,必然會引發一系列兼容性問題;④有效的反外掛系統缺乏的現狀下采用過渡方案,如人工認證、針對具體的網絡游戲開發反外掛系統,但是不利于游戲廠商專注開發高質量的游戲。
發明內容
本發明的主要目的在于提供一種適用于各類網絡游戲的主動反外掛方法及系統, 以高效安全地防御各類外掛技術。一種主動反外掛的網絡游戲系統,包括游戲服務器和游戲客戶端,游戲客戶端和游戲服務器之間通過通信網絡進行數據交互,所述游戲客戶端為游戲玩家所操縱,其特征在于所述游戲客戶端安裝有網絡游戲運行時加載的反外掛組件,所述游戲客戶端成功登錄后與游戲服務器進行安全協商數據通訊使用的種子密鑰、對稱加密算法和消息認證碼生成算法,所述反外掛組件負責主動監測網絡游戲客戶端,并將監測結果通過安全協商后的對稱加密算法加密后發送給游戲服務器;所述游戲服務器安裝有服務端反外掛系統,根據安全協商后的相關密碼算法解密驗證來自游戲客戶端的監測結果,對游戲客戶端的監測結果進行查詢匹配以識別客戶端是否在使用外掛。優選的,所述反外掛組件包括客戶端通訊模塊、客戶端加/解密及校驗模塊、游戲客戶端進程保護模塊、監測模塊,所述反外掛組件負責保護游戲客戶端進程不被簡單外掛注入,以減少外掛的誤報率;負責主動監測游戲客戶端游戲進程、反外掛組件以及系統運行環境的安全性,并將監測結果加密后發送給游戲服務器。優選的,所述游戲服務器包括服務器端通訊模塊、服務器端加/解密及校驗模塊、 外掛查詢模塊、數據庫和數據庫管理模塊;所述游戲服務器通過服務器端加/解密及校驗模塊對監測結果解密后進行驗證、并查詢匹配以識別游戲客戶端是否在使用外掛;接收來自反外掛組件的未知模塊樣本信息,并存儲到數據庫中。 本發明還提供了一種網絡游戲系統反外掛方法,其特征在于所述方法包括以下步驟
(1)啟動游戲客戶端并登錄到游戲服務器,在成功登陸后與游戲服務器安全協商種子密鑰、對稱加密算法和消息認證碼生成算法;
(2)游戲客戶端啟動反外掛組件保護游戲客戶端進程不被簡單外掛注入,且定時監測游戲客戶端進程和系統運行環境的安全性,并將監測結果經過安全處理后發給游戲服務器;
(3)游戲服務器接收來自游戲客戶端的監測結果,進行解密后再對消息認證碼進行驗證,并標本信息進行匹配比較來判斷游戲客戶端是否使用外掛。優選的,所述方法步驟(2)中所述反外掛組件通過獲取游戲客戶端進程在內存中裝載的模塊代碼的hash校驗值來監測游戲客戶端進程。優選的,所述方法步驟(2)中所述反外掛組件通過獲取系統加載的驅動模塊信息、 常用外掛程序的HOOK關鍵點和游戲客戶端的預設HOOK點的驅動模塊列表信息來監測系統運行環境。優選的,所述方法步驟(2)中所述反外掛組件通過在監測結果之后附上其消息認證碼,并進行加密來實現對監測結果的安全處理。優選的,所述方法步驟(3)中若連續3次以上消息認證碼驗證都不通過,則判斷游戲客戶端在使用外掛;若消息認證碼驗證通過,則將解密后的監測結果與游戲服務器的標本信息進行匹配比較,繼續判斷客戶端是否在使用外掛。優選的,所述方法還包括游戲服務器在固定時間間隔內未收到游戲客戶端發送的監測結果,則視為監測超時,并斷開游戲客戶端與游戲服務器的連接,讓游戲玩家重新登錄;若連續超時3次以上,則視為游戲客戶端在使用外掛。優選的,所述方法游戲服務器與游戲客戶端進行通信時,采用包含時變參數的挑戰-應答形式。本發明的適用于各類網絡游戲的主動反外掛方法,有機結合數據安全通訊技術和客戶端保護技術,并與游戲過程綁定。所述反外掛方法中,所述游戲客戶端與所述游戲服務器之間利用數據安全通訊技術來保障通訊數據的安全性,其中所涉及到的安全相關參數和算法在游戲客戶端成功登錄后與游戲服務器安全協商。所述反外掛組件安裝在游戲玩家所操縱的游戲客戶端,在游戲客戶端軟件運行時被加載。所述反外掛組件負責保護游戲客戶端進程不被簡單外掛注入,以減少外掛的誤報率;負責主動監測游戲客戶端游戲進程、反外掛組件以及系統運行環境的安全性,并將監測結果加密后發送給游戲服務器。所述游戲服務器對解密后的監測結果進行驗證以識別游戲客戶端是否在使用外掛。所述全局服務器接收來自游戲服務器的安全查詢請求,并反饋查詢結果;接收來自反外掛組件的未知模塊樣本信息,并存儲到數據庫中。相對于現有技術中的方案,本發明的優點是
本發明與游戲過程綁定,并有機結合數據安全通訊技術和客戶端保護技術,能高效安全地防御各類外掛技術;本發明主動監測游戲進程及系統環境,把該監測結果作為是否使用外掛的判斷依據。本發明在游戲服務器驗證識別游戲客戶端是否使用外掛,因此游戲客戶端的外掛程序無法干預這一判斷過程。從而進一步保證反外掛程序的安全性和可靠性; 本發明采用以監測為主、防堵為輔的策略,避免使用過多底層技術,因而系統穩定、軟件兼容性好。
下面結合附圖及實施例對本發明作進一步描述
圖1為本發明實施例主動反外掛的網絡游戲系統的結構圖; 圖2為本發明實施例網絡游戲系統主動反外掛方法的工作流程圖。
具體實施例方式以下結合具體實施例對上述方案做進一步說明。應理解,這些實施例是用于說明本發明而不限于限制本發明的范圍。實施例中采用的實施條件可以根據具體廠家的條件做進一步調整,未注明的實施條件通常為常規實驗中的條件。
實施例本實施例的適用于各類網絡游戲的主動反外掛系統,如圖1所示,包括游戲客戶端和游戲服務器,所述游戲客戶端和所述游戲服務器之間通過通信網絡進行數據交互。所述游戲客戶端為游戲玩家所操縱,其特征在于所述游戲客戶端安裝有網絡游戲運行時加載的反外掛組件,所述游戲客戶端成功登錄后與游戲服務器進行安全協商數據通訊使用的種子密鑰、對稱加密算法和消息認證碼生成算法,所述反外掛組件負責主動監測網絡游戲客戶端,并將監測結果通過安全協商后的對稱加密算法加密后發送給游戲服務器;所述游戲服務器安裝有服務端反外掛系統,根據安全協商后的相關密碼算法解密驗證來自游戲客戶端的監測結果,對游戲客戶端的監測結果進行查詢匹配以識別客戶端是否在使用外掛。所述反外掛組件包括客戶端通訊模塊、客戶端加/解密及校驗模塊、游戲客戶端進程保護模塊、監測模塊,所述反外掛組件負責保護游戲客戶端進程不被簡單外掛注入,以減少外掛的誤報率;負責主動監測游戲客戶端游戲進程、反外掛組件以及系統運行環境的安全性,并將監測結果加密后發送給游戲服務器。所述游戲服務器包括服務器端通訊模塊、服務器端加/解密及校驗模塊、外掛查詢模塊、數據庫和數據庫管理模塊;所述游戲服務器通過服務器端加/解密及校驗模塊對監測結果解密后進行驗證、并查詢匹配以識別游戲客戶端是否在使用外掛;接收來自反外掛組件的未知模塊樣本信息,并存儲到數據庫中。所述反外掛組件中
所述游戲客戶端進程保護模塊用于保護游戲客戶端進程不被簡單外掛注入。所述游戲客戶端進程保護模塊通過開發Windows驅動程序的方式獲得RingO級權限實現對游戲客戶端進程的保護,具體包括進程句柄訪問保護、內存讀寫保護、窗口句柄保護、消息保護、系統消息鉤子保護、遠程線程注入保護、dll劫持保護、自dump句柄保護、app_init注入保護等。所述監測模塊負責主動監測客戶端游戲進程、反外掛組件本身以及系統運行環境的安全性,具體包括游戲客戶端進程在內存中裝載的模塊代碼的hash校驗值、系統加載的驅動模塊信息、Hook關鍵點及其相應的驅動模塊列表信息。所述關鍵點指外掛常用的 Hook關鍵點和反外掛組件中使用的Hook點。所述驅動模塊列表信息指若干個驅動模塊,其中所述驅動模塊信息用模塊的MD5,大小,文件名來描述,可通過模塊的MD5和大小來唯一標識。所述客戶端加/解密及校驗模塊在監測結果之后附上其消息認證碼,并進行加密;對外掛查詢結果進行解密,完整性驗證。所述加/解密及校驗模塊負責保障反外掛組件與游戲服務器之間的安全通信,其安全性主要通過密鑰種子的安全協商來保障。其中所述加/解密指采用對稱加/解密算法;所述消息認證碼指利用對稱加密算法加密消息的摘要后得到的結果,可用來認證消息是否被篡改過;所述對稱加/解密過程和消息碼生成過程中所使用的密鑰是通過種子密鑰分別衍生而來。所述加/解算法和消息認證碼生成算法、 種子密鑰可在游戲客戶端登錄到服務器后使用簡化的SSL協議進行安全協商。所述種子密鑰在一次游戲連接中至少更新一次。所述客戶端通訊模塊定時調用監測模塊和加/解密及校驗模塊,并將加密后的監測結果發送給游戲服務器;接收來自游戲服務器的外掛查詢結果,調用加/解密及校驗模塊進行解密和完整性校驗,根據解密后的外掛查詢結果將未知的模塊樣本信息上傳到全局服務器。所述未知的模塊樣本信息包括模塊MD5、模塊樣本、樣本文件長度、在本地的存儲路徑、是否有簽名等;
所述游戲服務器中
所述服務器端通訊模塊接收來自反外掛組件的監測結果,調用加/解密及校驗模塊進行解密和完整性校驗后,調用外掛查詢模塊,對解密后的監測結果進行外掛查詢;調用加/ 解密及校驗模塊,將加密后的外掛查詢結果反饋給反外掛組件;接收來自反外掛組件的未知模塊樣本信息。所述服務器端加/解密及校驗模塊對監測結果進行解密,完整性驗證;在外掛查詢結果之后附上其消息認證碼,并進行加密。所述外掛查詢模塊將解密后的監測結果解析為多個驅動模塊信息和關鍵點信息,并將安全查詢請求發送給數據庫管理模塊;并依據反饋回的查詢結果,計算出游戲客戶端是否在使用外掛。所述游戲客戶端是否在使用外掛的查詢結果包括三種1)未使用外掛 游戲客戶端監測結果中所有模塊和關鍵點都是安全的;2)在使用外掛游戲客戶端監測結果中至少有一個模塊和關鍵點是不安全的;3)可能在使用外掛游戲客戶端監測結果中除了有若干個模塊和關鍵點的信息是未知的,其他所有模塊和關鍵點都是安全的,此時需要求游戲客戶端上傳未知模塊的相關信息以便進行進一步的判斷。所述數據庫,包含兩個表格,分別用于存放驅動模塊信息和關鍵點信息。驅動模塊信息表中存儲系統加載的驅動模塊的MD5,大小和文件名,安全與否;關鍵點信息表中存儲關鍵點的索引號,驅動模塊的MD5,大小,文件名,安全與否。所述數據庫管理模塊根據來自外掛查詢模塊的安全查詢請求,與數據庫中的信息進行匹配,判斷是否使用了外掛;將反外掛組件上傳的未知模塊信息添加到數據庫中。該實施例的主動反外掛方法適用于各類網絡游戲,該方法有機結合數據安全通訊技術和客戶端保護技術,并與游戲過程綁定。所述反外掛方法中,網絡游戲分為游戲客戶端和游戲服務器兩個部分,游戲客戶端和游戲服務器之間通過通信網絡進行數據交互。
所述游戲客戶端與所述游戲服務器之間利用數據安全通訊技術來保障通訊數據的安全性,其中所涉及到的安全相關參數和算法在游戲客戶端成功登錄后與游戲服務器安全協商。所述游戲客戶端游戲運行后可保護游戲客戶端進程不被簡單外掛注入,且定時監測游戲客戶端進程和系統運行環境的安全性并發給游戲服務器;所述游戲服務器驗證游戲客戶端的監測結果以識別游戲客戶端是否在使用外掛。如圖2所示,適用于各類網絡游戲的主動反外掛方法,包括如下步驟
步驟一啟動游戲客戶端游戲并登錄到服務器,在成功登陸后與游戲服務器安全協商種子密鑰、對稱加密算法和消息認證碼生成算法;
上述步驟一中,所述游戲客戶端與游戲服務器的安全協商,是保障整個反外掛系統通信層面安全有效的核心部分,其重點是安全協商種子密鑰。步驟二游戲客戶端保護游戲客戶端進程不被簡單外掛注入;且定時監測游戲客戶端進程和系統運行環境的安全性,并將監測結果經過安全處理后發給游戲服務器;
上述步驟二中,所述監測游戲客戶端進程的安全性是指獲取游戲客戶端進程在內存中裝載的模塊代碼的hash校驗值。上述步驟二中,所述監測系統運行環境的安全性是指獲取系統加載的驅動模塊信息、關鍵點所Hook的驅動模塊列表信息。所述關鍵點,包括外掛程序常用的Hook關鍵點和游戲客戶端保護自身進程不被簡單外掛注入時所使用的Hook點。上述步驟二中,所述安全處理是指利用步驟一中的消息認證碼生成算法對指定的消息生成其消息認證碼并附在原始消息之后,然后利用步驟一中的對稱加密算法進行加密處理,再發給游戲服務器;
步驟三游戲服務器接收來自游戲客戶端的監測結果,進行解密后再對消息認證碼進行驗證。若連續3次以上消息認證碼驗證都不通過,則認為游戲客戶端在使用外掛;若消息認證碼驗證通過,則將解密后的監測結果與游戲服務器的標本信息進行匹配比較,從而判斷游戲客戶端是否在使用外掛;
上述步驟三中,所述游戲服務器的標本信息,包括各種正常和異常的游戲客戶端進程在內存中裝載的模塊代碼的hash校驗值、驅動模塊的信息、關鍵點所Hook的驅動模塊列表 fn息ο步驟四游戲服務器將該外掛查詢結果經過安全處理后,再反饋給游戲客戶端; 上述步驟四中,所述安全處理是指利用步驟一中的消息認證碼生成算法對指定的消
息生成其消息認證碼并附在原始消息之后,然后利用步驟一中的對稱加密算法進行加密處理,再發給游戲客戶端;
若游戲服務器在固定時間間隔內未收到游戲客戶端發送的監測結果,則視為監測超時,并斷開游戲客戶端與游戲服務器的連接,讓游戲玩家重新登錄。若連續超時3次以上, 則視為游戲客戶端在使用外掛;
若游戲客戶端在使用外掛,則游戲服務器需記錄當前的游戲用戶ID和外掛監測時間。進一步地,為了防止游戲客戶端偽造通訊包,在游戲服務器與游戲客戶端進行通信時,可采用包含時變參數的挑戰-應答形式。上述步驟一中游戲服務器與游戲客戶端進行通信時,可在發給游戲客戶端的數據包中增加Token ;游戲客戶端進行應答時,需要帶上相應的Token的hash校驗值;服務端通過驗證接收到的數據包中Token的hash校驗值來判斷該數據包是否存在偽造。在上述步驟二中,游戲客戶端向游戲服務端發送監測結果時, 需帶上Token的hash校驗值;在上述步驟三中,服務端在解密監測結果之后驗證消息認證碼前,需驗證Token是否和預期的一致,若不一致,則認為游戲客戶端在使用外掛。
上述實例只為說明本發明的技術構思及特點,其目的在于讓熟悉此項技術的人是能夠了解本發明的內容并據以實施,并不能以此限制本發 明的保護范圍。凡根據本發明精神實質所做的等效變換或修飾,都應涵蓋在本發明的保護范圍之內。
權利要求
1.一種主動反外掛的網絡游戲系統,包括游戲服務器和游戲客戶端,游戲客戶端和游戲服務器之間通過通信網絡進行數據交互,所述游戲客戶端為游戲玩家所操縱,其特征在于所述游戲客戶端安裝有網絡游戲運行時加載的反外掛組件,所述游戲客戶端成功登錄后與游戲服務器進行安全協商數據通訊使用的種子密鑰、對稱加密算法和消息認證碼生成算法,所述反外掛組件負責主動監測網絡游戲客戶端,并將監測結果通過安全協商后的對稱加密算法加密后發送給游戲服務器;所述游戲服務器安裝有服務端反外掛系統,根據安全協商后的相關密碼算法解密驗證來自游戲客戶端的監測結果,對游戲客戶端的監測結果進行查詢匹配以識別客戶端是否在使用外掛。
2.根據權利要求1所述的主動反外掛的網絡游戲系統,其特征在于所述反外掛組件包括客戶端通訊模塊、客戶端加/解密及校驗模塊、游戲客戶端進程保護模塊、監測模塊,所述反外掛組件負責保護游戲客戶端進程不被簡單外掛注入;負責主動監測游戲客戶端游戲進程、反外掛組件以及系統運行環境的安全性,并將監測結果加密后發送給游戲服務器。
3.根據權利要求1所述的主動反外掛的網絡游戲系統,其特征在于所述游戲服務器包括服務器端通訊模塊、服務器端加/解密及校驗模塊、外掛查詢模塊、數據庫和數據庫管理模塊;所述游戲服務器通過服務器端加/解密及校驗模塊對監測結果解密后進行驗證、并查詢匹配以識別游戲客戶端是否在使用外掛;接收來自反外掛組件的未知模塊樣本信息, 并存儲到數據庫中。
4.一種網絡游戲系統反外掛方法,其特征在于所述方法包括以下步驟(1)啟動游戲客戶端并登錄到游戲服務器,在成功登陸后與游戲服務器安全協商種子密鑰、對稱加密算法和消息認證碼生成算法;(2)游戲客戶端啟動反外掛組件保護游戲客戶端進程不被簡單外掛注入,且定時監測游戲客戶端進程和系統運行環境的安全性,并將監測結果經過安全處理后發給游戲服務器;(3)游戲服務器接收來自游戲客戶端的監測結果,進行解密后再對消息認證碼進行驗證,并標本信息進行匹配比較來判斷游戲客戶端是否使用外掛。
5.根據權利要求4所述的方法,其特征在于所述方法步驟(2)中所述反外掛組件通過獲取游戲客戶端進程在內存中裝載的模塊代碼的hash校驗值來監測游戲客戶端進程。
6.根據權利要求4所述的方法,其特征在于所述方法步驟(2)中所述反外掛組件通過獲取系統加載的驅動模塊信息、常用外掛程序的HOOK關鍵點和游戲客戶端的預設HOOK點的驅動模塊列表信息來監測系統運行環境。
7.根據權利要求4所述的方法,其特征在于所述方法步驟(2)中所述反外掛組件通過在監測結果之后附上其消息認證碼,并進行加密來實現對監測結果的安全處理。
8.根據權利要求4所述的方法,其特征在于所述方法步驟(3)中若連續3次以上消息認證碼驗證都不通過,則判斷游戲客戶端在使用外掛;若消息認證碼驗證通過,則將解密后的監測結果與游戲服務器的標本信息進行匹配比較,繼續判斷客戶端是否在使用外掛。
9.根據權利要求4所述的方法,其特征在于所述方法還包括游戲服務器在固定時間間隔內未收到游戲客戶端發送的監測結果,則視為監測超時,并斷開游戲客戶端與游戲服務器的連接,讓游戲玩家重新登錄;若連續超時3次以上,則視為游戲客戶端在使用外掛。
10.根據權利要求4所述的方法,其特征在于所述方法游戲服務器與游戲客戶端進行通信時,采用包含時變參數的挑戰-應答形式。
全文摘要
本發明公開了一種主動反外掛的網絡游戲系統及其方法,所述系統包括游戲服務器和游戲客戶端,游戲客戶端和游戲服務器之間通過通信網絡進行數據交互,所述游戲客戶端為游戲玩家所操縱,其特征在于所述游戲客戶端安裝有網絡游戲運行時加載的反外掛組件,所述游戲客戶端成功登錄后與游戲服務器進行安全協商數據通訊使用的種子密鑰、對稱加密算法和消息認證碼生成算法,所述反外掛組件負責主動監測網絡游戲客戶端,并將監測結果通過安全協商后的對稱加密算法加密后發送給游戲服務器;所述游戲服務器安裝有服務端反外掛系統,根據安全協商后的相關密碼算法解密驗證來自游戲客戶端的監測結果,對游戲客戶端的監測結果進行查詢匹配以識別客戶端是否在使用外掛。該發明與游戲過程綁定,并有機結合數據安全通訊技術和客戶端保護技術,能高效安全地防御各類外掛技術。
文檔編號H04L29/06GK102158367SQ20101059386
公開日2011年8月17日 申請日期2010年12月17日 優先權日2010年12月17日
發明者余艷瑋, 周學海, 席菁, 李曦, 陳博 申請人:中國科學技術大學蘇州研究院