游戏外挂的不同种类
- 模擬鍵盤、鼠標(biāo)(一般使用 SendInput)
這種常見的就是采用按鍵精靈,對于一些任務(wù)系統(tǒng),或者采集系統(tǒng),通過按鍵精靈來錄入操作,模擬人手操作,加快收集過程,對于這種的就需要服務(wù)器進(jìn)行分析了,不過影響不是很大,根據(jù)影響效果來看是否處理
- 修改數(shù)據(jù)包,破解協(xié)議
協(xié)議破解是一種常見的方式,主要是針對通信內(nèi)容進(jìn)行破解,對于采用hash加密的協(xié)議來說,會(huì)被彩虹表暴力破解。對于采用對稱加密的算法來說,如果密鑰被截獲或者從文件破解,都會(huì)觸發(fā)這種解密行為。若是采用非對稱加密,對服務(wù)器的性能損耗太嚴(yán)重了,不值得,所以好的方式還自定義一種動(dòng)態(tài)密鑰,加大被破解的難度。
- 數(shù)據(jù)包重發(fā)、篡改
對于有些協(xié)議加密比較嚴(yán)謹(jǐn)?shù)捻?xiàng)目,協(xié)議數(shù)據(jù)破解會(huì)很難,作弊者破解不了,就重發(fā)或者篡改向服務(wù)器發(fā)的包,比如充值包,或者購買道具包,他們會(huì)采用WPE工具截取到發(fā)送的包之后,再次重發(fā),如果服務(wù)器沒有做好唯一認(rèn)證或者邏輯嚴(yán)格檢查,就會(huì)被這種重發(fā)包給攻擊,造成大量道具的產(chǎn)出。 發(fā)放技能這種包也可以被重發(fā),這樣可以無限放技能。
- 加速
加快游戲的時(shí)間或者幀率,讓人物快速移動(dòng)、快進(jìn)技能CD等,或者遇到一些操作比較難的關(guān)卡,減慢游戲節(jié)奏,減低操作難度,從而影響游戲的幀率,加速過關(guān),減速躲避技能等。
對于這種行為,一般是客戶端和服務(wù)器做好心跳檢測,檢查客戶端時(shí)間,防止篡改,另一方面做好客戶端輸入數(shù)據(jù)檢查,做到驗(yàn)證數(shù)據(jù)以服務(wù)為準(zhǔn)。
- 修改本地內(nèi)存(改數(shù)據(jù)、攔截 api)
修改內(nèi)存數(shù)據(jù),這個(gè)在以戰(zhàn)斗邏輯主要客戶端計(jì)算的游戲中,經(jīng)常會(huì)出現(xiàn)。這類外掛通過分析游戲所使用的內(nèi)存,找到內(nèi)存中的變量去分析猜測變量是代表的什么含義。然后再去修改這個(gè)值,令玩家控制的角色戰(zhàn)斗力爆棚,比如技能CD直接修改為0,或者攻擊值修改變大等。這個(gè)一方面客戶端要對內(nèi)存數(shù)據(jù)做好加密,另一方面服務(wù)器得做好驗(yàn)證,不能以客戶端為準(zhǔn),具體形式后面再講。
- 射擊類
FPS類游戲面臨的兩大外掛問題:透視和自瞄。這也是多數(shù)FPS游戲所遇到的問題,比如守望先鋒和穿越火線等。
透視分為方框透視和人物透視,具體的方框透視,我沒有仔細(xì)研究過,大概也是通過坐標(biāo)系來定位的,而坐標(biāo)系的數(shù)據(jù)也是通過內(nèi)存數(shù)據(jù)讀取出來的,所以說若是內(nèi)存數(shù)據(jù)沒有保護(hù)好,這個(gè)也是會(huì)被搞的。而人物透視就是采用劫持系統(tǒng)渲染的邏輯來實(shí)現(xiàn)的,簡單粗暴。
自瞄是方框透視的附帶功能,但是比方框透視更難以檢測。因?yàn)樽悦閺脑砩蟻碚f僅僅是模擬了鼠標(biāo)的移動(dòng),并沒有實(shí)際對游戲進(jìn)行干涉。所以這種方式想要驗(yàn)證,只能通過服務(wù)器來分析是否是輸入設(shè)備的操作來處理了,相對比較困難。
總結(jié)