游戲才剛上線沒多久,就遭遇了眾多游戲工作室一波接一波的外掛洗禮。游戲工作室很喜歡新游戲,因?yàn)樾掠螒驔]有太多對(duì)抗外掛的手段和技術(shù),漏洞也較多,而且新游戲會(huì)不斷燒錢導(dǎo)量,游戲工作室也借機(jī)找到了大量的客戶。
在經(jīng)歷了一番實(shí)戰(zhàn),或多或少總結(jié)了一些經(jīng)驗(yàn)和技巧,這里和大家做個(gè)分享。文章分別從常見外掛對(duì)抗、安全日志對(duì)抗、安全預(yù)警對(duì)抗、策劃層面對(duì)抗、其他技術(shù)對(duì)抗探討網(wǎng)絡(luò)游戲外掛的對(duì)抗措施。
常見外掛對(duì)抗
這里列舉下網(wǎng)絡(luò)游戲影響較大的3類外掛,分別做說明:
1)產(chǎn)生經(jīng)濟(jì)利益的
a. 利用游戲漏洞獲拳濟(jì)利益
游戲漏洞,這是最常見且最致命的外掛了。盡管做了足夠多的代碼review、大量的測試,還是無法完全避免漏洞的出現(xiàn)。
對(duì)付這種外掛,比較常用的對(duì)抗策略是:
1、玩家收益預(yù)警,高出預(yù)估值的收益做預(yù)警
2、安全日志的記錄,遇到玩家作弊,能快速定位問題,熱修復(fù)
3、根據(jù)玩家舉報(bào),查看被舉報(bào)玩家數(shù)據(jù)及日志。(這個(gè)看似沒用,實(shí)際效果顯著。游戲中的獲利最終要轉(zhuǎn)化成現(xiàn)金,這樣他們就要給玩家推銷)
b. 利用運(yùn)營弱點(diǎn)獲拳濟(jì)利益
游戲?yàn)榱嗽黾恿舸,某些嘲必然?shí)打?qū)嵔o玩家送福利。工作室就利用這些嘲反復(fù)刷獲益。
對(duì)付這種外掛,比較常見的對(duì)抗策略是:
1、劃分新手區(qū),高等級(jí)玩家無法到新手區(qū)
2、限制沒充值的,且剛注冊不久的玩家
3、限制領(lǐng)獎(jiǎng)次數(shù)(這是廣義的,除了游戲中明確每人只能領(lǐng)幾次,還包括內(nèi)定限制)
2)減少重復(fù)勞動(dòng)的
游戲?yàn)榱嗽黾油婕业脑诰時(shí)長,有很多重復(fù)性的勞動(dòng),比如任務(wù)打怪200只、收集道具50個(gè)。像這些,外掛可以幫玩家自動(dòng)打怪,自動(dòng)收集道具,自動(dòng)交任務(wù),自動(dòng)接任務(wù),然后再重復(fù)這個(gè)過程。
對(duì)付這種外掛,比較常見的對(duì)抗策略是:
1、適當(dāng)增加內(nèi)掛,即游戲內(nèi)置的自動(dòng)掛機(jī)
2、增加此類任務(wù)的隨機(jī)性,變換任務(wù)數(shù)量、嘲
3、隨機(jī)增加一些確認(rèn)對(duì)話框,如驗(yàn)證碼
3)影響游戲平衡的
這種外掛,在競技類游戲較為常見,如CF透視外掛、CF自動(dòng)瞄準(zhǔn)、LOL野怪計(jì)時(shí)、LOL技能閃避、王者榮耀透視外掛。像這些外掛,影響了游戲平衡。
對(duì)付這種外掛,比較常見的對(duì)抗策略是:
1、加強(qiáng)客戶端對(duì)外掛的檢測
2、根據(jù)外掛盈利點(diǎn)優(yōu)化游戲,如LOL增加了野怪刷新提示
3、內(nèi)存數(shù)據(jù)加密 (自定義的安全類型,用來代替語言原生的int、string等類型進(jìn)行數(shù)據(jù)存儲(chǔ),還可重載運(yùn)算符。這種可以有效對(duì)抗內(nèi)存修改器)
4、客戶端加殼(增加反編譯的成本,減少游戲被反編譯的可能性)
5、協(xié)議加密(增加修改協(xié)議的成本)
安全日志對(duì)抗
安全日志有別于游戲日志,是關(guān)系到游戲經(jīng)濟(jì)、游戲公平的玩家行為日志。
為什么要有安全日志?
你知道一個(gè)玩家有問題,但沒有日志支撐,你不知道他怎么獲利的,是否真的不符游戲規(guī)定。另外,還可以根據(jù)這個(gè)玩家的特征,找到其他作弊玩家。
安全日志采集那些數(shù)據(jù):
根據(jù)玩家的獲利點(diǎn):
1、游戲幣:游戲幣的獲得與使用,需要記錄理由、增量、總量、時(shí)間
2、道具:道具的獲得與使用,需要記錄理由、增量、總量、時(shí)間
3、技能:比如技能釋放次數(shù)、技能釋放的最大范圍,技能命中目標(biāo)總數(shù)、單個(gè)技能命中目標(biāo)最大數(shù)、單個(gè)技能的獲利值、技能消耗的能量總數(shù)、技能的最大傷害、技能的總傷害
4、怪物:怪物的產(chǎn)出數(shù)量、被擊敗數(shù)量、受創(chuàng)值、受創(chuàng)次數(shù)、初始地圖位置、被擊敗位置
5、玩法:每個(gè)玩法的情況,包括初始游戲幣、結(jié)束時(shí)間、分?jǐn)?shù)、獲得游戲幣,獲得道具、對(duì)局時(shí)長、客戶端對(duì)局時(shí)長
6、交易:交易雙方的信息、交易道具、交易游戲幣、時(shí)間
當(dāng)然,安全日志不止這些,需要根據(jù)不同游戲,制定不同的安全日志。
安全預(yù)警對(duì)抗
這是在安全日志的基礎(chǔ)上做的預(yù)警,比如剛注冊當(dāng)天沒充值就獲利1億游戲幣,這種玩家就需要預(yù)警了。預(yù)警的目的在于查找可能作弊的玩家,提醒運(yùn)營人員發(fā)現(xiàn)作弊玩家,就好像美劇《疑犯追蹤》。
安全預(yù)警的手段主要有兩種:
1、線上預(yù)警:線上即時(shí)預(yù)警,對(duì)一些對(duì)局、或產(chǎn)出數(shù)值嚴(yán)重超過預(yù)警值的要預(yù)警,這種是線上統(tǒng)計(jì),在玩家上報(bào)分?jǐn)?shù)及發(fā)獎(jiǎng)時(shí)hook處理
2、離線預(yù)警:作弊玩家收益可能不是一兩局比賽就得到了,可能要累計(jì)一段時(shí)間反復(fù)刷獲得大量收益。所以要離線分析,通過分析安全日志,定制一些規(guī)則找到這些玩家。
根據(jù)作弊玩家的行為:
1、貧民富翁:剛注冊當(dāng)天沒充值就獲利巨額游戲幣
2、一夜暴富:一天獲得的游戲幣數(shù)額超過同等玩家N倍,且沒有充值、沒有交易
3、明目張膽:對(duì)于排行榜前N名的玩家重點(diǎn)關(guān)注
4、百戰(zhàn)百勝:沒有玩家是百戰(zhàn)百勝的,屢次都是前幾名,這樣的玩家多數(shù)是有問題的
5、雨后春筍:剛放出去的功能還沒有受到實(shí)戰(zhàn)考驗(yàn),出錯(cuò)的可能性很大,要監(jiān)控產(chǎn)出,針對(duì)一個(gè)功能設(shè)置當(dāng)日產(chǎn)出預(yù)警值
當(dāng)然,安全日志不止這些,需要根據(jù)不同游戲,制定不同的安全日志。
帳號(hào)封禁對(duì)抗
如果確定了玩家行為嚴(yán)重違反了游戲規(guī)則,就要考慮封禁玩家。封禁主要的好處是,將作弊太猖狂的玩家踢出眾人視野。同時(shí)封禁的存在,相當(dāng)于告訴玩家別使用外掛。除了這兩個(gè),還可以有效對(duì)抗游戲工作室轉(zhuǎn)移資產(chǎn),提高作弊成本。有一大部分工作室是靠售賣游戲貨幣、道具、高級(jí)游戲賬號(hào)為生,而經(jīng)營工作室又需要大量的成本,購置機(jī)器、網(wǎng)絡(luò)、員工、游戲賬號(hào)等,如果大量賬號(hào)被封,可能會(huì)導(dǎo)致工作室周轉(zhuǎn)遇到問題。
封禁類別:
1、限制登錄:限制玩家無法登錄游戲,也就是封號(hào)。短時(shí)間封禁、 封禁
2、限制玩法:限制玩家獲得收益、限制分?jǐn)?shù)上榜
3、限制聊天:屏蔽不良信息
封禁的難點(diǎn)是,怎么篩選出有作弊的玩家,避免誤傷正常玩家:
1、剛注冊,就有作弊行為,是封禁的重點(diǎn),特別是收益巨大的
2、長時(shí)間在線的,每天日活躍達(dá)到15小時(shí)以上,甚至23小時(shí)以上
3、充值較大的玩家,就算使用過作弊器,影響不大的,也可以忽略。(畢竟是衣食父母,適當(dāng)給于提示或警告)
4、同個(gè)設(shè)備號(hào),或同個(gè)ip的多個(gè)玩家?guī)ぬ?hào)都有作弊數(shù)據(jù)
5、游戲日志、或安全日志有較多的作弊日志
策劃層面對(duì)抗
1、增加交易成本,限制玩家交易
增加交易成本是很有效的,工作室通常就利用多個(gè)小號(hào)刷,再匯總到一起售賣。限制的方法很多,如等級(jí)開放(30級(jí)開啟),或VIP2開放,需充值多少錢可達(dá)到;蚪灰卓凼掷m(xù)費(fèi)。
2、玩法(或功能)設(shè)定數(shù)值上限
每一關(guān)的最大分?jǐn)?shù),每個(gè)技能的最大傷害等,就算屬性過多或其他理由,也要計(jì)算好這個(gè)上限,做出限制。不要單純?yōu)榱梭w驗(yàn)的東西,太大放寬這個(gè)限制。
3、玩法(或交易)次數(shù)限制
玩法如每人每天只能玩3次,交易如VIP2每天可交易2個(gè)道具、VIP3每天可交易5個(gè)道具。
4、限制較大收益路徑,必須有時(shí)間成本
工作室經(jīng)常都會(huì)研究出最快獲利的路徑,定制外掛獲利。那么這個(gè)收益路徑,必須要有時(shí)間成本,比如雖然是概率出,但還是限制了一天最多一次。
5、降低重復(fù)性任務(wù)所獲得收益
很多外掛是通過長時(shí)間刷來累計(jì)收益,正常玩家不會(huì)長時(shí)間重復(fù)無腦勞動(dòng)。對(duì)于同一種任務(wù)的收益,應(yīng)該隨時(shí)間增加而減少。
6、適當(dāng)提供自動(dòng)掛機(jī)功能
游戲中很多任務(wù)是重復(fù)性的,可以適當(dāng)提供自動(dòng)掛機(jī)。
其他技術(shù)對(duì)抗
1、客戶端加殼(增加反編譯的成本,而且,不同版本加殼做一點(diǎn)變化)
2、通信加密(增加修改協(xié)議的成本,而且,密匙要不定期更新;蛘撸艹卓勺龀蓜(dòng)態(tài)的,比如自增1)
3、內(nèi)存數(shù)據(jù)加密 (自定義的安全類型,用來代替語言原生的int、string等類型進(jìn)行數(shù)據(jù)存儲(chǔ),還可重載運(yùn)算符。這種可以有效對(duì)抗內(nèi)存修改器)
4、協(xié)議通信頻率限制(限制同一個(gè)協(xié)議兩次請求的間隔)
5、防加速(客戶端連接服務(wù)器后,服務(wù)器把當(dāng)前時(shí)間發(fā)給客戶端,以后客戶端發(fā)協(xié)議都加上自己算出的服務(wù)器時(shí)間,服務(wù)器檢測到這個(gè)時(shí)間超過了實(shí)際時(shí)間,就認(rèn)為加速)
6、頂號(hào)、重復(fù)登錄處理(必須將上次登錄踢出,并且數(shù)據(jù)保存完畢后,才允許本次登錄)
7、關(guān)鍵數(shù)據(jù)服務(wù)器校驗(yàn)(如技能CD、移動(dòng)速度及位置)
8、定期上報(bào)客戶端核心資源或者配置文件md5,服務(wù)端做校驗(yàn)
9、客戶端配置文件、資源文件加密
10、協(xié)議過期(避免截韌戶端發(fā)包,重復(fù)發(fā)送)
最后語
寫到最后發(fā)現(xiàn),這是我第一篇不怎么講技術(shù)的文章,我很少談及游戲設(shè)計(jì)、開發(fā)經(jīng)驗(yàn)、職業(yè)規(guī)劃等,可能以后會(huì)花點(diǎn)精力搞下。畢竟技術(shù)只是幫你開啟新世界的大門,而過程和結(jié)局怎樣,還要靠你怎么運(yùn)用它。
投稿郵箱:chuanbeiol@163.com 詳情請?jiān)L問川北在線:http://sanmuled.cn/