aps32777

TMS 276 MapleShark (含檔案和修復歷程)

發表於 2025-12-27 02:05:36
aps32777 發表於 2025-12-27 02:05:36 | 顯示全部樓層 |閱讀模式
如題 不知道是加密方式改了還是怎樣
希望大大能提供學習資源
附上卡在伺服器選單畫面

2025/12/27更新**
server端似乎發了個header size為8 packetsize為-2147483548的怪封包 目前不知道怎麼處理
螢幕擷取畫面 2025-12-27 165848.png

2025/12/28更新**
從 server端發 0x6a封包後(長的蠻像某種key的 我猜XD)
就讀不到 inbound 的 packet size跟header size,buffer裡的資料感覺也是有加密過的
果然還是要逆向嗎QQ 快來大大教我
螢幕擷取畫面 2025-12-28 223713.png

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)

註冊並回覆,就能免費看到這裡的內容(例如下載連結)

註冊會員






瀏覽 11663 回復 95

您需要登錄後才可以回帖 登錄 | 註冊會員

:学习一下呢 2026-09-30 15:59回復
:感謝 2026-09-16 05:23回復
:牛逼 2026-09-15 22:50回復
:大佬帶帶我 2026-08-24 10:48回復
:感謝大大分享 2026-08-17 18:47回復
:12312313123123 2026-08-17 00:39回復
:感谢分享 2026-08-07 11:52回復
:感謝大大分享~~ 2026-08-05 21:38回復
:oh good 2026-08-04 14:23回復
:趕緊來學習 2026-07-28 21:57回復
返回頂部