首頁遊戲問答《武林外傳》遊戲操作及分析指南

《武林外傳》遊戲操作及分析指南

來源:工設手遊網 編輯:手遊零氪 發布時間:2024-12-30 11:49:09

  《武林外傳》遊戲相關操作指南

武林外傳
武林外傳
  • 大小:1592M
  • 語言:簡體中文
  • 類型:角色扮演
  • 評分:9.8分
查看詳細

  一、修改私服步驟

  1. 下載並安裝私服客戶端:可在互聯網上搜索“武林外傳私服客戶端”並選擇可靠網站下載。

  2. 打開私服客戶端並注冊:通常需輸入基本信息、賬號密碼等。

  3. 登錄私服客戶端後,選擇要加入的服務器並點擊連接。

  4. 若需修改遊戲客戶端,可在私服網站或相關論壇下載。但修改遊戲客戶端可能存在風險,請謹慎操作。

  二、相關工具及使用方法

  WPE

  執行 WPE 有多項功能可選:

  SELECT GAME:選擇在內存中想攔截的程式,雙擊程式名稱即可。

  TRACE:追蹤功能,用來追蹤擷取程式送收的封包。必須先完成選取欲追蹤的程式名稱,才可使用此項目。按下 Play 鍵開始擷取封包,可隨時按下||暫停追蹤,想繼續時再按下||。按下正方形可停止擷取封包並顯示所有已擷取封包內容。若沒按下正方形停止鍵,追蹤動作將依照 OPTION 裏的設定值自動停止。若未擷取到資料,試試將 OPTION 裏調整為 Winsock Version 2。WPE 及 Trainers 是設定在顯示至少 16 bits 顏色下才可執行。

  FILTER:過濾功能,用來分析所擷取到的封包,並予以修改。當 FILTER 在啟動狀態時,ON 的按鈕會呈現紅色。啟動 FILTER 時,可隨時關閉視窗,FILTER 將會保留在原來的狀態,直到再按一次 on/off 鈕。隻有 FILTER 啟用鈕在 OFF 的狀態下,才可勾選 Filter 前的方框來編輯修改。想編輯某個 Filter,隻要雙擊該 Filter 的名字即可。

  SEND PACKET:送出封包功能,能夠讓您送出假造的封包。

  TRAINER MAKER:製作修改器。

  OPTIONS:設定功能,讓您調整 WPE 的一些設定值。

  NORMAL MODE 範例:在 Street Fighter Online 遊戲中,使用兩次火球且擊中對方,會擷取到以下封包:

  SEND-> 0000 08 14 21 06 01 04

  SEND-> 0000 02 09 87 00 67 FF A4 AA 11 22 00 00 00 00

  SEND-> 0000 03 84 11 09 11 09

  SEND-> 0000 0A 09 C1 10 00 00 FF 52 44

  SEND-> 0000 0A 09 C1 10 00 00 66 52 44

  第一個火球讓對方減了 16 滴生命值(16 = 10h),觀察到第 4 跟第 5 個封包的位置 4 有 10h 的值出現,可見 0A 09 C1 10 是發出火球的關鍵,將其填在搜尋列,在修改列位置 4 填上 FF,再度發出火球時,FF 會取代之前的 10,攻擊力變為 255 的火球。

  ADVANCED MODE 範例:在一個遊戲中,不想用真實姓名,想用修改過的假名傳送,使用 TRACE 後會發現有些封包裏麵有名字出現。假設名字是 Shadow(53 68 61 64 6F 77),打算用 moon(6D 6F 6F 6E 20 20)取代。

  SEND-> 0000 08 14 21 06 01 04

  SEND-> 0000 01 06 99 53 68 61 64 6F 77 00 01 05

  SEND-> 0000 03 84 11 09 11 09

  SEND-> 0000 0A 09 C1 10 00 53 68 61 64 6F 77 00 11

  SEND-> 0000 0A 09 C1 10 00 00 66 52 44

  名字在每個封包中位置不同,在第 2 個封包裏,名字出現在第 4 個位置,在第 4 個封包裏,名字出現在第 6 個位置。在這種情況下,需使用 ADVANCED MODE,在搜尋列填上 53 68 61 64 6F 77(從位置 1 開始填),想從原來名字 Shadow 的第一個字母開始置換新名字,選擇從數值被發現的位置開始替代連續數值,在修改列 000 的位置填上 6D 6F 6F 6E 20 20(從原來搜尋欄的 +001 位置開始遞換)。

  三、獲取遊戲服務器信息及分析截獲封包

  1. 查看遊戲目錄下的 SERVER.INI 配置文件,可查看到遊戲服務器的 IP 地址,如金庸群俠傳。

  2. 在 DOS 下使用 NETSTAT 命令顯示網絡連接等信息,一般格式為:NETSTAT [選項],各選項含義如下:

  a:顯示所有 socket,包括正在監聽的。

  c:每隔 1 秒重新顯示一遍,直到用戶中斷它。

  i:顯示所有網絡接口的信息。

  n:以網絡 IP 地址代替名稱,顯示網絡連接情形。

  r:顯示核心路由表,格式同"route -e"。

  t:顯示 TCP 協議的連接情況。

  u:顯示 UDP 協議的連接情況。

  v:顯示正在進行的工作。

  3. 怎麼分析截獲的封包:

  將 WPE 截獲的封包保存為文本文件,打開後以金庸群俠傳裏 PK 店小二客戶端發送的數據為例,發現兩次 PK 店小二的數據格式一樣但內容不同,原來是經過加密運算才在網路上傳輸的。

  一般數據包加密是異或運算,簡單說異或就是"相同為 0,不同為 1"(針對二進製按位)。如 0001 和 0010 異或,按位對比得到異或結果 0011。

  把文件一與"12"異或,文件二與"77"異或,使用"M2M 1.0 加密封包分析工具"計算,得到大部分相同的結果,說明推理正確,上麵就是需要的明文。

  每個數據包都是"F4 44"開頭,第 3 個字節是包的長度變化有規律,第 4 個字節代表指令,如向服務器請求戰鬥指令為"30",戰鬥中移動指令為"D4"等。通過截獲大量數據包,可判斷第 5 個字節為 NPC 個數,從第 7 個字節開始的 10 個字節代表一個 NPC 的信息,多一個 NPC 就多 10 個字節表示。

  四、冒充“客戶端”向“服務器”發需要的封包

  1. 使用位於客戶端和服務器端之間的代理工具,它可接收和轉發數據包,還能分析、修改或偽造封包。

  2. 查找客戶端發送的包,找到戰鬥的特征(請求戰鬥的第 1 個包,如"F4 44 1F 30",需解密後查找),找到後轉發。繼續查找客戶端發送 NPC 信息的數據包特征碼(如"DA",且前 3 個字節有"F4 44")。

  3. 確定要打的 NPC 數量,不能太大,因網金封包長度用一個字節表示,一個包可 255 字節,增加一個 NPC 要增加 10 字節,打 20 個 NPC 較合適。

  4. 分析計算客戶端原來的 NPC 代碼,增加的 NPC 代碼要加上 100000,組合成新的封包,注意修改代表包長度的字節,然後轉發到服務器。

  5. 欺騙客戶端簡單,發送根據新增 NPC 代碼構造的封包給客戶端,格式為"F4 44 12 E9 NPC 代碼 02 00 00 03 00 00 00 00 00 00",按順序連在一起發送給客戶端,客戶端就被騙過。

  五、用計算機語言寫一個單機代理(以 VB 為例)

  代碼如下:

  Private Sub Form_Load

  DaiLi.LocalPort = "1234"

  Server.RemotePort = "1234"

  Server.RemoteHost = "211.100.20.26"

  DaiLi.Listen

  End Sub

  Private Sub DaiLi_ConnectionRequest(ByVal requestID As Long)

  Server.Connect

  Client.Accept requestID

  End Sub

  Private Sub Client_DataArrival(ByVal bytesTotal As Long)

  Dim ClientToServer As Byte

  Client.GetData ClientToServer

  Server.SendData ClientToServer

  End Sub

  Private Sub Server_DataArrival(ByVal bytesTotal As Long)

  Dim ServerToClient As Byte

  Server.GetData ServerToClient

  Client.SendData ServerToClient

  End Sub

  Form_Load 過程表示程序啟動時的初始化操作,DaiLi.LocalPort 設置監聽端口,Server.RemotePort 設置向遊戲服務器連接的端口(和監聽端口相同),Server.RemoteHost 設置遊戲服務器的 IP 地址,DaiLi.Listen 監聽本地的連接請求。當客戶端向服務器發送數據時調用 Client_DataArrival 過程,可在此添加代碼修改封包後再發向服務器;當服務器發送數據給客戶端時調用 Server_DataArrival 過程,可在此添加代碼修改封包後再發給客戶端。用其他語言編寫基本原理類似,VB 本身有 MSWINSCK.OCX 控件,封裝了 WINDOWS 的網絡操作且接口簡單,推薦使用。

  六、利用底層技術接管遊戲發包(替換 WSOCK32.DLL)

  在 WINDOWS 係統中,網絡通訊任務由 WSOCK32.DLL 完成,遊戲運行時會自動調用此動態連接庫。我們可編寫自己的 WSOCK32.DLL 放到遊戲目錄下,讓遊戲調用我們的 WSOCK32.DLL 以獲取封包控製權。WSOCK32.DLL 有很多輸出函數,如 send 和 recv 用於發送和接收封包,我們可在這兩個函數的處理中加入自己的代碼,完成封包的辨認、修改及轉發等功能。

  七、分析客戶端有關資料(需懂 8086 彙編指令)

  1. 數據傳輸指令:包括通用數據傳送指令(如 MOV、MOVSX、MOVZX 等)、輸入輸出端口傳送指令、目的地址傳送指令(如 LEA、LDS、LES 等)、標誌傳送指令(如 LAHF、SAHF 等),它們在存貯器和寄存器等之間傳送數據。

  2. 算術運算指令:有加(ADD、ADC、INC 等)、減(SUB、SBB、DEC 等)、乘(MUL、IMUL 等)、除(DIV、IDIV 等)等運算指令,以及相應的 ASCII 碼調整和數據類型轉換指令。

  3. 邏輯運算指令:有與(AND)、或(OR)、異或(XOR)、取反(NOT)、測試(TEST)等運算指令,以及各種移位指令(如 SHL、SAL、SHR、SAR 等)。

  4. 串指令:如 MOVS、CMPS、SCAS、LODS、STOS 等串操作指令,還有用於控製重複操作的指令(如 REP、REPE/REPZ、REPNE/REPNZ 等)。

  通過以上步驟和工具,可對《武林外傳》遊戲進行相關操作和分析。

