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