專利名稱:網(wǎng)絡游戲反外掛的實現(xiàn)方法
技術(shù)領域:
本發(fā)明涉及一種網(wǎng)絡游戲的技術(shù)領域,尤指一種網(wǎng)絡游戲反外掛 的實現(xiàn)方法。
背景技術(shù):
網(wǎng)絡游戲的構(gòu)造,總體可分為服務器端、客戶端兩部分(如圖1 所示)??蛻舳耸窃谟脩舯镜剡\行的客戶程序,服務器端是運行在遠
程的服務程序,兩者通過網(wǎng)絡相互通訊,如圖2所示。
在現(xiàn)實中的大部分網(wǎng)絡游戲一般都會遇到外掛的困擾。從服務器 端負載能力方面考慮,外掛占用大量的服務器端負載資源;從正常用 戶體驗方面考慮,由于服務器端負載資源被外掛大量占用,正常用戶 的體驗嚴重收到影響;從游戲公司考慮,外掛有時會嚴重影響游戲的 聲譽及收益。
所謂外桂("hacktools",或稱"cheatingprogram")就是指某些人 利用自己掌握的計算機技術(shù)針對一個或多個網(wǎng)絡游戲,通過改變網(wǎng)絡 游戲軟件的部分程序,制作而成的作弊程序。
用戶利用這種作弊程序可以輕易得到其他正常用戶無法得到、或 必須通過長期運行程序才能得到的游戲效果。
外掛的表現(xiàn)有很多種,有加速器、封包等,其最顯著的特征就是 為使用外掛的游戲者帶來不同于正常用戶的游戲效果,它能使使用外 掛者比正常用戶奔跑快、攻擊威力加大、獲得更多的游戲道具等。
外掛主要是通過破解游戲客戶端代碼和破解游戲客戶端、服務器 端之間的通訊機制,來偽造報文,實現(xiàn)其目的。
3因此打擊外桂,日益^皮各網(wǎng)絡游戲開發(fā)公司所重^L。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題在于提供一種網(wǎng)絡游戲反外掛的實 現(xiàn)方法,其可以有效、可靠的打擊現(xiàn)有或潛在外掛,以維持正常用戶 及游戲公司的利益。
為解決上述技術(shù)問題,本發(fā)明的技術(shù)解決方案是 一種網(wǎng)絡游戲反外掛的實現(xiàn)方法,包括下述步驟
1) 服務器端隨機發(fā)送挑戰(zhàn)信息到客戶端,等待客戶端應答;
2) 客戶端在收到挑戰(zhàn)信息后,在虛擬機中運行服務器端發(fā)送來 的挑戰(zhàn)信息腳本代碼,并將結(jié)果發(fā)送給服務器端;
3) 服務器端接收到客戶端返回的挑戰(zhàn)應答后,和服務器端的預 期結(jié)果進行比較,若結(jié)果符合預期,則認為該游戲客戶端是合法、可 被信任的;否則,認為該游戲客戶端是非法、不被信任的。
該方法還引入挑戰(zhàn)超時機制,即服務器端在發(fā)送挑戰(zhàn)信息之后同 時啟動挑戰(zhàn)超時定時器,當客戶端應答超時,則認為客戶端挑戰(zhàn)失敗 一次,發(fā)送新的挑戰(zhàn)信息給客戶端,再次啟動挑戰(zhàn)超時定時器,依次 循環(huán);當挑戰(zhàn)超時定時器判斷挑戰(zhàn)失敗次數(shù)超過設定警戒值時,則認 為該游戲客戶端是非法、不被信任的;挑戰(zhàn)失敗包括超時未收到答復 和答復錯誤兩種。
所述的挑戰(zhàn)信息包括服務器端隨機加密生成的挑戰(zhàn)問題和獲取 挑戰(zhàn)問題答案的計算方法。
所述的虛擬機為一腳本解釋器,它可以對腳本進行解釋、運行等 操作。
方法還包括步驟4),即當挑戰(zhàn)超時定時器判斷挑戰(zhàn)失敗次數(shù)超 過設定警戒值,啟動ECHO檢查機制,同時啟動ECHO超時定時器;啟動ECHO機制之后,服務器端組織ECHO報文并發(fā)送給客戶端, 當客戶端應答超時,則強制客戶端下線;而當客戶端及時應答成功, 根據(jù)數(shù)據(jù)庫設定配置進行對應的處理。
采用上述方案后,由于本發(fā)明將在服務器端不定期地觸發(fā)驗證功 能,通過指定的消息向游戲客戶端發(fā)送腳本數(shù)據(jù);由游戲客戶端調(diào)用 虛擬機進行相關計算、處理。服務器端可以靈活無規(guī)律地選擇挑戰(zhàn)問 題和計算挑戰(zhàn)問題答案的方法,挑戰(zhàn)問題信息和計算挑戰(zhàn)問題答案的
方法完全獨立于客戶端,有效的杜絕了絕大部分外掛在客戶端破解的 可能性??梢赃_到以下的效果
1、 服務器端可以簡單的利用服務器端充沛的代碼資源進行挑戰(zhàn) 問題的挑選;且服務器端代碼資源在不斷的更新,因此保證了可以挑 戰(zhàn)資源的不斷增長。
2、 服務器可以靈活地配置使用計算挑戰(zhàn)問題答案的方法,這種 靈活的計算方式,便于調(diào)整反外掛的策略。
3、 客戶端相關處理運行在虛擬機中的機制,也提高了外掛破解 的難度,提高了外掛的技術(shù)門檻,同時也提高了外掛的開銷。
4、 很好的保證了用戶的正常游戲體驗。
5、 外掛被有效杜絕,維護其他用戶的利益及游戲的公平性,同 時可維護游戲公司的利益。
6、 所付出的代價較低,不會對游戲的正常運行造成不良影響(游 戲客戶端表現(xiàn)卡、游戲客戶端崩潰或游戲客戶端內(nèi)存泄露)。
圖l是當前網(wǎng)絡游戲的框架拓樸示意圖2是網(wǎng)絡游戲服務器端和客戶端相互通訊的示意圖3是本發(fā)明挑戰(zhàn)模塊初始化流程示意5圖4是本發(fā)明挑戰(zhàn)模塊執(zhí)行流程示意圖; 圖5是本發(fā)明整體流程概要示意圖。
具體實施例方式
本發(fā)明所揭示的是一種網(wǎng)絡游戲反外掛的實現(xiàn)方法,如圖3至圖 5所示。
本發(fā)明將網(wǎng)絡游戲系統(tǒng)分為游戲服務器和游戲客戶端部分,且客 戶端和服務器端可以通過遠程調(diào)用實現(xiàn)數(shù)據(jù)的通訊(配合圖2所示)。 當客戶端連接到服務器端時,服務器端會每隔一定的時間就發(fā)送一次 挑戰(zhàn)信息到客戶端,以驗證客戶端的有效性,客戶端接收到挑戰(zhàn)信息 后會應答該挑戰(zhàn)給服務器端,服務器端會將應答結(jié)果與服務器端的預 期結(jié)果相比較,若結(jié)果符合預期,則認為該客戶端是合法的、或可被 信任的,若連續(xù)一定的次數(shù)沒有收到客戶端的挑戰(zhàn)應答或沒有得到正 確的應答,則認為該客戶端非法,相應的^[故一些非法客戶端的處理, 例如強制將該客戶端與服務器端斷開連接。
在運行這一過程前,要先進行挑戰(zhàn)模塊初始化即服務器端讀取 計算挑戰(zhàn)答案的腳本文件,加密生成計算挑戰(zhàn)答案的腳本,發(fā)送給客 戶端;客戶端檢驗合法性,在虛擬機中解密執(zhí)行。如圖3所示。
初始化后,即可執(zhí)行這一過程。上述過程,主要有以下部分組成
1.挑戰(zhàn)信息的組織
組織挑戰(zhàn)報文,隨機加密生成挑戰(zhàn)問題和要求計算答題腳本。 服務器端在組織挑戰(zhàn)信息時,服務器端會隨機產(chǎn)生一段腳本代碼
SCRIPT—A,該腳本只是一些完整的函數(shù)體,并將該部分代碼加密。 同時服務器端會組織另外的一段腳本代碼SCRIPT_B,該部分代
碼主要實現(xiàn)傳入?yún)?shù)調(diào)用SCRIPT—A中的函數(shù),以及將信息發(fā)送給服
務器端的代碼。2. 挑戰(zhàn)信息的發(fā)送
發(fā)送信息前,服務器本身會運行一次SCRIPT—A,并將計算結(jié)果 做記錄,以被核查客戶端返回的答案。
將腳本代碼SCRIPT—A和SCRIPT—B j故加密后發(fā)送給客戶端,并 將該腳本在服務器端做記錄。
發(fā)送后啟動挑戰(zhàn)超時機制。
3. 挑戰(zhàn)信息的應答
客戶端收到挑戰(zhàn)信息后會在虛擬機中運行服務器端發(fā)送來的腳 本代碼,并將結(jié)果發(fā)送給服務器端。
具體的執(zhí)行方法是客戶端在收到服務器發(fā)送過來的數(shù)據(jù)包后, 按照約定的格式從緩沖區(qū)中獲取數(shù)據(jù),并將之組織成客戶端可以接受 的數(shù)據(jù)結(jié)構(gòu)。然后在一個專門負責處理反外掛的類中解析服務器發(fā)送 過來的數(shù)據(jù)先把腳本數(shù)據(jù)從數(shù)據(jù)結(jié)構(gòu)中抽取出來,然后進行一系列 判斷,如果不符合約定格式,則不再繼續(xù)后續(xù)處理;如果符合約定格 式則調(diào)用虛擬機執(zhí)行該腳本數(shù)據(jù),然后根據(jù)該結(jié)果進行相關處理。虛 擬機是腳本解釋器,用以對腳本進行解釋、運行等操作。
4. 挑戰(zhàn)結(jié)果的驗證
服務器端接收到客戶端發(fā)送來的挑戰(zhàn)應答后,停止挑戰(zhàn)超時機制。
先判斷挑戰(zhàn)題目和挑戰(zhàn)題目運行的結(jié)果是否正確,若正確則準備 下一次挑戰(zhàn),若接收到的挑戰(zhàn)題目或挑戰(zhàn)題目運行的結(jié)果不正確,則 累計挑戰(zhàn)失敗的次數(shù),并再次嘗試挑戰(zhàn)客戶端。
5. 挑戰(zhàn)超時才幾制
為了防止客戶端不應答來規(guī)避挑戰(zhàn),服務器端在發(fā)送挑戰(zhàn)信息后 同時啟動挑戰(zhàn)超時定時器,即一定的時間間隔后;f企查一下是否收到了
7客戶端的應答。當客戶端應答超時,則認為客戶端挑戰(zhàn)失敗一次,發(fā) 送新的挑戰(zhàn)信息給客戶端,再次啟動挑戰(zhàn)超時定時器,依次循環(huán)。
6.啟動ECHO機制
當挑戰(zhàn)超時定時器判斷挑戰(zhàn)失敗次數(shù)超過設定警戒值,則啟動 ECHCM企查機制,同時啟動ECHO超時定時器。4光戰(zhàn)失敗包括超時 未收到答復和答復錯誤兩種。
啟動ECHO機制之后,服務器端組織ECHO報文并發(fā)送給客戶 端。當客戶端應答超時,則認為客戶端為非法、不被信任的,主動斷 開與該游戲客戶端的連接,即強制客戶端下線;而當客戶端及時應答 成功,才艮據(jù)數(shù)據(jù)庫設定配置進4于對應的處理。處理分類有懲罰、踢 人、斷開連接、記錄等等。
上述挑戰(zhàn)機制負責的是判斷客戶端是否合法。ECHO機制處理的 是非法客戶端的懲罰,即驗證客戶端的情況,若沒有收到驗證客戶端 的應答信息,則直接和客戶端斷開連接;若收到了應答信息,則根據(jù) 客戶端返回的驗證信息,啦文相應的處理。
權(quán)利要求
1、一種網(wǎng)絡游戲反外掛的實現(xiàn)方法,其特征在于包括下述步驟1)服務器端隨機發(fā)送挑戰(zhàn)信息到客戶端,等待客戶端應答;2)客戶端在收到挑戰(zhàn)信息后,在虛擬機中運行服務器端發(fā)送來的挑戰(zhàn)信息腳本代碼,并將結(jié)果發(fā)送給服務器端;3)服務器端接收到客戶端返回的挑戰(zhàn)應答后,和服務器端的預期結(jié)果進行比較,若結(jié)果符合預期,則認為該游戲客戶端是合法、可被信任的;否則,認為該游戲客戶端是非法、不被信任的。
2、 如權(quán)利要求1所述網(wǎng)絡游戲反外掛的實現(xiàn)方法,其特征在于 該方法還引入挑戰(zhàn)超時機制,即服務器端在發(fā)送挑戰(zhàn)信息之后同時啟 動挑戰(zhàn)超時定時器,當客戶端應答超時,則認為客戶端挑戰(zhàn)失敗一次, 發(fā)送新的挑戰(zhàn)信息給客戶端,再次啟動挑戰(zhàn)超時定時器,依次循環(huán); 當挑戰(zhàn)超時定時器判斷挑戰(zhàn)失敗次數(shù)超過設定警戒值時,則認為該游 戲客戶端是非法、不被信任的;挑戰(zhàn)失敗包括超時未收到答復和答復 錯誤兩種。
3、 如權(quán)利要求1或2所述網(wǎng)絡游戲反外掛的實現(xiàn)方法,其特征 在于所述的挑戰(zhàn)信息包括服務器端隨機加密生成的挑戰(zhàn)問題和獲取 挑戰(zhàn)問題答案的計算方法。
4、 如權(quán)利要求3所述網(wǎng)絡游戲反外掛的實現(xiàn)方法,其特征在于 所述的虛擬機為一腳本解釋器,它可以對腳本進行解釋、運行等操作。
5、 如權(quán)利要求3所述網(wǎng)絡游戲反外掛的實現(xiàn)方法,其特征在于 方法還包括步驟4),即當挑戰(zhàn)超時定時器判斷挑戰(zhàn)失敗次數(shù)超過設 定警戒值,啟動ECHO檢查機制,同時啟動ECHO超時定時器;啟 動ECHO機制之后,服務器端組織ECHO報文并發(fā)送給客戶端,當 客戶端應答超時,則強制客戶端下線;而當客戶端及時應答成功,根 據(jù)數(shù)據(jù)庫設定配置進行對應的處理。
全文摘要
本發(fā)明公開了一種網(wǎng)絡游戲反外掛的實現(xiàn)方法,包括下述步驟1)服務器端隨機發(fā)送挑戰(zhàn)信息到客戶端,等待客戶端應答;2)客戶端在收到挑戰(zhàn)信息后,在虛擬機中運行服務器端發(fā)送來的挑戰(zhàn)信息腳本代碼,并將結(jié)果發(fā)送給服務器端;3)服務器端接收到客戶端返回的挑戰(zhàn)應答后,和服務器端的預期結(jié)果進行比較,若結(jié)果符合預期,則認為該游戲客戶端是合法、可被信任的;否則,認為該游戲客戶端是非法、不被信任的。通過該方法可以有效、可靠的打擊現(xiàn)有或潛在外掛,以維持正常用戶及游戲公司的利益。
文檔編號H04L29/06GK101557400SQ200910111799
公開日2009年10月14日 申請日期2009年5月13日 優(yōu)先權(quán)日2009年5月13日
發(fā)明者軍 徐, 偉 蔡, 陳秋樹 申請人:廈門市吉比特網(wǎng)絡技術(shù)有限公司