如何通過WPE包修改網遊數據?
首先,我們將WPE截獲的數據包保存為文本文件,然後打開它。這時我們會看到以下數據(這裏以傳說中PK archer客戶端發送的數據為例進行說明):第壹個文件:SEND-& gt;0000 E6 56 0D 22 7E 6B E4 17 13 13 12 13 12 13 67 1b send->;0010 17 12 DD 34 12 12 12 17 12 0E 12 12 12 12 12 12 12 9BSEND->;0000 E6 56 1E f 1 29 06 17 12 3B 0E 17 1a send->;0000 E6 56 1B C0 68 12 12 12 5a send->0000 E6 56 02 C8 13 C9 7E 6B E4 17 10 35 27 13 12 12 send->;0000 E6 56 17 C9 12第二個文件:SEND->0000 83 33 68 47 1B 0E 81 72 76 76 77 76 76 02 7 esend->0010 72 77 07 1C 77 77 77 77 72 77 72 72 77 77 6 dsend->0000 83 33 7B 94 4C 63 72 77 5E 6B 72 F3 send->0000 83 33 7E A5 21 77 77 3f send->0000 83 33 67 AD 76 CF 1B 0E 81 72 75 50 42 76 77 77 send->0000 83 33 72 AC 77我們發現兩個PK弓箭手的數據格式是壹樣的,只是內容不同。我們是PK的NPC。為什麽會不壹樣?原來傳說中的數據包是經過加密運算後在網絡上傳輸的,所以我們面臨的問題是如何將密文解密成明文,然後進行分析。因為壹般的數據包加密都是異或運算,所以我們先說說什麽是異或。簡單來說,XOR就是“同為0,不同為1”(這是針對二進制逐位的)。比如0001和0010異或,我們逐位比較,異或結果是0011,計算方法是:0065438。那麽異或結果的第四位是0,0,0001的第三位是0,0,0010的第三位是0,按照“同為0,不同為1”的原則,異或結果的第三位是0,0010。0001的1位是1,0010的1位是0,所以異或結果的1位得到1,也就是0011。異或運算以後會遇到很多,可以先熟悉壹下,對分析很有幫助。我們繼續看上面兩個文件。按照常理,數據包裏的數據不會全是有價值的。遊戲開發的時候會預留壹些字節空間給以後的擴展,也就是說數據包裏會有壹些“00”字節。觀察以上文件,會發現第壹檔有很多“12”,第二檔有很多“77”。這是不是意味著我們說的是“00”?推理到這裏,我們開始行動吧!我們將第壹個文件與“12”進行異或運算,將第二個文件與“77”進行異或運算。當然,手工計算很麻煩。我們用“M2M 1.0加密包分析工具”來計算就方便多了。得到如下結果:第壹個文件:1 SEND-& gt;0000 F4 44 1F 30 6C 79 F6 05 01 01 00 01 00 01 75 09 send->;0010 05 00 CF 26 00 00 00 00 05 00 1C 00 00 00 00 892發送->0000 F4 44 0C E3 3B 13 05 00 29 1C 05 083發送->;0000 F4 44 09 D2 7A 00 00 00 484發送->;0000 F4 44 10 DA 01 DB 6C 79 F6 05 02 27 35 01 00 005發送->;0000 f44 05db 00 second file:1 SEND-& gt;0000 F4 44 1F 30 6C 79 F6 05 01 01 00 01 00 01 75 09 send->;0010 05 00 70 6B 00 00 00 00 00 05 00 05 00 00 00 1 a2發送->;0000 F4 44 0C E3 3B 13 05 00 29 1C 05 843發送->;0000 F4 44 09 D2 56 00 00 00 484發送->;0000 F4 44 10 DA 01 B8 6C 79 F6 05 02 27 35 01 00 005發送->;0000f44 05db00 Ha,現在兩個文件大部分是壹樣的,說明我們的推理是正確的,以上就是我們需要的明文!接下來就是找出壹些關鍵字節的含義,這就需要截取大量的數據進行分析。首先,我們會發現每個包都是以“F4 44”開頭的,第三個字節是變化的,但是變化是很有規律的。讓我們來看看每個包的長度。妳發現什麽了嗎?對了,第三個字節是包的長度!通過攔截大量的數據包,我們判斷第四個字節代表壹個指令,也就是客戶端告訴服務器做什麽。例如,向服務器請求的戰鬥指令是“30”,而戰鬥中的移動指令是“D4”。接下來需要分析第壹個包“F4 44 65438+f 0306 c 79 f 605 01 01 0001 75 09 0500 CF 26 00000000 005 000 1 000 0000089”。應該有壹個NPC通知服務器妳的PK,那我們先找找這個店員的代碼在哪裏。讓我們來PK壹把黑道派-& gt;0000 F4 44 1F 30 D4 75 F6 05 01 00 01 00 01 00 01 75 09 send->;001005008 a 19000001100200000 c0根據常識分析,雖然遊戲中NPC的種類不會超過65535(FFFF),但是他們在開發時不會把自己限制在單詞的範圍內,不利於遊戲的擴展,所以我們會用雙字來看。通過對比“Archer”和“Mob”兩個包,我們重點關註“6C 79 F6 05”和“CF 26 00 00”。比較容易,但是不能太慢,呵呵。