尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️
一、簡介
不得不說,隨著時代的發展,遊戲產業在近幾年的互聯網潮流中越來越扮演者重要的地位,與之而來的不僅有網路遊戲公司的春天,還有遊戲灰色產業的暗流湧動。在遊戲產業的發展中,誕生了一大批所謂的「外x掛」開發人員,他們不斷的利用遊戲的漏洞,在違法牟利的同時,也促進了遊戲安全行業的進步。
同時,在遊戲安全的對抗中,誕生了以下幾種技術以防止遊戲作弊的發生:
⒈數據檢測:對基礎的遊戲數據進行校驗,例如坐標是否違規越界地圖(坐標瞬移功能),人物短時間位移距離是否過大(人物加速功能)等等
⒉CRC檢測:基於遊戲程序代碼的檢驗,例如將人物移動中判斷障礙物的je條件跳轉修改為jmp強制跳轉(人物穿牆功能)等等
⒊封包檢測:將遊戲數據封包進行校驗,防止利用封包漏洞做到違規操作,例如之前的穿X火線強登(可以登錄任意帳號)等等
⒋機器檢測:現在鵝廠 安全組好像換人了 ,遊戲機器碼封的都挺狠,一封就十年,不過道高一尺,魔高一丈,目前依然不夠完善,很多朋友還是可以Pass
⒌Call檢測:非法調用Call導致校驗值非法,例如攻擊Call的嚴格校驗(角色扮演遊戲自動打怪腳本都是調用Call的)等等
⒍堆棧檢測:該檢測歸於調用Call過程中產生的問題
⒎文件檢測:對於遊戲本地文件的檢測,例如之前穿X火線幾年前風靡一時的REZ文件(快刀秒殺,穿牆,遁地,飛天)等等
⒏模塊檢測:很多外x掛採用「注入」的形式,所以模塊檢測在遊戲安全對抗中也扮演著極其重要的作用
⒐特徵檢測:這個主要檢測典型的使用「易語言」開發的程序,或者部分外x掛市場比較大的毒瘤程序,或者菜單繪制(imgui繪制)等等
⒑調試檢測:針對調試器和調試行為的檢測,對Ollydbg,CheatEngine等調試器特徵和調試行為的檢測等。
⒒遊戲保護:主要是利用R3各種反調試技術以及驅動層的HOOK等技術做到的遊戲保護,例如鵝廠的TP等等
可能還有一些我暫時還沒想到的,哥哥們可以在下方補充~
二、步入今天的正題—CRC檢測
首先,我們今天要講的是遊戲的CRC檢測,所以為了能讓下面的內容讓大家理解,我們先來準備一下CRC檢測的基礎知識吧:
⒈百度百科給我們CRC的解釋
CRC即循環冗餘校驗碼(Cyclic Redundancy Check):是數據通信領域中最常用的一種查錯校驗碼,其特徵是信息字段和校驗字段的長度可以任意選定。循環冗餘檢查(CRC)是一種數據傳輸檢錯功能,對數據進行多項式計算,並將得到的結果附在幀的後面,接收設備也執行類似的算法,以保證數據傳輸的正確性和完整性。
來源:https://baike.baidu.com/item/crc%E6%A0%A1%E9%AA%8C
⒉維基百科給我們CRC的解釋
循環冗餘校驗(英語:Cyclic redundancy check,通稱「CRC」)是一種根據網路數據包或計算機文件等數據產生簡短固定位數校驗碼的一種散列函數,主要用來檢測或校驗數據傳輸或者保存後可能出現的錯誤。生成的數字在傳輸或者存儲之前計算出來並且附加到數據後面,然後接收方進行檢驗確定數據是否發生變化。一般來說,循環冗餘校驗的值都是32位的整數。由於本函數易於用二進制的計算機硬件使用、容易進行數學分析並且尤其善於檢測傳輸通道干擾引起的錯誤,因此獲得廣泛應用。此方法是由W. Wesley Peterson於1961年發表[1]。
來源:https://zh.wikipedia.org/wiki/%E5%BE%AA%E7%92%B0%E5%86%97%E9%A4%98%E6%A0%A1%E9%A9%97
我們總結一下上面的百科解釋:CRC是一種校驗算法並且該算法被廣泛應用於文件,數據等的校驗。
不過好像對於逆向來說還是有些模糊,那麼現在就讓我們打開看雪論壇發布的《加密與解密(第四版)》第279頁,看一下其中的解釋:
通過翻閱書籍,我們發現實際上CRC算法有很多種,而我們運用在軟件加密中的CRC算法為CRC32算法。哇,這本書,兄弟萌,你們看,這本書,簡直就是逆向界的聖經啊,別猶豫了!買他!書本有價!知識無價!哈哈,開個玩笑,在這里對所有參與《加密與解密》書籍工作的朋友致敬!
三、手寫一個CRC檢測
參考《加密與解密》書籍,我們便寫如下代碼,做到我們的CRC檢測:
首先,為了方便我們進行學習,我們將CRC算法運用於自己身上,檢驗自身代碼是否被修改,整體性代碼如下:
精彩推薦