相關攻略
  • 創造與魔法怎麼用傳送

    在《創造與魔法》中,有幾種傳送方法,具體如下:爐石回家傳送需要時間:10秒(倒計時過程受到攻擊或者移動則被打斷)

    遊戲問答 作者:手遊零氪 時間:02-07

  • 地鐵逃生二圖怎麼玩啊

    在《地鐵逃生圖2》中,玩家需要遵循以下步驟和策略來獲得更好的遊戲體驗:進入遊戲進入地鐵逃生遊戲模式。打開地圖,觀察整體布局...

    遊戲問答 作者:手遊零氪 時間:01-06

  • 《神雕俠侶》拍攝曆程及相關信息

      《神雕俠侶》拍攝曆程及相關信息   開拍時間:2004 年 10 月 11 日   首批隊伍抵達:2004 年 10 月 07 日 7 時,《神雕俠侶》劇...

    遊戲問答 作者:手遊零氪 時間:12-28

  • 《少年西遊記》種族陣容搭配攻略

      《少年西遊記》種族選擇與陣容搭配攻略   一、種族特點對比   人族:特點為【爆發,秒殺,切後排】,優勢在於單體秒殺,傷害爆表...

    遊戲問答 作者:手遊零氪 時間:12-26

  • 爐石傳說怎麼用榮譽室賺塵

    在爐石傳說中,通過榮譽室賺取奧術之塵的方法如下:全額返塵機製榮譽室內的卡牌會按照每套卡組的最大構築量進行全額返塵。例如,一張火車...

    遊戲問答 作者:手遊零氪 時間:01-24