不管游戲外掛程序是不是“合法”身份,但是它卻是具有一定的技術含量的,在這些小小程序中使用了許多高端技術,如攔截Sock技術、攔截API技術、模擬鍵盤與鼠標技術、直接修改程序內存技術等等。本文將對常見的游戲外掛中使用的技術進行全面剖析。
一、認識外掛
游戲外掛的歷史可以追溯到單機版游戲時代,只不過當時它使用了另一個更通俗易懂的名字??游戲修改器。它可以在游戲中追蹤鎖定游戲主人公的各項能力數(shù)值。這樣玩家在游戲中可以達到主角不掉血、不耗費魔法、不消耗金錢等目的。這樣降低了游戲的難度,使得玩家更容易通關。
隨著網絡游戲的時代的來臨,游戲外掛在原有的功能之上進行了新的發(fā)展,它變得更加多種多樣,功能更加強大,操作更加簡單,以至有些游戲的外掛已經成為一個體系,比如《石器時代》,外掛品種達到了幾十種,自動戰(zhàn)斗、自動行走、自動練級、自動補血、加速、不遇敵、原地遇敵、快速增加經驗值、按鍵精靈……幾乎無所不包。
游戲外掛的設計主要是針對于某個游戲開發(fā)的,我們可以根據它針對的游戲的類型可大致可將外掛分為兩種大類。
一類是將游戲中大量繁瑣和無聊的攻擊動作使用外掛自動完成,以幫助玩家輕松搞定 攻擊對象并可以快速的增加玩家的經驗值。比如在《龍族》中有一種工作的設定,玩家的工作等級越高,就可以駕馭越好的裝備。但是增加工作等級卻不是一件有趣 的事情,毋寧說是重復枯燥的機械勞動。如果你想做法師用的杖,首先需要做基本工作--?砍樹。砍樹的方法很簡單,在一棵大樹前不停的點鼠標就可以了,每 10000的經驗升一級。這就意味著玩家要在大樹前不停的點擊鼠標,這種無聊的事情通過"按鍵精靈"就可以解決。外掛的"按鍵精靈"功能可以讓玩家擺脫無 趣的點擊鼠標的工作。
另一類是由外掛程序產生欺騙性的網絡游戲封包,并將這些封包發(fā)送到網絡游戲服務器,利用這些虛假信息欺騙服務器進行游戲數(shù)值的修改,達到修改角色能力數(shù)值的目的。這類外掛程序針對性很強,一般在設計時都是針對某個游戲某個版本來做的,因為每個網絡游戲服務器與客戶端交流的數(shù)據包各不相同,外掛程序必須要對欺騙的網絡游戲服務器的數(shù)據包進行分析,才能產生服務器識別的數(shù)據包。這類外掛程序也是當前最流利的一類游戲外掛程序。
另外,現(xiàn)在很多外掛程序功能強大,不僅實現(xiàn)了自動動作代理和封包功能,而且還提供了對網絡游戲的客戶端程序的數(shù)據進行修改,以達到欺騙網絡游戲服務器的目的。我相信,隨著網絡游戲商家的反外掛技術的進展,游戲外掛將會產生更多更優(yōu)秀的技術,讓我們期待著看場技術大戰(zhàn)吧......
二、外掛技術綜述
可以將開發(fā)游戲外掛程序的過程大體上劃分為兩個部分:
前期部分工作是對外掛的主體游戲進行分析,不同類型的外掛分析主體游戲的內容也不相同。如外掛為上述談到的外掛類型中 的第一類時,其分析過程常是針對游戲的場景中的攻擊對象的位置和分布情 況進行分析,以實現(xiàn)外掛自動進行攻擊以及位置移動。如外掛為外掛類型中的第二類時,其分析過程常是針對游戲服務器與客戶端之間通訊包數(shù)據的結構、內容以及 加密算法的分析。因網絡游戲公司一般都不會公布其游戲產品的通訊包數(shù)據的結構、內容和加密算法的信息,所以對于開發(fā)第二類外掛成功的關鍵在于是否能正確分 析游戲包數(shù)據的結構、內容以及加密算法,雖然可以使用一些工具輔助分析,但是這還是一種堅苦而復雜的工作。
后期部分工作主要是根據前期對游戲的分析結果,使用大量的程序開發(fā)技術編寫外掛 程序以實現(xiàn)對游戲的控制或修改。如外掛程序為第一類外掛時,通常會使用到鼠標模擬技術來實現(xiàn)游戲角色的自動位置移動,使用鍵盤模擬技術來實現(xiàn)游戲角色的自 動攻擊。如外掛程序為第二類外掛時,通常會使用到擋截Sock和擋截API函數(shù)技術,以擋截游戲服務器傳來的網絡數(shù)據包并將數(shù)據包修改后封包后傳給游戲服 務器。另外,還有許多外掛使用對游戲客戶端程序內存數(shù)據修改技術以及游戲加速技術。
本文主要是針對開發(fā)游戲外掛程序后期使用的程序開發(fā)技術進行探討,重點介紹的如下幾種在游戲外掛中常使用的程序開發(fā)技術:
動作模擬技術:主要包括鍵盤模擬技術和鼠標模擬技術。
封包技術:主要包括擋截Sock技術和擋截API技術。
三、動作模擬技術
我們在前面介紹過,幾乎所有的游戲都有大量繁瑣和無聊的攻擊動作以增加玩家的功力,還有那些數(shù)不完的迷宮,這些好 像已經成為了角色游戲的代名詞。現(xiàn)在,外掛可以幫助玩家從這些繁瑣而無聊的工作中擺脫出來,專注于游戲情節(jié)的進展。外掛程序為了實現(xiàn)自動角色位置移動和自 動攻擊等功能,需要使用到鍵盤模擬技術和鼠標模擬技術。