大家好,相信大家都知道這周推出了個很棒的道具連結系統!
這樣大家分享自身裝備更方便拉!
但是…因為廣播也可以用這系統,這次更新卻也讓我前陣子架設的
平台網站遇到點問題…
因此我必須針對這套系統的網路封包做分析,才能讓我的網站繼續運作。
接下來就來告訴各位客官,它(道具連結系統)的運作方式吧~
聲明
- 研究這無聊的東西主因是為了我平台的轉碼功能…不然無法掩飾人類眼睛看得懂格式
- 目前我還沒研究物品ID是否轉換是相同的62進制…
- 這只會影響物品連結系統貼出的道具內容,並不會實際影響你口袋中的物品
- 最後,這系統應該是官方伺服器端控制其他玩家收到的封包內容,而不是玩家自己定義。
第一步驟 - 觀察
首先當然要先觀察,打開Wireshark並且開始擷取網路封包吧。
接著我就在遊戲中嘗試使用 +7 肉搏斧 [2] 當作範例,可以發現如下圖:
從上圖右邊的網路封包內容可以看到,阿~原來只是使用ascii碼而已,而且還很簡單的區隔欄位
我們再進一步分析+7 肉搏斧 [2] 的ascii吧,如下圖所示:
我們可以看到,封包部分只是簡單的Label與幾個欄位組成:
- 0000y1mb→肉搏斧
- %07→升級+7
- 第一段00→無插卡
- 第二段00→無插卡
第二步驟 - 仿造
根據第一步驟發現了規律,那麼假設我們要把這把斧頭變成升級+999該怎麼辦呢?
根據我的觀察,該系統如下:
ascii為0~f時,數值跟16進位相同。
ascii為g~z時,數值為與f的位移量 + 16。
ascii為A~Z時,數值為與A的位移量+z的值。
用人類的10進位數學來算,假設我們正常是使用
[0 1 2 3 4 5 6 7 8 9 10 11 12 13 ....]
而此系統的進位法則是使用
[0 1 2 3 .... 9 a b c d e f g ... z A B C D E F .... Z]
如果我們人類是10進制,那這系統就是62進制。
那麼…+999 是多少呢?
我們因式分解一下999 = 16 x 62 + 7 x 1,所以999在這套系統的進制下就是g7
所以只要將步驟一的升級部分從%07改成%g7就可以拉!如下圖
是不是很簡單呢!
如果想要假裝插上阿吾諾耶卡片呢?由於阿吾諾耶的代號是1a0,只要照下圖改即可
結論
感謝各位收看,簡單說就是分享一下今天的研究進度…
這系統竟然是客戶端可以控制輸出內容,十足出乎我意料…怎麼會這樣設計呢?
怎麼可以做出這種讓客戶端定義顯示內容的系統呢?
印象中這功能在國外版本的RO應該有一段時間了,難道只有台灣版本有這問題嗎?
最後,為什麼我的 +8 雙阿吾諾耶卡的紫刀是不雅內容阿!編碼衝突到了阿!重力社大哥