圖片來源: 

Riot

遊戲中的作弊行為不只破壞玩家的遊戲體驗,長期來說也傷害了遊戲的壽命,英雄聯盟遊戲開發商Riot公布了其部分遊戲防弊方法。軟體工程師Michael VanKuipers提到,他們實施了三道防弊的手段,預防、檢測與威嚇,多數遊戲工作室採用了後兩個方法,但Riot進一步提高作弊行為的進入障礙,在遊戲應用程式以加密與反程式碼分析技術,來阻止作弊程式開發。

Michael VanKuipers以前也是被遊戲工作室列在黑名單中的人,擁有十多年開發遊戲作弊程式的資歷,而今他在Riot防弊團隊工作,阻止他人在英雄聯盟中撒野。他表示,打擊作弊行為是一場軍備競賽,作弊行為的範圍以及複雜性,每年都不停的成長,他們公開的防弊措施只是其中一部份,有一些機密無法公開。

應用在英雄聯盟中的防弊措施主要有三個階段,預防、檢測與威嚇。檢測以及威嚇是多數遊戲工作室採用的策略,一般來說,他們會收集一些作弊的遊戲歷程資料,透過分析這些作弊行為特徵,來檢測異常行為,並將作弊者移出遊戲。不過,這個方法處在被動的位子,而且相對來說,這些作弊者的進入障礙也較低,玩家仍會接觸到這些作弊者。

整體而言,雖然檢測有效但並不理想,他們認為最好的方法是預防,提高進入障礙阻止作弊行為,當這個方法生效,也就代表著玩家不會接觸到作弊者。Michael VanKuipers提到,在英雄聯盟中遇到的作弊行為有兩種,主要是腳本作弊,以第三方程式插入遊戲客戶端,讀取客戶端使用的記憶體以及功能來完成其他困難或是不可能的任務,像是幫玩家躲避技能、縮放視野或是執行完美接技。

另一種則是機器人,這種通常只是一個第三方模擬器來模擬遊戲輸入,只能移動並被擊殺,有一些會進行一些隨機的行為,假裝自己是一般玩家,而機器人主要目地在於銷售遊戲帳號或是遊戲貨幣。

Michael VanKuipers認為,英雄聯盟在遊戲上做了良好的設計,本身就能防止一些作弊行為。在不需要的情況,遊戲就不會共享其他玩家的狀態,因此作弊者無法做到地圖全開,揭示地圖上所有玩家的位置的功能。伺服器也預設不相信客戶端來的資訊,因此客戶端也無法使用無敵模式或是中斷連結破解。他們還對網路通訊協定加入混淆機制,因此網路層級的機器人也很難開發。

另外,Michael VanKuipers還揭露了3個英雄聯盟已經採用的防弊技術。他提到,遊戲客戶端通常非常脆弱,因為可以被作弊者取得,並且使用除錯或是反組譯工具進行破解,找到需要使用的遊戲功能,並Hook這些重要功能,以獲取遊戲當前的狀態,像是透過Hook粒子特效或是法術繪製功能,就能取得法術效果的位置與方向,來幫助玩家避開技能。另外,作弊者還能Hook自己開發的DLL來提供進一步的作弊行為,像是進行攻擊或是移動角色。為此他們對遊戲程式碼進行加密,來阻止遊戲客戶端被竄改。

再來,作弊者可能會使用除錯器或是二進位檢測工具來逐步檢查程式碼的執行邏輯,他們在客戶端應用程式包括遊戲本身以及啟動載入程式,都謹慎的使用反除錯技術,來提高作弊者檢測可執行檔案的難度,以增加分析的複雜度。除此之外,他們也進一步保護記憶體中的遊戲資料,諸如血量或是魔力等數值,Michael VanKuipers表示,用簡單的技術就能讓作弊者獲取這些數值變得困難,他們變更每次數值儲存的記憶體位置,這樣會使得記憶體搜尋工具運作發生問題。

目前綜合以上措施,已經能夠有效的阻止作弊行為,但這些只是他們防弊工程的一部分,Michael VanKuipers提到,還有一些部分他們必須保密,以便未來對抗人工智慧機器人。

熱門新聞

Advertisement