查看單個文章
舊 2004-10-16, 09:05 AM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 [新手必看]製作外掛全程序

一:什麼叫外掛?

現在的網路遊戲多是關於Internet上客戶伺服器模式,服務端程序執行在遊戲伺服器上,遊戲的設計者在其中創造一個龐大的遊戲空間,各地的玩家可以通過執行客戶端程序同時登入到遊戲中。


簡單地說,網路遊戲實際上就是由遊戲開發商提供一個遊戲環境,而玩家們就是在這個環境中相對自由和開放地進行遊戲操作。

那麼既然在網路遊戲中有了伺服器這個概念,我們以前傳統的修改遊戲方法就顯得無能為力了。記得我們在單機版的遊戲中,隨心所欲地通過記憶體搜尋來修改角色的各種內容,這在網路遊戲中就沒有任何用處了。


因為我們在網路遊戲中所扮演角色的各種內容及各種重要資料都存放在伺服器上,在我們自己電腦上(客戶端)只是顯示角色的狀態,所以通過修改客戶端記憶體裡有關角色的各種內容是不切實際的。


那麼是否我們就沒有辦法在網路遊戲中達到我們修改的目的?回答是"否"。我們知道Internet客戶伺服器模式的通訊一般採用TCP/IP通信傳輸協定,資料交換是通過IP資料包的傳輸來實現的,一般來說我們客戶端向伺服器發出某些請求,比如移動、戰鬥等指令都是通過封包的形式和伺服器交換資料。


那麼我們把本機發出消息稱為SEND,意思就是傳送資料,伺服器收到我們SEND的消息後,會按照既定的程序把有關的訊息反饋給客戶端,比如,移動的坐標,戰鬥的檔案類型


。那麼我們把客戶端收到伺服器發來的有關消息稱為RECV。

知道了這個道理,接下來我們要做的工作就是分析客戶端和伺服器之間往來的資料(也就是封包),這樣我們就可以提取到對我們有用的資料進行修改,然後模擬伺服器發給客戶端,或者模擬客戶端傳送給伺服器,這樣就可以實現我們修改遊戲的目的了。

目前除了修改遊戲封包來實現修改遊戲的目的,我們也可以修改客戶端的有關程序來達到我們的要求。我們知道目前各個伺服器的運算能力是有限的,特別在遊戲中,遊戲伺服器要計算遊戲中所有玩家的狀況幾乎是不可能的,所以有一些運算還是要依靠我們客戶端來完成,這樣又給了我們修改遊戲提供了一些便利。

比如我們可以通過將客戶端程序脫殼來發現一些程序的判斷分支,通過跟蹤偵錯我們可以把一些對我們不利的判斷去掉,以此來滿足我們修改遊戲的需求。

在下幾個章節中,我們將給大家講述封包的概念,和修改跟蹤客戶端的有關知識。大家準備好了嗎?
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
有 4 位會員向 psac 送花:
35689730 (2017-03-08),a334452059 (2017-04-16),naonlin (2006-08-31),peter0937595 (2008-12-07)
感謝您發表一篇好文章