遊戲反外掛程式的一些建議和想法

2021-08-18 01:15:41 字數 1517 閱讀 1326

在程式設計中,通常使用8位,4位,2位或者1位記憶體來儲存數值。比如單機遊戲中,生命數用整數型變數儲存,使用記憶體修改工具多次掃瞄記憶體變動情況,即可較容易找到變數記憶體位址,修改或者鎖定相應的記憶體位址即可達到作弊的目的。

使用單變數儲存的方式很容易因數值變動,被快速定位記憶體位址。為避免這種情況,我們不妨用多變數組合儲存的方式。比如乙個變數原本為4位整數型變數,我們可以10個8位整數型變數採用求和的方式來表示。當需要修改這個組合變數的時候,採用隨機方式選取其中的3個變數,使用隨機數填充其中2個變數,採用求和的方式計算出第3個變數的值,使得這個求和值等於要修改的值,或者簡單加密一一對應對映成需要修改的值。

組合變數可使用多個子變數,多個隨機數值,多種計算方法的組合方式表示同乙個數值。甚至在讀取數值的時,可隨機修改子變數的隨機數值來迷惑對抗記憶體掃瞄。數值變動與同一記憶體位址數值變動不存在一一對應關係,這使得掃瞄變數記憶體位址將成為不可能。

我覺得現在好多遊戲的報告作弊功能並沒有發揮其應有的作用,反而成為了一種拖累。就拿絕地求生來說,玩家基數多,報告作弊行為跟著多,審核全部作弊行為成為不可能,只能是通過場次擊殺數,被舉報次數多等多一些疑似作弊行為的才會被處理,玩家舉報作弊行為的使用者體驗非常差,可以從兩個方面著手改善和提高這個使用者體驗:

1. 為報告作弊明顯程度分級

乙個非常明顯的例子,作弊玩家非常短的時間內穿牆團滅了乙個4人隊伍,這個作弊行為是非常明顯的,但是給予的舉報作弊介面是非常簡陋的,沒有表達出受害玩家對作弊行為的肯定程度。

作弊行為的肯定程度按百分比劃分,100%與10%的贊成要表達的肯定程度,是兩個完全不同的概念。現在的做法是將100%與10%的肯定程度都混在一起進行處理,玩家是可以給出這個肯定程度的,忽略這個肯定程度的區別,這明顯是不合理的。

2. 為報告作弊行為引入獎懲機制

現在是胡亂舉報沒有懲罰,導致了需要浪費精力來處理非常多的無效亂舉報,成功舉報也沒有獎勵,這就使得舉報作弊行為是混亂不堪的。解決辦法是找到並團結擁有識別作弊行為能力的諸多玩家,通過有效獎勵方式使得其積極成為識別作弊行為有力幫手,優先處理其高肯定程度作弊的報告,使得有效的作弊報告能得到及時審核處理。

怎麼找到擁有識別作弊行為能力的玩家呢?基於舉報作弊歷史的審核通過程度不同,根據經驗為其設定相應的信譽權值。信譽權值越高說明其舉報的作弊行為的資訊就越有價值,就可以獎勵回報他與反饋適時提高其信譽權值。信譽權值越低說明其舉報的作弊行為的資訊就越沒有價值,就可以忽略其舉報行為與反饋適時降低其信譽權值。

經常吃雞的高手和落地成盒的萌新,他們的識別作弊能力肯定是不一樣的。遊戲積分也體現出這個能力,遊戲積分兌換為相應的舉報能力積分,在報告的時候可以選擇是否消耗舉報能力積分來增加舉報的肯定性,根據報告的作弊肯定程度消耗相應的舉報能力積分,再根據作弊識別結果獎勵相應的舉報獎勵積分。

當選擇消耗舉報能力積分進行報告時,使得胡亂舉報會被白白消耗掉舉報能力積分,使得配合成功舉報會得到相應的獎勵,這會在很大程度上解決現在胡亂舉報的行為,可以極大提高玩家的有效作弊報告概率。

現在通過信譽權值,舉報能力積分和其報告的各作弊肯定程度通過審核的次數,概率等,使用較小的消耗,即可完成大概率是有效的作弊報告的篩選工作,再進行下優先順序安排,剩下的事情就是審核下這些大概率作弊報告即可。

關於 Redis 的一些新特性 使用建議和最佳實踐

redis從2009年誕生到現在已經走過將近10年,從最開始大家在討論nosql和傳統關聯式資料庫孰優孰劣,到現在大家談起分布式鎖,快取紛紛將redis作為其第一選擇,服務端面試中redis也作為一項必備能力,而如今redis 5.0已經發布,越來越多的新特性被加入,我完整的觀察到並參與了一項新的開...

關於 Redis 的一些新特性 使用建議和最佳實踐

從2009年誕生到現在已經走過將近10年,從最開始大家在討論nosql和傳統關聯式資料庫孰優孰劣,到現在大家談起分布式鎖,快取紛紛將redis作為其第一選擇,服務端面試中redis也作為一項必備能力,而如今redis 5.0已經發布,越來越多的新特性被加入,我完整的觀察到並參與了一項新的開源產品從走...

一些簡單的想法

我的關於pat甲級考試的總結的訪問量是其他文章訪問量的總和還要多。一是我這裡確實沒什麼乾貨 二是我這裡的內容可搜尋性不強,本身標題無傳播性 三是感覺大家對pat考試蠻重視的。但是,至少現在以我的親身經歷來講,如果只是考個乙級的話,企業應該是不看重的。其實去年十二月份的考試考得一般,今年三月份的成績反...