InPowerS.Net

 找回密碼
 註冊
搜索
查看: 3679|回復: 0

[轉貼]VB 從零開始編外掛(七)

[複製鏈接]
發表於 2008-12-25 22:02:44 | 顯示全部樓層 |閱讀模式
前天晚上我跟封包玩了一晚上,因才開始(第一次跟封包)說一下我一晚上的發現吧
我是直接用WPE截取的,因為金山遊戲本身都有截取封包的保護措施(就像MM所說),直接用WPE截取我是截取不到的,後來用Ollydbg調試的時候才截取的到。
經過前面的準備,封報的明文準備已經OK,準備進行加密,加密方式是取一個4位元組的數位,對封包進行Xor運算,運算完畢後就直接發送出去,我核對過用WPE截取封包的資料,和我看到的運算結果完全一致,這說明只要用那個4位元組的數位對封包進行反Xor運算就可以得到明文的封包。
其實說白了那個4位元組的數位就是每次加密的密匙,也就是伺服器認可的,這個4位元組怎麼得出的我就沒跟了,暫時只發現只要不更換場景,4位元組密匙不會更變。
相同道理,服務返回的資訊也是經過4位元組Xor運算處理了的,用戶端解密時候取服務端4位元組密匙對封包進行解密就可以得到明文封包。
大體說下封神封包加密解密流程
Send:
1,製造明文封包
2,取4位元組Send密匙
3,用4位元組密匙對封包進行Xor運算(保留前2位元),最後不足4位元組進行單字節運算。
4,發送。
Revc:
1,收到封包
2,取4位元組Revc密匙
3,用4位元組密匙對封包進行Xor運算(保留前2位元),最後不足4位元組進行單字節運算。
4,對明文封包進行分析

------------------------------------------------------------------------------------
以上的方法比較累人!下面說說本地製作吧(既是用大家熟悉的FPE等軟體)
製作輔助外掛(自動加血,自動加藍,免負重等等)
HP的位址是不固定的,我使用金山遊俠先找出當前的那個位址,
然後使用softice對該位址設置中斷點,softice應該會立刻斷住,
你會看見MOV DWORD PTR DS:[EAX+ECX*8+EB4],EDI,
在用戶端中,位置是0x4B2C74,
你可以修改遊戲的進程,
把MOV DWORD PTR DS:[EAX+ECX*8+EB4],
EDI改成一個E9 XX XX XX XX 90 90,
JMP到進程中.rsrc和.data之間的空餘位址,
把(XX XX XX XX) + 0x4B2C74 + 5處的代碼修改成MOV Y, EDI,
下一條做原來的MOV DWORD PTR DS:[EAX+ECX*8+EB4],EDI,
再來個E9 ZZ ZZ ZZ ZZ,
設置好ZZ ZZ ZZ ZZ使其再跳到原來DWORD PTR DS:[EAX+ECX*8+EB4],
EDI的下一句,就是0x4B2C7B處,
這樣HP的位址就固定下來了,只要看Y就知道HP了。
------------------------------------------------------------------------------------
下麵說說客服端的破解(小試牛刀!)有興趣的朋友可以製作一個DLL
來實現加血鎖定血量!
.text:004E8EF0 sub_4E8EF0     proc near           
.text:004E8EF0
.text:004E8EF0 arg_0       = dword ptr 4
.text:004E8EF0 arg_4       = dword ptr 8
.text:004E8EF0 arg_8       = dword ptr 0Ch
.text:004E8EF0
.text:004E8EF0           mov   ecx, [esp+arg_0] ; 可能是長度LEN位址
.text:004E8EF4           push   ebx
.text:004E8EF5           mov   eax, [esp+4+arg_4] ; 緩存地址
.text:004E8EF9           push   esi
.text:004E8EFA           mov   esi, ecx
.text:004E8EFC           push   edi
.text:004E8EFD           mov   edi, [esp+0Ch+arg_8] ; 加密KEY地址
.text:004E8F01           and   esi, 3           ;相當於緩存長度除以4的餘數
.text:004E8F04           shr   ecx, 2           ;相當於緩存長度除以4的商
.text:004E8F07           mov   edx, [edi]       ;把加密KEY值放進edx
.text:004E8F09           mov   ebx, ecx         ;
.text:004E8F0B           dec   ecx             ;
.text:004E8F0C           test   ebx, ebx         ;
.text:004E8F0E           jbe   short loc_4E8F1E   ;判斷跳轉
.text:004E8F10           inc   ecx             ;
.text:004E8F11
.text:004E8F11 loc_4E8F11:                  
.text:004E8F11           mov   ebx, [eax]
.text:004E8F13           add   eax, 4
.text:004E8F16           xor   ebx, edx       ;異或運算,EDX=KEY的值,核心運算
.text:004E8F18           dec   ecx
.text:004E8F19           mov   [eax-4], ebx
.text:004E8F1C           jnz   short loc_4E8F11 ;相當於FOR迴圈運算
.text:004E8F1E
.text:004E8F1E loc_4E8F1E:                  
.text:004E8F1E           mov   ecx, esi
.text:004E8F20           dec   esi
.text:004E8F21           test   ecx, ecx
.text:004E8F23           jbe   short loc_4E8F35
.text:004E8F25           lea   ecx, [esi+1]
.text:004E8F28
.text:004E8F28 loc_4E8F28:                  
.text:004E8F28           mov   bl, [eax]   
.text:004E8F2A           xor   bl, dl       ;異或運算
.text:004E8F2C           mov   [eax], bl
.text:004E8F2E           inc   eax
.text:004E8F2F           shr   edx, 8
.text:004E8F32           dec   ecx
.text:004E8F33           jnz   short loc_4E8F28;相當於FOR迴圈運算
.text:004E8F35
.text:004E8F35 loc_4E8F35:                     KEY付值運算;
.text:004E8F35           mov   eax, [edi]
.text:004E8F37           mov   edx, eax
.text:004E8F39           shl   edx, 5
.text:004E8F3C           sub   edx, eax
.text:004E8F3E           mov   eax, 1
.text:004E8F43           add   edx, 8088405h
.text:004E8F49           mov   [edi], edx     KEY付值
.text:004E8F4B           pop   edi
.text:004E8F4C           pop   esi
.text:004E8F4D           pop   ebx
.text:004E8F4E           retn
.text:004E8F4E sub_4E8EF0     endp
------------------------------------------------------------------------------------
今天就到這裡
------------------------------------------------------------------------------------
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

小黑屋|Archiver|手機版|InPowerS.Net

GMT+8, 2024-3-28 21:34

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回復 返回頂部 返回列表