搜尋
首頁常見問題遊戲開發防作弊以及原理簡述

前言

遊戲開發防作弊以及原理簡述

#如何防作弊在遊戲開發中還是佔蠻重的比例的,這也涉及到遊戲獲利的問題,如果不做防作弊措施,或許我們開發出來的app當前上線或許第二天就出破解免費版了,這個事情我親身經歷過,當然這是基於app做的比較好被外掛公司盯上了,一度很火紅的吃雞遊戲端遊版本其實外掛非常猖獗,這也是因為沒有做防外掛,如何防作弊在求職者求職的時候也會經常被問到,當然我們能想到最簡單的方案就是不要信任客戶端任何數據,以伺服器資料校驗為準,當然這種方案在一些客戶端伺服器互動比較少的情況是可以這樣設計的,假設FPS,我們每次射擊造成的傷害,一幀裡面會射擊好多次,不可能每次都去向伺服器校驗吧,交互太頻繁了,體驗也很差,但如果不校驗的話,客戶端就是修改武器屬性值,這就是客戶端作弊了,如何解決這樣的問題,下文會介紹到防作弊的思路。

客戶端如何作弊

手機端

我在當初手遊剛起步的時候,flappy bird想必玩遊戲的人都知道,是一款非常虐的手遊,當時也非常火,朋友圈都在曬分數,後來我知道用一款《八門神器》的app能夠作弊修改分數,然後修改成很高的分數曬在朋友圈就顯得自己「很屌」,滿足一下自己的虛榮心,原理就是修改分數內存值來達到作弊的效果。

PC端

PC上修改記憶體也有對應的軟體,例如Cheat Engine,就類似手機上的八門神器,如何應用見下圖:

遊戲開發防作弊以及原理簡述

如何防作弊

Unity開發推薦一款外掛程式Anti-Cheat Toolkit,自行上Asset Store下載。具體原理就是我們透過資料混淆,UI上顯示的值其實是我們經過計算出來的值,所以記憶體修改器根據UI上顯示出來的值去搜記憶體位址是搜不到的。

防作弊原理

private int curATK;
private int curAtkKey;
public int CurATK {
    get {
        return curATK ^ curAtkKey;
    }
    set {
        curAtkKey = Random.Range(0, 0xffff);
        curATK = value^curAtkKey;
    }
}

分析:^運算是異或運算,需要一點二進位的知識,異或運算是相同為0,不同為1,下面舉例:3 ^ 4=7,3對應的二進位是11,4對應的二進位是100,異或運算之後的結果二進位是111對應的十進位就是7,下圖程式驗證一下:

遊戲開發防作弊以及原理簡述

分析

根據上面的程式你是否真真明白是如何防作弊的呢,num是我們輸入的值,例如玩家目前的金幣數量是4,但我們UI上的顯示並不是直接Coin.Text = num.ToString(),這樣玩家搜到num的內存就很容易修改了,就作弊了,我們UI上的顯示值是hiddenValue^cryptoKey的值。玩家就算搜出num的數值並修改了,對我們顯示金幣真實的數量並沒有影響。

分析插件Anti-Cheat Toolkit

我們Unity開發估計很多人都會用這個插件,他是如何實現資料加密的呢,我們看下手冊就會知道它是將Unity的基本資料類型都封裝了一個對應的資料類型,例如:int->ObscuredInt,Float->ObscuredFloat,string->ObscuredString等。拿ObscuredInt舉例:

遊戲開發防作弊以及原理簡述會發現它封裝了一個跟Int對應的結構體,並且有一個混淆因子cryptoKey=444444,我們再看string類型的封裝的一個類別ObscuredString,它的混淆因子是string cryptoKey=“4441”,如果我們用這個插件啥都不修改,那如果我是黑客,我知道當前某遊戲是Unity開發的並且數據做了防外掛處理,那麼我如何破解防外掛,我肯定首先就想到的就是這個插件,並且知道這些混淆因子,那麼我就相對容易能破解出來,所以如何再進一步防外掛,就必須要對插件的混合因子再做一個混淆或者修改就顯得很重要。

以上是遊戲開發防作弊以及原理簡述的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:CSDN。如有侵權,請聯絡admin@php.cn刪除

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器