流行外掛簡介

轉載自:http://www.hackbase.com/tech/2009-02-01/43528.html

外掛分好幾種:
  常見有:
  1。完全模擬按鍵的,甚至不管遊戲運行情況,人物情況,純粹的製作一個按鍵和鼠標的操作順序,這個是最簡單的,有很多工具直接提供,使用時候只要事先錄製操作動作腳本就可以了,這個技術含量較低,屬於入門級。
  2。根據遊戲客戶端的當前版本,找到內存中存放人物屬性的位置、物品信息、怪物信息,甚至還有一些其他信息,然後根據這些信息,採用模擬按鍵鼠標的方式觸發命令,比如人物血量低於一個數值就按某個加血的快捷鍵,或者見到物品信息,就按某個撿物的快捷鍵,這個屬於第二種模式,比第一種模式更好更精確。
  3。根據遊戲客戶端的當前版本,找到內存中存放人物屬性的位置、物品信息、怪物信息,甚至還有一些其他信息,同時採用動態跟蹤軟件找到遊戲客戶端進行動作的函數入口以及參數情況,比如找到打怪的函數,往往每個遊戲都有這個函數,參數一般是怪物的ID等信息,還能找到走路的函數,和NPC交互的函數,使用物品(包括藥品和道具)的函數等等,有了這些,可以根據前面得到的人物怪物地上物品NPC等信息,調用相應需要調用的函數,這個屬於第三種,技術含量比前幾種高。
  4。不分析遊戲客戶端的怪物信息存放地址和動作函數入口地址,只分析遊戲的封包加密解密算法,這樣的方式雖然比較複雜,但是對遊戲客戶端幾乎不做任何影響,反外掛功能相對比較難偵測。一般採用自己構造一個sock動態鏈接庫,放到遊戲運行目錄(這裏說的是運行的當前目錄,不一定是遊戲安裝的目錄)中,讓遊戲程序首先調用的是我們提供的sock庫。這樣的方式有一個比較明顯的缺陷,就是部分遊戲的動作是由操作者操作時候發生變化,比如走路、跳等,由於每種遊戲的方式不同,如果採用本方式做外掛,可能人物動作有些問題,會出現瞬移等情況。這種技術含量也比較高。
  5。脫機掛,在上面第四種方式的基礎上,脫離遊戲客戶端,直接把需要用到的所有命令封包的格式掌握,並且按照預先制定的規則和邏輯由自己程序和服務器交互信息,實現角色自動動作。這樣的模式技術含量更高。
  以上幾種方式都是實現外掛的可行途徑。
  另外,作爲好的外掛,一個通用的腳本系統是必不可少的,一般採用解釋執行的方式進行操作,所有命令歸根結底都是反映到外掛向服務器發送角色動作的信息。另外包括地圖系統,這個是必須去分析的,尤其是脫機掛,必須要包含遊戲的地圖信息,跳點信息,一般來說可以直接使用遊戲的地圖,不過往往遊戲地圖和地形地貌信息包含在一起,這個時候,建議直接取出遊戲中地圖本身的通過性信息,專門製作一個簡化的地圖文件。關於AI系統,我就不說什麼了,網上有很多介紹的。
  有時候針對不同遊戲的特點,往往幾種方式可能同時採用,比如第三種和第四種就可能同時採用。
  關於僞造封包,往往都是第四第五種方式比較容易實現。說白了,就是修改本來的封包數據。
  比如曾經有個遊戲,支持匿名發言,但是實際上匿名發言人也是從服務器送到客戶端遊戲程序的,只是客戶端知道這個是匿名信息,因此展現給玩家的時候就把發言人的名字隱去,這個時候,只要修改收到的這樣的封包,把匿名標誌改成非匿名的標誌,那麼遊戲客戶端就把這個封包當成是應該顯示發言人的封包,這樣玩家就能看到匿名信息了。同樣道理,客戶端發送到服務器端的,也可以採用這樣的方式實現修改封包。但是如果想通過修改封包達到類似複製這樣的惡意行爲,往往比較困難,除非遊戲有漏洞。因爲一般來說,大多數的判斷都是在服務器上進行的,服務器會判斷所有發送到服務端的信息是否合理,比如,本來你就100金,你非要修改封包說給人家200金,遊戲服務器是不會認可的,只會反饋給你一個失敗的信息

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章