標籤:http ar os sp bs as 時間 tt nbsp
目前市面上的外掛主要就三種模式:1、按鍵類比掛。2、按鍵封包結合。3、全脫。
一:針對按鍵類比的。
1、一般按鍵類比的輔助都是先通過找網頁中的視窗控制代碼,來給其發送按鍵資訊什麼的。
對應解決方案:在插入flash的embed或object標籤中加入”wmode”屬性並設定為wmode=“transparent”或”opaque”,
這樣在尋找flash中時,會找不到flash的視窗控制代碼。
2、按鍵一般都是通過找圖,文字來實現接下來需要做什麼。
對應解決方案:在設計遊戲時,圖片可加些動態效果。
3、做遊戲時,盡量不要做成那種無腦流的,尤其是對話方塊,最好是需要玩家自己去點擊,而不是自動彈出對話方塊。
4、做按鍵的還是有一些高手的,可以在一台電腦上多開很多個遊戲(會做記憶體最佳化),這樣打怪打金效率就高了。
對應解決方案:設定flash防多開。(網上有教程,不多說)
(不過對於按鍵研究的不多。上面那些說的也許只是片面的。)
二:按鍵封包結合。
1、一般為了快捷什麼的。這類輔助都會通過封包買藥,賣裝備什麼的。
對應的解決方案:在遊戲中加入動態 驗證系統。並對封包資訊進行加密。
(如斬仙,他雖然對自己的封包進行4個位元組的加密,但是他的加密是固定的,說白了就是用他自己的crc16來進行加密。其實可以通過異或反向推算出他的key,這樣他的加密也就沒意義了。同樣的斬龍傳奇,他用的跟斬仙是同一個加密系統,但是他多了個動態驗證,相對於斬仙要做按鍵結合封包的遊戲就會很麻煩。因為即使你反向推算出key,還涉及一個動態驗證系統,你隨意發包,可以讓他掉線。)
2、對於上述防半封包的方法呢,也有一種對策,就是劫持他的發包,對遊戲的發包進行處理,然後再發送出去。
應對方法:對於這種的話,好的技術防範基本沒有。不過遊戲開發人員可以在封包裡下暗樁。這類輔助作者一般不會去研究他所有的發包的,可以在遊戲裡下個暗樁,來判斷用於是否劫持了發包。
三、全脫;
離線的流程一般是先通過http獲得遊戲登入的參數,然後按照遊戲流程去發包什麼的。
1、登入參數獲得。
一般作者都是 通過post,get來獲得登入的參數,在這裡進行防範的話,可以從cookie著手。普通玩家登入遊戲的話,一般在網頁傳遞過程中,這個cookie數目的比較多的。而這類cookie數量一般就是那些必須的。就如QQ,他在登入時,一般都會帶上你平常上的QQ,而這種通過post,get的不會發這些。由此來判斷是否是合法登入。
2、全脫顧名思義,就是不藉助於用戶端,自己構建用戶端利用協議跟官服互動。也就是說他在運行時是不需要載入資源的。那麼開發人員可以從資源這塊著手。下個暗樁,某個資源會記錄玩家的ip,玩家id的,伺服器根據他來判斷玩家是否線上。不線上,還在哪邊發包,看作外掛處理。(後續處理自己看著辦,直接掉線,告訴外掛作者你有暗樁,不掉線,過個1、2天,封號,哈哈。)
3、對於全脫,作者最煩的就在於那個參數的演算法那,參數最好要經過多次計算,增加複雜度,不要弄一些固定的值,這樣對離線輔助作者來說,他就是做了個複製,粘貼的事情。
4、在發包中,一些重要包的資訊最好帶上玩家ID,時間和綜合後的一些加密等。
適合於所有。頁遊之所有輔助比端遊 要多,原因就在於頁遊可以很容易的得到源碼。
所以呢,頁遊公司應該在保護源碼這塊入手防外掛。
源碼的保護呢,一般3種,加殼,混淆,加擾碼。
1、加殼
這個最沒用,因為flash的運行機制裡,都要先把他轉成FWS,來進行載入,所以一般有能耐的,直接可通過記憶體拿到脫殼後的swf,像doswf那些,都是可以搞定的。不要覺得記憶體發行,只是水平不夠而已。
2、混淆
這個就不錯了。尤其是對於一些參數名稱的混淆,這個更有效果,讓作者即使解出了這個包,也不曉得這個包的意思,猜不透。不過混淆的話,還是可以去混淆的,只是看起來較麻煩點。解包還是能解,只是增加複雜度。
3、加擾碼
這個最好,一般做離線輔助的,雖然可能是高手,但也只是在一方面把,對於flash的反編譯,肯定還是藉助於工具的asv,碩思什麼的。而如果你在swf加入大量的擾碼的話,對遊戲運行沒多少影響,但是會直接讓asv,碩思死掉。這樣,即使他得到了脫殼後的swf,也弄不到源碼,也就做不了輔助了。
個人意見。其實做到這裡還是不夠的,因為我通過虛擬機器可以實現替換swf,讓你官方的swf載入我的swf,從而我可以對你的遊戲進行控制。應對方法,對每個swf來個長度檢測啊什麼的,來識別是否是你自己的swf。
這是在下的一點點見解。高手勿笑。
網頁遊戲防外掛策略。