如題 不知道是加密方式改了還是怎樣
希望大大能提供學習資源
附上卡在伺服器選單畫面
2025/12/27更新**
server端似乎發了個header size為8 packetsize為-2147483548的怪封包 目前不知道怎麼處理
2025/12/28更新**
從 server端發 0x6a封包後(長的蠻像某種key的 我猜XD)
就讀不到 inbound 的 packet size跟header size,buffer裡的資料感覺也是有加密過的
果然還是要逆向嗎QQ 快來大大教我
2026/01/20更新**
感謝@mikodo & @ kevinlin0638 兩位大大幫助
計算過程是這樣的
假設封包長這樣
0xE8 0xFE 0xE8 0x01 0x8C 0xFE 0x00 0x80 ....
計算步驟:
1. 讀 header 前 4 bytes(little-endian):
• p[0..3] = E8 FE E8 01
• ivBytes = p[0] | (p[1] << 8) = 0xE8 | (0xFE << 8) = 0xFEE8
• xorredSize = p[2] | (p[3] << 8) = 0xE8 | (0x01 << 8) = 0x01E8
• length = xorredSize ^ ivBytes = 0x01E8 ^ 0xFEE8 = 0xFF00
2. length == 0xFF00 → big header,讀取接下來 4 bytes 當 extended length(little-endian)並 XOR ivBytes:
• p[4..7] = 8C FE 00 80 → BitConverter.ToInt32 = 0x8000FE8C
• extended = 0x8000FE8C ^ 0x0000FEE8 = 0x80000064
3. extended 的高位(MSB)為 1(0x80000064),這裡把高位當旗標,需要清除以得到實際長度:
• 實際長度 = extended & 0x7FFFFFFF = 0x00000064 = 100
(因此 packetSize = 100)
4. 取出 packet 的前 2 bytes(在解密/移 header 後的 packetBuffer)為 opcode(小端):
• packetBuffer[0..1] = C1 02 → opcode = 0x02C1
這樣就讀的到6a後接下來的封包了
楓鯊載點(含source)
註冊並回覆,就能免費看到這裡的內容(例如下載連結) 登錄註冊會員
|