關(guān)于怎么制作外掛插件,怎么制作外掛這個問題很多朋友還不知道,今天小六來為大家解答以上的問題,現(xiàn)在讓我們一起來看看吧!
1、外掛是指某些人利用自己的電腦技術(shù)專門針對一個或多個網(wǎng)絡(luò)游戲,通過改變網(wǎng)絡(luò)游戲軟件的部分程序,制作而成的作弊程序。
2、現(xiàn)在隨著游戲官方對外掛的抵制,游戲本身也有了超強的自動檢測外掛的功能,但制作外掛的技術(shù)也不斷提高著,現(xiàn)在最流行的就是在游戲中用封包和抓包工具對游戲服務(wù)器提交假的數(shù)據(jù)從而改變游戲人物能力。
3、 另外,外掛也指:單位形的作戰(zhàn)武器系統(tǒng)在其原本的作戰(zhàn)單位上添加附加的用于輔助作戰(zhàn)單位作戰(zhàn)的工具、器具。
4、選擇一款目標(biāo)游戲制作網(wǎng)游外掛的第一步就是選定一款游戲。
5、目標(biāo)游戲不是亂選的,里面也有很多講究。
6、第一點,選擇自己熟悉的游戲類型。
7、如果你之前已經(jīng)做過網(wǎng)游外掛,那選擇一款類似的游戲會給你節(jié)省很大的時間,如果是第一次制作的話,那也選一款自己熟悉的游戲類型。
8、第二點,盡量不要選擇熱門的游戲,因為熱門的游戲往往意味著競爭對手的增多,除非你對自己的技術(shù)以及營銷手段很有信心。
9、第三點,不要小看玩家人數(shù)少的游戲,游戲規(guī)模小,競爭也小。
10、一款游戲,只要你能形成吃獨食的場面,再加上營銷搞得好的話,其中的利潤將超過你的想象。
11、但要注意,最好不要碰上因為游戲規(guī)模過小導(dǎo)致游戲廠商把游戲關(guān)閉的衰事。
12、第四點,盡量選擇尚在測試期內(nèi)的游戲,這使得你有充足的時間制作外掛,同時也要觀察該款游戲在市面上是否有其他外掛出現(xiàn)。
13、這樣等游戲正式上線時,你的外掛也差不多可以推出了。
14、2 目標(biāo)網(wǎng)游初步分析1 確定要制作的網(wǎng)游外掛類型目標(biāo)網(wǎng)游選定好之后,你首先要做的第一件事就是確定你要制作的網(wǎng)游外掛類型。
15、網(wǎng)游外掛雖然統(tǒng)稱為外掛,但細分的話可以分為以下二類:內(nèi)掛和脫機外掛。
16、內(nèi)掛就是在游戲內(nèi)呼出的網(wǎng)游外掛,它依賴于網(wǎng)游客戶端,所使用到的技術(shù)主要包括鼠標(biāo)和鍵盤的模擬,內(nèi)存特殊變量區(qū)域的搜索,或者是掛鉤游戲的收包函數(shù)和模擬游戲的發(fā)包函數(shù)。
17、脫機外掛就是指不依賴于客戶端,能獨立模擬客戶端和游戲服務(wù)器進行通訊的網(wǎng)游外掛。
18、脫機外掛的實現(xiàn)方式只有一種,就是模擬網(wǎng)游客戶端的收包和發(fā)包過程。
19、總體而言,內(nèi)掛的整體制作難度比脫機外掛要簡單一些,但脫機外掛制作要比內(nèi)掛更有趣,而且用起來也更方便,不必啟動龐大的客戶端程序。
20、所以下面主要是以脫機外掛的制作流程為主進行講解網(wǎng)絡(luò)截包工具(Microsoft Network Monitor)的使用簡介目標(biāo)網(wǎng)游的初步分析最主要的工作是分析游戲初始階段網(wǎng)游客戶端和服務(wù)器之間的數(shù)據(jù)通訊。
21、這一階段主要是指從輸入用戶名和密碼開始登錄游戲到玩家人物出現(xiàn)在游戲場景中這個階段。
22、這是開始階段最關(guān)鍵的一個步驟,如果你能夠成功破解網(wǎng)游數(shù)據(jù)通訊部分的加密,并用DEMO程序成功模擬整個登錄過程,那你幾乎就已經(jīng)成功了一半了。
23、如果無法破解加密的話,那就需要趕快重新選定一款游戲了。
24、關(guān)于初步分析,首先要確定網(wǎng)游客戶端和服務(wù)器之間的大致通訊過程,最起碼你要知道客戶端連接的是哪一個服務(wù)器,連接的端口是多少,在登錄的過程中發(fā)送和接受了幾個包?而要了解這些東西,你就要使用到網(wǎng)絡(luò)截包工具了。
25、我使用的是Microsoft Network Monitor V3.1來做示范簡單好用。
26、大家可以到下面的網(wǎng)址去下載該軟件。
27、下面,我簡單介紹一下該軟件的使用方法。
28、安裝好程序之后,運行程序,點擊【Start Page】頁的【Create a new capture tab】按鈕,創(chuàng)建一個新的數(shù)據(jù)捕獲會話,點擊工具欄上綠色的開始按鈕,就可以開始捕獲網(wǎng)絡(luò)數(shù)據(jù)了各個窗口的作用如下:Network Conversations下面有二項:My Traffic代表本機作為發(fā)送方或者接收方參與的網(wǎng)絡(luò)數(shù)據(jù)包。
29、選中該項后,Frame Summary中將僅僅列出與本機相關(guān)的網(wǎng)絡(luò)數(shù)據(jù)包。
30、Other Traffic 則是網(wǎng)絡(luò)上其他機器之間的網(wǎng)絡(luò)數(shù)據(jù)包。
31、因為正好在攔截期內(nèi)經(jīng)過本機,所以被順道攔截了下來。
32、Capture Filter 是設(shè)定攔截數(shù)據(jù)時的過濾器。
33、Display Filter 是對攔截結(jié)果的過濾設(shè)定。
34、Select Networks 是設(shè)定需要攔截本機上的那一個網(wǎng)絡(luò)。
35、Aliases用于設(shè)定友好名。
36、Frame Summary 中列出的是符合條件的所有網(wǎng)絡(luò)數(shù)據(jù)包Frame Details則是當(dāng)前選中的網(wǎng)絡(luò)數(shù)據(jù)包的詳細結(jié)構(gòu)Hex Details 則是當(dāng)前選中網(wǎng)絡(luò)數(shù)據(jù)包的二進制格式3 分析初始階段C/S網(wǎng)絡(luò)數(shù)據(jù)通訊簡單介紹了網(wǎng)絡(luò)截包工具的使用之后,下面我們就開始初步分析了。
37、在這篇文章里,我以某款網(wǎng)絡(luò)游戲作為假定目標(biāo)。
38、(具體是哪一款,大家就不要深究了。
39、)首先在【aliases】窗口中將本地客戶端和游戲服務(wù)器分別命名為:MyComputer和GameServer。
40、注意不要忘了點擊【apply】按鈕。
41、數(shù)據(jù)包列表就是目標(biāo)網(wǎng)游從輸入用戶名和密碼登錄游戲到人物出現(xiàn)在游戲中(然后立即退出。
42、)這一階段客戶端和服務(wù)器之間的所有往來的數(shù)據(jù)包MyComputer è GameServer .S...... 客戶端請求建立連接MyComputer ? GameServer .S..A... 服務(wù)器同意建立連接MyComputer è GameServer ....A... 連接建立以上三個包稱為建立TCP連接的三段式握手。
43、當(dāng)你調(diào)用Socket類的Connect方法時就會產(chǎn)生上面的三個TCP包。
44、下面是連接斷開的過程。
45、MyComputer è GameServer F...A... 客戶端請求斷開連接MyComputer ? GameServer ....A... 服務(wù)器同意斷開請求MyComputer ? GameServer F...A... 服務(wù)器請求斷開連接MyComputer è GameServer ....A... 客戶端同意斷開請求調(diào)用Socket類的Disconnect方法時就會產(chǎn)生上面的四個TCP包。
46、在驗證用戶名和密碼的過程中,客戶端和服務(wù)器之間總共連接了二次,所以在之后的外掛程序編寫過程中,我們同樣也要連接二次。
47、TCP Flag為...PA...表示該TCP包內(nèi)帶有數(shù)據(jù),而....A...則是回應(yīng)包,用于回應(yīng)上一個包的發(fā)送方:我已經(jīng)收到你上一個包了,它本身不帶數(shù)據(jù)。
48、所以一般一個...PA...包都有一個對應(yīng)的....A...包(例如編號為266和269),但如果回應(yīng)的時候,發(fā)現(xiàn)正好有數(shù)據(jù)要發(fā)送,則可以將回應(yīng)包摻雜在發(fā)送包中發(fā)送過去(例如編號為273的回應(yīng)包就摻雜在275這個包內(nèi))。
49、下面觀察客戶端和服務(wù)器之間的實際數(shù)據(jù)往來。
50、1. 客戶端連接到服務(wù)器2. MyComputer ? GameServer 服務(wù)器給客戶端發(fā)送7字節(jié)的數(shù)據(jù)3. MyComputer è GameServer 客戶端給服務(wù)器發(fā)送90字節(jié)的數(shù)據(jù)4. MyComputer ? GameServer 服務(wù)器給客戶端發(fā)送65字節(jié)的數(shù)據(jù)5. MyComputer ? GameServer 服務(wù)器給客戶端發(fā)送48字節(jié)的數(shù)據(jù)6. MyComputer è GameServer 客戶端給服務(wù)器發(fā)送48字節(jié)的數(shù)據(jù)7. MyComputer ? GameServer 服務(wù)器給客戶端發(fā)送208字節(jié)的數(shù)據(jù)8. 服務(wù)器斷開連接9. ……以上就是第一次連接的大致過程。
51、觀察每個包內(nèi)的具體傳輸數(shù)據(jù)是沒有意義的,因為網(wǎng)游之間的通訊肯定是加密的,你每次攔截下來的數(shù)據(jù)都會不一樣。
52、通常游戲服務(wù)器給客戶端發(fā)送的第一個包都是KEY包(例如上面的7字節(jié)的包),客戶端在接收到KEY包之后執(zhí)行相應(yīng)的數(shù)據(jù)加密初始化。
53、所以接下來的任務(wù)就是根據(jù)已掌握的數(shù)據(jù)通訊規(guī)律,對游戲客戶端的加密算法進行破解了。
54、4 游戲加密算法破解網(wǎng)絡(luò)游戲所使用的網(wǎng)絡(luò)通訊函數(shù)肯定也是微軟操作系統(tǒng)所提供的標(biāo)準(zhǔn)API函數(shù),所以通常在接受網(wǎng)絡(luò)數(shù)據(jù)的API函數(shù)中下一個斷點,當(dāng)接收到第一個7字節(jié)包時,斷點激活,然后逐漸跟進去,查看游戲客戶端是如何處理該段數(shù)據(jù)的,然后我們在外掛中依樣畫葫蘆,進行同樣的處理。
55、整個破解過程相當(dāng)?shù)目菰餆o聊,因為面對的都是匯編代碼也涉及本人專長,所以只能大致的說一下。
56、5 DEMO制作破解完成之后,就要制作一個能夠登錄游戲的DEMO了,用于確認游戲加密算法的破解是否成功。
57、至于選擇何種編程語言和工具制作外掛則沒有限定,常用的如VC,Delphi,VB…等都可以,具體的編程在此就不具體說明了,可以根據(jù)個人的喜好所選擇,下面談?wù)劸W(wǎng)游中數(shù)據(jù)通訊的基本單位:指令包。
58、所謂指令包就是代表了一個最基本含義的數(shù)據(jù)包。
59、比如游戲人物向左移動時,游戲客戶端就會向服務(wù)器發(fā)送一個指令包(人物走路包),通知服務(wù)器更新游戲人物的坐標(biāo)。
60、當(dāng)游戲人物周圍出現(xiàn)一個新的怪物時,服務(wù)器會向客戶端發(fā)送一個指令包(怪物出現(xiàn)包),通知客戶端在畫面上繪制出該怪物。
61、所以,可以說指令包就是客戶端和服務(wù)器之間所使用的通訊語言,而外掛的工作就是解析該種語言,然后模擬客戶端和服務(wù)器端進行通訊。
62、各個游戲定義的指令包的格式都不一樣,但一般一個指令包通常含有以下幾個元素:XX XX XX XX XX XX XX ...XX XX 紅色部分通常與該指令包的長度相關(guān)。
63、他可能是指整個指令包的長度,也可能是指他余下部分指令的長度,這需要根據(jù)游戲的具體情況來確定。
64、之所以專門要用一定空間來說明指令包的長度,這是由SOCKET通訊的機制所決定的。
65、SOCKET連接建立好之后,通過SOCKET連接讀取到的數(shù)據(jù)并不是以指令包為分割的。
66、有可能一個TCP包中正好包含一條指令包,也有可能僅僅包含指令包的一部分(如下圖所示)。
67、所以這時候就要根據(jù)指令包長度將收到的網(wǎng)絡(luò)數(shù)據(jù)截取成單個的指令包。
68、有一點需要指出的是:剛開始的幾個數(shù)據(jù)包不一定遵循一定的規(guī)律,這時候就需要進行特殊處理(因為在開頭,所以也比較好處理),而之后的數(shù)據(jù)包肯定是遵循指令包格式的,不然就亂套了。
69、XX XX 藍色部分通常稱為指令包標(biāo)識,用于說明該指令包是屬于哪一種類型。
70、比如怪物攻擊包,玩家的移動包……,游戲客戶端根據(jù)收到的相應(yīng)指令包采取不同的動作。
71、事實上,在客戶端程序的內(nèi)部就是一個很大的Sw。
本文分享完畢,希望對大家有所幫助。
標(biāo)簽:
免責(zé)聲明:本文由用戶上傳,如有侵權(quán)請聯(lián)系刪除!