一種游戲代碼校驗(yàn)的方法及游戲客戶端、系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)游戲領(lǐng)域,具體涉及一種游戲代碼校驗(yàn)的方法及游戲客戶端、系統(tǒng)。
【背景技術(shù)】
[0002]隨著網(wǎng)絡(luò)游戲的逐步普及,以及網(wǎng)絡(luò)游戲的每年的豐富的利潤,游戲外掛軟件也由此衍生,但是外掛會影響正常網(wǎng)絡(luò)游戲玩家的游戲體驗(yàn)和影響游戲運(yùn)營公司的正常收入,正常游戲玩家和游戲運(yùn)營公司都非常反感游戲外掛軟件。
[0003]但是目前還沒有很好的方法能夠有效的防止游戲外掛軟件,不能很好的維護(hù)正常游戲玩家和游戲運(yùn)營公司的利益。
【發(fā)明內(nèi)容】
[0004]本發(fā)明主要解決的技術(shù)問題是提供一種游戲代碼校驗(yàn)的方法及客戶端、系統(tǒng),能夠有效防止修改代碼類的游戲外掛,提升游戲玩家體驗(yàn),讓游戲更好的運(yùn)營。
[0005]第一方面,本發(fā)明實(shí)施例提供一種游戲代碼校驗(yàn)方法,所述方法包括:游戲啟動后,獲取需要校驗(yàn)的游戲的至少一個組件名稱,所述組件為所述游戲下的功能組件;調(diào)用代碼校驗(yàn)函數(shù),對所述組件的代碼段進(jìn)行校驗(yàn);若所述組件的代碼段校驗(yàn)通過,保持對應(yīng)的游戲玩家賬號正常游戲,若所述組件的代碼段校驗(yàn)未通過,將所述游戲玩家信息上報服務(wù)器,以待處理。
[0006]其中,所述調(diào)用代碼校驗(yàn)函數(shù),對所述組件的代碼段進(jìn)行校驗(yàn)包括以下步驟:調(diào)用代碼校驗(yàn)函數(shù),讀取所述組件的文件路徑,并按照內(nèi)存對齊的方式將所述組件的原始代碼段加載到內(nèi)存中;根據(jù)預(yù)存的物理文件中的可執(zhí)行文件頭,修正所述組件的原始代碼段重定位信息;計算修正重定位信息后的所述原始代碼段的循環(huán)冗余碼校驗(yàn)值和所述游戲在內(nèi)存中正運(yùn)行的對應(yīng)組件代碼段的循環(huán)冗余碼校驗(yàn)值;判斷兩個循環(huán)冗余碼校驗(yàn)值是否一致;若一致,所述組件的代碼段校驗(yàn)通過,否則,所述組件的代碼段校驗(yàn)未通過。
[0007]其中,所述調(diào)用代碼校驗(yàn)函數(shù),對所述組件的代碼段進(jìn)行校驗(yàn)包括:調(diào)用代碼校驗(yàn)函數(shù),將所述組件的代碼段分成多個子代碼段,按照預(yù)定規(guī)則分別對至少部分所述子代碼段進(jìn)行校驗(yàn)。
[0008]其中,所述需要校驗(yàn)游戲的組件為多個。
[0009]其中,游戲啟動后,獲取需要校驗(yàn)的游戲的至少一個組件名稱包括:游戲啟動后,每隔預(yù)定時間獲取需要校驗(yàn)的游戲的至少一個組件名稱。
[0010]第二方面,提供一種游戲代碼校驗(yàn)方法,所述方法包括:游戲啟動后,客戶端獲取需要校驗(yàn)的游戲的至少一個組件名稱,所述組件為所述游戲下的功能組件;調(diào)用代碼校驗(yàn)函數(shù),對所述組件的代碼段進(jìn)行校驗(yàn);若所述組件的代碼段校驗(yàn)通過,保持對應(yīng)的游戲玩家賬號正常游戲,若所述組件的代碼段校驗(yàn)未通過,將所述游戲玩家信息上報服務(wù)器;所述服務(wù)器接收所述游戲玩家信息,對所述游戲玩家進(jìn)行處理,以使所述游戲玩家不能正常進(jìn)行游戲。
[0011]第三方面,提供一種游戲客戶端,所述游戲客戶端包括獲取模塊、校驗(yàn)?zāi)K以及控制模塊,其中:所述獲取模塊用于在游戲啟動后,獲取需要校驗(yàn)的游戲的至少一個組件名稱,所述組件為所述游戲下的功能組件;所述校驗(yàn)?zāi)K用于調(diào)用代碼校驗(yàn)函數(shù),對所述組件的代碼段進(jìn)行校驗(yàn);所述控制模塊用于在所述組件的代碼段校驗(yàn)通過時,保持對應(yīng)的游戲玩家賬號正常游戲,在所述組件的代碼段校驗(yàn)未通過時,控制將所述游戲玩家信息上報服務(wù)器,以待處理。
[0012]其中,所述校驗(yàn)?zāi)K包括加載單元、修正單元、計算單元、判斷單元以及指示單元,其中:所述加載單元用于調(diào)用代碼校驗(yàn)函數(shù),讀取所述組件的文件路徑,并按照內(nèi)存對齊的方式將所述組件的原始代碼段加載到內(nèi)存中;所述修正單元用于根據(jù)預(yù)存的物理文件中的可執(zhí)行文件頭,修正所述組件的原始代碼段重定位信息;所述計算單元用于計算修正重定位信息后的所述原始代碼段的循環(huán)冗余碼校驗(yàn)值和所述游戲在內(nèi)存中正運(yùn)行的對應(yīng)組件代碼段的循環(huán)冗余碼校驗(yàn)值;所述判斷單元用于判斷所述計算單元計算得到的兩個循環(huán)冗余碼校驗(yàn)值是否一致;所述指示單元用于在所述判斷單元判斷到兩個循環(huán)冗余碼校驗(yàn)值一致時,指示所述組件的代碼段校驗(yàn)通過,否則,指示所述組件的代碼段校驗(yàn)未通過。
[0013]其中,所述校驗(yàn)?zāi)K通過調(diào)用代碼校驗(yàn)函數(shù),將所述組件的代碼段分成多個子代碼段,按照預(yù)定規(guī)則分別對至少部分所述子代碼段進(jìn)行校驗(yàn)。
[0014]其中,所述需要校驗(yàn)游戲的組件為多個。
[0015]其中,所述獲取模塊在游戲啟動后,每隔預(yù)定時間獲取需要校驗(yàn)的游戲的至少一個組件名稱。
[0016]第四方面,提供一種游戲系統(tǒng),所述游戲系統(tǒng)包括游戲客戶端以及服務(wù)器,其中,所述客戶端包括獲取模塊、校驗(yàn)?zāi)K以及控制模塊,其中:所述獲取模塊用于在游戲啟動后,獲取需要校驗(yàn)的游戲的至少一個組件名稱,所述組件為所述游戲下的功能組件;所述校驗(yàn)?zāi)K用于調(diào)用代碼校驗(yàn)函數(shù),對所述組件的代碼段進(jìn)行校驗(yàn);所述控制模塊用于在所述組件的代碼段校驗(yàn)通過時,保持對應(yīng)的游戲玩家賬號正常游戲,在所述組件的代碼段校驗(yàn)未通過時,控制將所述游戲玩家信息上報服務(wù)器;所述服務(wù)器包括接收模塊和處理模塊,其中:所述接收模塊用于接收所述游戲玩家信息;所述處理模塊用于根據(jù)所述游戲玩家信息對所述游戲玩家進(jìn)行處理,以使所述游戲玩家不能正常進(jìn)行游戲。
[0017]本發(fā)明的有益效果是:區(qū)別于現(xiàn)有技術(shù)的情況,本發(fā)明通過游戲啟動后,客戶端獲取需要校驗(yàn)的游戲的至少一個組件名稱,調(diào)用代碼校驗(yàn)函數(shù),對組件的代碼段進(jìn)行校驗(yàn),若組件的代碼段校驗(yàn)通過,保持對應(yīng)的游戲玩家賬號正常游戲,否則,將所述游戲玩家信息上報服務(wù)器,以待處理。通過這樣的方式,能夠通過代碼校驗(yàn)的方式,來校驗(yàn)游戲組件的代碼是否被修改,在游戲組件的代碼校驗(yàn)沒有通過時,即通過服務(wù)器對游戲玩家進(jìn)行處理。從而能夠有效的防止修改代碼類游戲外掛軟件,提高游戲玩家的游戲體驗(yàn)和保證游戲運(yùn)營公司的正常收入。
【附圖說明】
[0018]圖1是本發(fā)明實(shí)施例提供的一種游戲代碼校驗(yàn)方法的流程圖;
[0019]圖2是本發(fā)明實(shí)施例提供的調(diào)用代碼校驗(yàn)函數(shù),對組件的代碼段進(jìn)行校驗(yàn)的流程圖;
[0020]圖3是本發(fā)明實(shí)施例提供的另一種游戲代碼校驗(yàn)方法的流程圖;
[0021]圖4是本發(fā)明實(shí)施例提供的一種游戲客戶端的結(jié)構(gòu)示意圖;
[0022]圖5是本發(fā)明實(shí)施例提供的游戲客戶端的校驗(yàn)?zāi)K的結(jié)構(gòu)示意圖;
[0023]圖6是本發(fā)明實(shí)施例提供的一種游戲系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0024]首先,介紹一下本發(fā)明的應(yīng)用場景和實(shí)際需求。
[0025]網(wǎng)絡(luò)游戲,英文名稱為Online Game,又稱“在線游戲”,簡稱“網(wǎng)游”。指以互聯(lián)網(wǎng)為傳輸媒介,以游戲運(yùn)營商服務(wù)器和用戶計算機(jī)為處理終端,以游戲客戶端軟件為信息交互窗口的旨在實(shí)現(xiàn)娛樂、休閑、交流和取得虛擬成就的具有可持續(xù)性的個體性多人在線游戲。
[0026]網(wǎng)絡(luò)游戲一般采用C/S結(jié)構(gòu),客戶端負(fù)責(zé)繪制游戲世界的實(shí)時畫面,服務(wù)器端則負(fù)責(zé)響應(yīng)所有客戶端的連接請求和游戲邏輯處理,并控制所有客戶端的畫面繪制,客戶端與服務(wù)器通過網(wǎng)絡(luò)數(shù)據(jù)包交互完成每一步游戲邏輯。
[0027]本發(fā)明的是在上述系統(tǒng)架構(gòu)中實(shí)現(xiàn)的。
[0028]現(xiàn)有的網(wǎng)絡(luò)游戲中,出現(xiàn)很多游戲外掛軟件,所謂外掛是指利用電腦技術(shù)針對一個或多個網(wǎng)絡(luò)游戲,通過改變游戲軟件的部分程序制作而成的作弊程序。外掛軟件給部分玩家?guī)泶碳づc興奮之后,也破壞了游戲規(guī)則,這類的外掛已經(jīng)嚴(yán)重影響了游戲的公平性,致使其他玩家無法與使用外掛的玩家進(jìn)行抗衡,于是越來越多的玩家離開了游戲,網(wǎng)絡(luò)游戲的運(yùn)營商也逐步喪失了市場。因此外掛軟件損害了玩家的利益也損害了運(yùn)營商的利益,從某種程度上說也破壞了網(wǎng)絡(luò)經(jīng)濟(jì)的健康發(fā)展。
[0029]本發(fā)明即是提供一種游戲代碼校驗(yàn)方法,通過在游戲啟動后,獲取需要校驗(yàn)的游戲的至少一個組件名稱,調(diào)用代碼校驗(yàn)函數(shù),對組件的代碼段進(jìn)行校驗(yàn),若組件的代碼段校驗(yàn)通過,保持對應(yīng)的游戲玩家賬號正常游戲,否則,將所述游戲玩家信息上報服務(wù)器,以待處理。通過這樣的方式,能夠通過代碼校驗(yàn)的方式,來校驗(yàn)游戲組件的代碼是否被修改,在游戲組件的代碼校驗(yàn)沒有通過時,即通過服務(wù)器對游戲玩家進(jìn)行處理。從而能夠有效的防止修改代碼類游戲外掛軟件,提高游戲玩家的游戲體驗(yàn)和保證游戲運(yùn)營公司的正常收入。
[0030]以下結(jié)合附圖和實(shí)施方式對本發(fā)明進(jìn)行詳細(xì)說明。
[0031]請參閱圖1,圖1是本發(fā)明實(shí)施例提供的一種游戲代碼校驗(yàn)方法的流程圖,本實(shí)施例以游戲客戶端作為執(zhí)行主體來進(jìn)行描述,如圖所示,本實(shí)施例的游戲代碼校驗(yàn)方法包括以下步驟:
[0032]S10:游戲啟動后,獲取需要校驗(yàn)的游戲的至少一個組件名稱。
[0033]這里組件是指實(shí)現(xiàn)游戲特定功能的功能組