外掛總結
定義
外掛發展
-
遊戲外掛的歷史能夠追溯到單機版遊戲時代,只不過當時它使用了另外一個更通俗易懂的名字??遊戲修改器。它能夠在遊戲中追蹤鎖定遊戲主人公的各項能力數值。這樣玩家在遊戲中能夠達到主角不掉血、不耗費魔法、不消耗金錢等目的。這樣下降了遊戲的難度,使得玩家更容易通關。編程
-
隨着網絡遊戲的時代的來臨,遊戲外掛在原有的功能之上進行了新的發展,它變得更加多種多樣,功能更增強大,操做更加簡單,以致有些遊戲的外掛已經成爲一個體系,好比《石器時代》,外掛品種達到了幾十種,自動戰鬥、自動行走、自動練級、自動補血、加速、不遇敵、原地遇敵、快速增長經驗值、按鍵精靈……幾乎無所不包。小程序
外掛分類
-
遊戲外掛的設計主要是針對於某個遊戲開發的,咱們能夠根據它針對的遊戲的類型可大體可將外掛分爲兩種大類。windows
-
一類是將遊戲中大量繁瑣和無聊的攻擊動做使用外掛自動完成,以幫助玩家輕鬆搞定攻擊對象並能夠快速的增長玩家的經驗值。api
- 好比在《龍族》中有一種工做的設定,玩家的工做等級越高,就能夠駕馭越好的裝備。可是增長工做等級卻不是一件有趣的事情,毋寧說是重複枯燥的機械勞動。若是你想作法師用的杖,首先須要作基本工做--?砍樹。砍樹的方法很簡單,在一棵大樹前不停的點鼠標就能夠了,每10000的經驗升一級。這就意味着玩家要在大樹前不停的點擊鼠標,這種無聊的事情經過"按鍵精靈"就能夠解決。外掛的"按鍵精靈"功能可讓玩家擺脫無趣的點擊鼠標的工做。
-
另外一類是由外掛程序產生欺騙性的網絡遊戲封包,並將這些封包發送到網絡遊戲服務器,利用這些虛假信息欺騙服務器進行遊戲數值的修改,達到修改角色能力數值的目的。安全
- 這類外掛程序針對性很強,通常在設計時都是針對某個遊戲某個版原本作的,由於每一個網絡遊戲服務器與客戶端交流的數據包各不相同,外掛程序必需要對欺騙的網絡遊戲服務器的數據包進行分析,才能產生服務器識別的數據包。這類外掛程序也是當前最流利的一類遊戲外掛程序。
-
另外,如今不少外掛程序功能強大,不只實現了自動動做代理和封包功能,並且還提供了對網絡遊戲的客戶端程序的數據進行修改,以達到欺騙網絡遊戲服務器的目的。服務器
開發外掛過程
遊戲外掛中常使用的程序開發技術
一、動做模擬技術:主要包括鍵盤模擬技術和鼠標模擬技術。
-
鼠標模擬技術:Windows API函數
- 模擬鼠標動做API函數mouse_event,它能夠實現模擬鼠標按下和放開等動做。
- 獲取當前鼠標位置使用GetCursorPos()函數,
- 設置當前鼠標位置使用SetCursorPos()函數。
-
鼠標模擬代碼示例
一般遊戲角色的行走都是經過鼠標移動至目的地,而後按一下鼠標的按鈕就搞定了。下面咱們使用上面介紹的API函數來模擬角色行走過程。
CPoint oldPoint,newPoint;
GetCursorPos(&oldPoint); //保存當前鼠標位置。
newPoint.x = oldPoint.x+40;
newPoint.y = oldPoint.y+10;
SetCursorPos(newPoint.x,newPoint.y); //設置目的地位置。
mouse_event(MOUSEEVENTF_RIGHTDOWN,0,0,0,0);//模擬按下鼠標右鍵。
mouse_event(MOUSEEVENTF_RIGHTUP,0,0,0,0);//模擬放開鼠標右鍵。
-
鍵盤模擬技術:Windows API函數
- 模擬鍵盤動做API函數keydb_event,它能夠模擬對鍵盤上的某個或某些鍵進行按下或放開的動做。
-
鍵盤模擬代碼示例
keybd_event(VK_CONTROL,MapVirtualKey(VK_CONTROL,0),0,0); //按下CTRL鍵。
keybd_event(0x52,MapVirtualKey(0x52,0),0,0);//鍵下R鍵。
keybd_event(0x52,MapVirtualKey(0x52,0), KEYEVENTF_KEYUP,0);//放開R鍵。
keybd_event(VK_CONTROL,MapVirtualKey(VK_CONTROL,0),
KEYEVENTF_KEYUP,0);//放開CTRL鍵。
二、封包技術:主要包括擋截Sock技術和擋截API技術。
-
封包概述
- 經過封包技術在客戶端擋截遊戲服務器發送來的遊戲控制數據包,分析數據包並修改數據包;同時還需按照遊戲數據包結構建立數據包,再模擬客戶端發送給遊戲服務器。
- 封包的技術是實現第二類遊戲外掛的最核心的技術。封包技術涉及的知識很普遍,實現方法也不少,如擋截WinSock、擋截API函數、擋截消息、VxD驅動程序等。在此介紹最經常使用的兩種方法:擋截WinSock和擋截API函數。
- 擋截WinSock僅只能擋截WinSock接口函數,而擋截API能夠實現對應用程序調用的包括WinSock API函數在內的全部API函數的擋截。
-
擋截Sock技術
- Winsock是Windows網絡編程接口,它工做於Windows應用層,它提供與底層傳輸協議無關的高層數據傳輸編程接口。在Windows系統中,使用WinSock接口爲應用程序提供基於TCP/IP協議的網絡訪問服務,這些服務是由Wsock32.DLL動態連接庫提供的函數庫來完成的。
- 任何Windows基於TCP/IP的應用程序都必須經過WinSock接口訪問網絡,網絡遊戲程序也不例外。
- WinSock接口實際上是由一個動態連接庫提供的一系列函數,由這些函數實現對網絡的訪問。
- 能夠製做一個相似的動態連接庫來代替原WinSock接口庫,在其中實現WinSock32.dll中實現的全部函數,並保證全部函數的參數個數和順序、返回值類型都應與原庫相同。在這個自制做的動態庫中,能夠對咱們感興趣的函數(如發送、接收等函數)進行擋截,放入外掛控制代碼,最後還繼續調用原WinSock庫中提供的相應功能函數,這樣就能夠實現對網絡數據包的擋截、修改和發送等封包功能。
-
擋截API技術
- 擋截API技術的原理核心也是使用本身的函數來替換掉Windows或其它DLL庫提供的函數,有點同擋截WinSock原理類似。可是,其實現過程卻比擋截WinSock要複雜的多,如像實現擋截Winsock過程同樣,將應用程序調用的全部的庫文件都寫一個模擬庫有點不大可能,就只說Windows API就有上千個,還有不少庫提供的函數結構並未公開,因此寫一個模擬庫代替的方式不大現實。
- 擋截API的最終目標是使用自定義的函數代替原函數。那麼,咱們首先應該知道應用程序什麼時候、何地、用何種方式調用原函數。接下來,須要將應用程序中調用該原函數的指令代碼進行修改,使它將調用函數的指針指向咱們本身定義的函數地址。這樣,外掛程序才能徹底控制應用程序調用的API函數,至於在其中如何加入外掛代碼,就應需求而異了。最後還有一個重要的問題要解決,如何將咱們自定義的用來代替原API函數的函數代碼注入被外掛遊戲程序進行地址空間中,因在Windows系統中應用程序僅只能訪問到本進程地址空間內的代碼和數據。
- 綜上所述,要實現擋截API函數,至少須要解決以下三個問題:
- 定位遊戲程序中調用API函數指令代碼
- 修改遊戲程序中調用API函數指令代碼
- 將外掛代碼(自定義的替換函數代碼)注入到遊戲程序進程地址空間
======================================================
外掛百科
外掛概述
-
外掛(wài guà),又叫開掛、開外掛、輔助、修改器,通常指經過修改遊戲數據而爲玩家謀取利益的做弊程序或軟件,即利用電腦技術針對一個或多個軟件進行非原設操做,篡改遊戲本來正常的設定和規則,大幅加強遊戲角色的技能和超越常規的能力,從而達到輕鬆獲取勝利、獎勵和快感的好處,經過改變軟件的部分程序製做而成的做弊程序。
-
主要應用原理是在遊戲中用封包和抓包工具對遊戲自己或遊戲服務器提交假參數從而改變遊戲中的人物能力。 使用外掛具備必定風險,特別是在非單機遊戲中使用破壞遊戲公平性的外掛,可能還會被封禁帳號。
-
外掛也指單位形的做戰武器系統在其本來的做戰單位上添加附加的用於輔助做戰單位做戰的工具、器具。
運行原理
基本模塊
-
一、自動化管理,外掛掛機的主要功能。
-
二、減少(增大)遊戲指令與指令之間的間隔時間,例如:快速戰鬥,快速勞動等(非變速齒輪的直接加快遊戲速度的效果)。
-
三、執行一些由於玩家我的遊戲信息的問題而在客戶端沒法直接執行的命令,但這個命令在客戶端倒是容許的(例如等級1就執行等級99級才能執行的指令)。
-
四、修改客戶端正常的指令發送至服務器達到必定的特殊效果,這種指令是通常客戶端不能編譯發送的,但服務器卻可正常接收執行,如:發送GM的系統消息。又如:把一個在遊戲中價值10的物品賣成100000,簡單的舉個例子,例如這個物品代號爲a,本來應發送【a-10】這個數據,但經過外掛把這個數據改成【a-100000】這樣就把10的東西賣到100000。
-
製做外掛就是大量收集正常數據指令並觀察其規律,以後經過修改並集中這些數據指令製做出外掛的各模塊,以後編成一個軟件。
使用目的
- 應該說早期圖形網絡遊戲(如uo、kok)的外掛能夠說是出於善意的,外掛機器人只是代替線上玩家進行某些重複性動做,以達到長時間在線"練功"的目的,可使一些忙於工做的人也可以享受到網絡遊戲的樂趣,網絡遊戲服務商對此也是睜隻眼,閉隻眼,由於他並無對網絡遊戲規則形成太大的衝擊.外掛已經不只僅是重複性機器人而已:如"加速器外掛"能夠大幅度修改客戶端ID的移動速度;"經驗外掛"能夠在遊戲中向服務器發送npc自己xx倍的經驗的封包,以達到迅速成長的效果;更有甚者能夠對服務器端的id或物品進行屬性修改……,網絡遊戲蒸蒸日上,而網絡外掛也是如火如荼,彷佛網絡外掛與網絡遊戲的爭端從有網絡遊戲就開始了,越是玩家彙集的遊戲其外掛現象就越是嚴重,遊戲外掛軟件的多寡已經成爲評價一個網絡遊戲成功與否的標準。甚至有玩家戲稱:「沒有外掛的遊戲是網絡垃圾」,雖然不少遊戲難免有許多外掛,但必定不要使用,能夠這麼說,每一個外掛都有綁定木馬,輕的話你的帳號會被盜,重的話會致使電腦死機癱瘓
分類
-
受權外掛
- 受權的外掛即(內掛)軟件在合理性、使用性、安全性上都是最優秀的,因爲開發外掛須要考慮自身體積、人機功效及可靠性,因此好的外掛通常都是先由多我的或組織開發各式各樣的!由官方測試後認定某一單位開發的外掛能夠安全、穩定的給用戶服務,這樣官方纔會受權它能夠公開出售、下載及使用!
-
未受權外掛
- 未受權外掛並非違法的,受權外掛的前身都是未受權外掛,它們須要在主體軟件上做全面的測試,否則很容易出現死機、毀數據或其餘有害症狀!未受權外掛不能夠隨意發放給用戶,更不能做爲商業用品交易,因此法律爲了軟件用戶的數據安全規定:出售未受權外掛是違法的的行爲!另外若是未受權外掛被人利用來傳播病毒和木馬,那對用戶來講就是一場災難!
外掛影響
-
外掛會形成網絡遊戲的極度不公平,同時形成服務器端的垃圾數據增多(這一般是由於外掛軟件開發者沒有掌握服務器端的技術而形成的),並且因爲使用外掛者大多不用在電腦前加以控制,而令玩家長期處於「掛機」狀態,服務器須要使用更多資源來處理這些並不是由人控制的角色,令到服務器端的工做量激增,網絡遊戲運營商須要打開更多服務器來處理這批角色,而使成本增長。(都有可能令其餘玩家遊戲畫面或速度減慢)
-
一些受歡迎網絡遊戲就會有「專業」的外掛。一些比較少玩家的網絡遊戲一般都沒有「專業」的外掛,所以,外掛的多少能夠做爲一個網絡遊戲受歡迎程度的指針。
-
外掛軟件的確從另外一個層面反映了網絡遊戲的受衆程度。一個網絡遊戲,玩的人多了,外掛就會緊跟着來。龍族、魔力寶貝 、絕地求生、天使、傳奇等等無一倖免。奇蹟的外掛彷佛來得更快,快到點卡還未上市,外掛卡已經開始賣了。外掛軟件給部分玩家帶來刺激與興奮以後,也破壞了遊戲規則,這類的外掛已經嚴重影響了遊戲的公平性,導致其餘玩家沒法與使用外掛的玩家進行抗衡,因而愈來愈多的玩家離開了遊戲,網絡遊戲的運營商也逐步喪失了市場。所以外掛軟件損害了玩家的利益也損害了運營商的利益,從某種程度上說也破壞了網絡經濟的健康發展。
-
外掛可讓別人在5分鐘內作到你50分鐘才能作到的事情 。這使玩家心理極不平衡。心理不平衡了天然遊戲也沒什麼樂趣。因而爲了追求心理平衡,大部分玩家都選擇用外掛,小部分玩家選擇退出。而留下的那些使用外掛的玩家均可以用5分鐘作到50分鐘的事。因而一個遊戲迅速消亡,退出市場,由於全部可玩的部分,外掛已經替你玩了。掛機外掛的原理也是差很少的。當你發現你一成天的努力別人只須要晚上睡覺時把電腦開着就能夠,心理也會極度不平衡。
那些更強力(或者說變態)的外掛危害則更大。掛機外掛或加速外掛只是間接的損害了其餘玩家的利益,它幫助你能夠輕鬆的完成其餘玩家須要付出巨大努力的事,它只是打亂了遊戲的金融秩序,使其餘玩家的遊戲幣物資 人物資料等貶值而已。而大部分變態外掛則是直接損害其餘玩家利益。那些外掛基本都能使你作到其餘玩家作不到的事。具體能夠幫助你作到哪些其餘玩家作不到的事,那就數不勝數了。
-
並且有些製做外掛者在外掛中放置病毒或木馬,來盜取玩家的遊戲帳號、密碼,甚至破壞用戶的計算機
外掛分類:外掛類型分類
外掛分類:外掛功能分類
-
普通外掛
- 1.一般使用外掛70%的人常常狩獵不主動攻擊的怪,並且幾乎就在同一點位置打坐休息
- 2.掛機者通常都關閉了組隊邀請,決鬥邀請,假如他沒關閉的話,而你又懷疑他掛機的話你能夠邀請和他組隊,他會半天沒反應的,或者你能夠嘗試和他說話,他也沒反應的,你能夠嘗試用這方法去識別,正確率99%以上
- 3.掛機者通常開了2-5倍的攻擊速度,打怪出招動做很利索,很是明顯(你和掛機者同職業的時候你能夠比較下攻擊速度)
- 4.掛機者通常出沒於凌晨的時候他們一般節約時間不作任務,一直掛機打錢練級的
- 5.有時候在野外看到某我的一直往死角里跑,或者一直登山坡爬不上去,那是由於角色死了,外掛自動會跑到練級點,但跑得路線沒那麼智能,因此咱們能看到這狀況,城裏也能看到某個死角,某個商店1我的在不停地跑那就是外掛100%沒錯的! [3]
-
競速外掛
- 一、不用加速時就能夠甩你!
- 二、一旦加速,他的車身的火光持續時間N長!
- 三、因爲速度太高,轉彎時很不穩定。
- 4.看速度. 若是第一名的速度奇快..那必定是外掛!!
- 5.看名字後面的系統檢測度(網速條). 在比賽的時候.大家必定注意到了每一個人的名字後面都有幾個或紅或綠的小豎槓!!那個就是系統的自動檢測度.若是那個是紅色就表示有多是外掛(PS:是有可能)
- 6.看玩家.這個是很實用的方法.若是你看見有玩家是在原地不動的.並且排名不會改變.一直是最後.可是最後贏得比賽的倒是他..那麼有必定概率是開掛的.(PS:是有必定概率)
- 7.在噴了一次時候就開始無限加速的!!此絕對是外掛.!!!
- 8.系統檢測度爲紅色.玩家原地不動所有出現者.就是玩家原地不動.並且檢測度爲紅色者.100/100是外掛.此外掛爲掛機外掛.沒法破解.最後的結果是原來的第一名完成比賽後成爲了第二名.而他/她卻成爲了第一名.有個破解辦法..可是仍是不太有用。.就是若是你發現了.只要撞一下他.他飛了就能夠了.這樣作的話只能讓他得第二名.第一名和他會同時完成.可是顯示的是他在第二名。
-
注:
- 一、有至關一部分外掛玩家極力掩飾本身的無恥行徑.他們一般會採起故意起跑落後、用剎車下降速度,甚至故意輸掉一兩局來讓你們覺的他的速度不快。可是這實際上是行不通的,狐狸總會漏馬腳,畢竟用外掛的目的仍是要贏得比賽。
- 二、有人說數秒時就有人先起跑了,這個不能算做看是否使用WG的方法之一,引發這種狀況的一般還會和網絡問題有關。競速賽比得是時間。只要你本身機子上的時間比別人快,就算他跑第一也得不到真正的第一。
-
判斷CS外掛
- 一、在刀戰中,別人一靠近你瞬間就能夠把你殺死的,那確定是用了匕首加速掛。
- 二、當你看到一我的從一邊忽然飆到另外一邊(瞬間,但飆以前有必定時間停頓)並且他的延遲在這一瞬間達到了200以上,不要懷疑,這就是瞬移掛。
- 三、當你在很短的時間聽到連續的重狙聲(像步槍同樣快)的,那麼就是他開了子彈加速掛。
- 四、當你還沒看見別人就被穿牆的子彈+爆頭,除非運氣好,若是出現幾回,就極可能開了外掛(通常是cs007)。
- 五、當通常模式下別人掏出不少個手雷或閃光之類的,必定是開了外掛。生命和防彈都不減小,或者減小了又增長(通常是爆頭不死、狙不死),那必定是一種極爲少見的外掛。
-
武器外掛
- 外掛還有一個傳統的解釋是:單位形的做戰武器系統(如直升機,坦克,戰車等)在其本來的做戰單位上添加附加的用於輔助做戰單位做戰的工具、器具等。如:阿帕奇直升機外掛響尾蛇導彈,那麼這個導彈可稱爲直升機的外掛。或是戰車外掛油箱,這個油箱可使戰車行駛更遙遠的距離,那麼這個油箱可稱爲輔助做戰外掛。
-
運動外掛
- 在戶外運動中,把組織團隊中的人在活動中帶來的非組織成員,這個非組織成員稱爲帶他參加活動人員的外掛,也就是說是組織成員的一部分,要負有必定的責任。
發展
- 隨着遊戲官方對外掛的抵制,遊戲自己也有了超強的自動檢測外掛的功能,但製做外掛的技術也不斷提升着,最流行的就是在遊戲中用封包和抓包工具對遊戲服務器提交假的數據從而改變遊戲人物能力,例如對遊戲人物增長攻擊力,對身上的裝備修改屬性,在地下城與勇士和穿越火線遊戲中用的最爲普遍,用戶利用外掛這種做弊手段能夠輕易獲得其餘正經常使用戶沒法獲得、或必須經過長期運行程序才能獲得的遊戲效果。外掛的功能還有不少種,有加速器、封包等,其最顯著的特徵就是爲使用外掛的遊戲者帶來不一樣於正經常使用戶的遊戲效果,它能使使用外掛者比正經常使用戶奔跑快、攻擊威力加大、得到更多的經驗值。外掛的最初意思是外部調用程序的通俗稱法,接近於Windows的API(應用程序接口)。但外掛之於網絡遊戲來講,主要指那些可能對遊戲的運行形成不良影響的相關程序。主要有自動工做、遊戲加速、能力增強等功能。
相關知識
更新速度編輯
- 外掛的更新速度,已經超過了網絡遊戲的更新速度,外掛製做者主要在網絡遊戲更新的時候,進入遊戲(偷渡)尋找代碼,因此外掛才能在第一時間更新。
=====================================================
外掛原理概述與舉例
外掛編寫原理與代碼
參考連接
END