网页游戏防外挂策略。
目前市面上的外掛主要就三種模式:1、按鍵模擬掛。2、按鍵封包結(jié)合。3、全脫。
一:針對按鍵模擬的。
1、一般按鍵模擬的輔助都是先通過找網(wǎng)頁中的窗口句柄,來給其發(fā)送按鍵信息什么的。
對應(yīng)解決方法:在插入flash的embed或object標(biāo)簽中加入”wmode”屬性并設(shè)置為wmode=“transparent”或”opaque”,
這樣在查找flash中時,會找不到flash的窗口句柄。
2、按鍵一般都是通過找圖,文字來實(shí)現(xiàn)接下來需要做什么。
對應(yīng)解決方法:在設(shè)計游戲時,圖片可加些動態(tài)效果。
3、做游戲時,盡量不要做成那種無腦流的,尤其是對話框,最好是需要玩家自己去點(diǎn)擊,而不是自動彈出對話框。
?
4、做按鍵的還是有一些高手的,可以在一臺電腦上多開很多個游戲(會做內(nèi)存優(yōu)化),這樣打怪打金效率就高了。
對應(yīng)解決方法:設(shè)置flash防多開。(網(wǎng)上有教程,不多說)
(不過對于按鍵研究的不多。上面那些說的也許只是片面的。)
?
二:按鍵封包結(jié)合。
1、一般為了快捷什么的。這類輔助都會通過封包買藥,賣裝備什么的。
對應(yīng)的解決方法:在游戲中加入動態(tài) 驗(yàn)證系統(tǒng)。并對封包信息進(jìn)行加密。
(如斬仙,他雖然對自己的封包進(jìn)行4個字節(jié)的加密,但是他的加密是固定的,說白了就是用他自己的crc16來進(jìn)行加密。其實(shí)可以通過異或倒推出他的key,這樣他的加密也就沒意義了。同樣的斬龍傳奇,他用的跟斬仙是同一個加密系統(tǒng),但是他多了個動態(tài)驗(yàn)證,相對于斬仙要做按鍵結(jié)合封包的游戲就會很麻煩。因?yàn)榧词鼓愕雇瞥鰇ey,還涉及一個動態(tài)驗(yàn)證系統(tǒng),你隨意發(fā)包,可以讓他掉線。)
2、對于上述防半封包的方法呢,也有一種對策,就是劫持他的發(fā)包,對游戲的發(fā)包進(jìn)行處理,然后再發(fā)送出去。
應(yīng)對方法:對于這種的話,好的技術(shù)防范基本沒有。不過游戲開發(fā)者可以在封包里下暗樁。這類輔助作者一般不會去研究他所有的發(fā)包的,可以在游戲里下個暗樁,來判斷用于是否劫持了發(fā)包。
三、全脫;
脫機(jī)的流程一般是先通過http獲得游戲登錄的參數(shù),然后按照游戲流程去發(fā)包什么的。
1、登錄參數(shù)獲得。
一般作者都是 通過post,get來獲得登錄的參數(shù),在這里進(jìn)行防范的話,可以從cookie著手。普通玩家登錄游戲的話,一般在網(wǎng)頁傳遞過程中,這個cookie數(shù)目的比較多的。而這類cookie數(shù)量一般就是那些必須的。就如QQ,他在登錄時,一般都會帶上你平常上的QQ,而這種通過post,get的不會發(fā)這些。由此來判斷是否是合法登錄。
2、全脫顧名思義,就是不借助于客戶端,自己構(gòu)建客戶端利用協(xié)議跟官服交互。也就是說他在運(yùn)行時是不需要加載資源的。那么開發(fā)者可以從資源這塊著手。下個暗樁,某個資源會記錄玩家的ip,玩家id的,服務(wù)器根據(jù)他來判斷玩家是否在線。不在線,還在哪邊發(fā)包,看作外掛處理。(后續(xù)處理自己看著辦,直接掉線,告訴外掛作者你有暗樁,不掉線,過個1、2天,封號,哈哈。)
3、對于全脫,作者最煩的就在于那個參數(shù)的算法那,參數(shù)最好要經(jīng)過多次計算,增加復(fù)雜度,不要弄一些固定的值,這樣對脫機(jī)輔助作者來說,他就是做了個復(fù)制,粘貼的事情。
4、在發(fā)包中,一些重要包的信息最好帶上玩家ID,時間和綜合后的一些加密等。
?
?
適合于所有。頁游之所有輔助比端游 要多,原因就在于頁游可以很容易的得到源碼。
所以呢,頁游公司應(yīng)該在保護(hù)源碼這塊入手防外掛。
源碼的保護(hù)呢,一般3種,加殼,混淆,加擾碼。
1、加殼
這個最沒用,因?yàn)閒lash的運(yùn)行機(jī)制里,都要先把他轉(zhuǎn)成FWS,來進(jìn)行加載,所以一般有能耐的,直接可通過內(nèi)存拿到脫殼后的swf,像doswf那些,都是可以搞定的。不要覺得內(nèi)存發(fā)行,只是水平不夠而已。
2、混淆
這個就不錯了。尤其是對于一些參數(shù)名稱的混淆,這個更有效果,讓作者即使解出了這個包,也不曉得這個包的意思,猜不透。不過混淆的話,還是可以去混淆的,只是看起來較麻煩點(diǎn)。解包還是能解,只是增加復(fù)雜度。
3、加擾碼
這個最好,一般做脫機(jī)輔助的,雖然可能是高手,但也只是在一方面把,對于flash的反編譯,肯定還是借助于工具的asv,碩思什么的。而如果你在swf加入大量的擾碼的話,對游戲運(yùn)行沒多少影響,但是會直接讓asv,碩思死掉。這樣,即使他得到了脫殼后的swf,也弄不到源碼,也就做不了輔助了。
個人意見。其實(shí)做到這里還是不夠的,因?yàn)槲彝ㄟ^虛擬機(jī)可以實(shí)現(xiàn)替換swf,讓你官方的swf加載我的swf,從而我可以對你的游戲進(jìn)行控制。應(yīng)對方法,對每個swf來個長度檢測啊什么的,來識別是否是你自己的swf。
?
這是在下的一點(diǎn)點(diǎn)見解。高手勿笑。
轉(zhuǎn)載于:https://www.cnblogs.com/as3dashu/p/4166919.html
總結(jié)
以上是生活随笔為你收集整理的网页游戏防外挂策略。的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我的计算机c盘计划,我的电脑C盘空间不够
- 下一篇: iOS load和initialize方