[雜談] 2025-08-04 - 隨便聊
最近雜談比較多
一開始因為剛接觸 MSW,暫時沒什麼可以分享的
後來則是興趣在嘗試檔案解析、封包解析
這方面的事情無法公開細節,所以沒辦法分寫,但歷程倒是可以寫一點
檔案解析
以前因為很常寫楓谷的檔案解析 (感謝網路上大佬的開源) ,算是累積了一些感覺
只要檔案不大,結構具規律性,而且沒有加密,就比較好靠猜去解析一份不大的檔案
幾周前時候有做過檔案解析,因為檔案非常單純,沒有加密,只依靠對內容的理解程度,不用幾天整份檔案就解得差不多了
解出當下我非常的興奮,畢竟這算是在幾乎沒有資源的情況下,靠一己之力解析一份檔案
不過大概是因為檔案的結構實在太過單純,加上沒有加密,才有機會讓我解出來
解析檔案很吃對資料結構的熟悉度以及經驗
最好解的大概就是字串了,其次是一些數值,最後是各種結構體
一般來說,要能夠完美的解析檔案,還是需要透過一些反編譯、反組譯的手段去分析讀檔程式
不是每個程式都赤裸裸的,沒有經過編碼、壓縮、加密
但程式不一定允許你做動態分析,甚至有些會加殼,考慮時間成本,人工分析依舊有必要
除了經驗以外,運氣也是一種實力,有時候大膽的猜測可以大幅加速解析進度
不過上面說的都是針對沒有加密的情況,有加密情況就不一樣了
我猜大概還是透過動態解析去抓取加密方式跟祕鑰,但結構的部份還是要靠人工分析 (這些部份通常散落在各個函式庫或主程式的某處,透過反組譯的方式解析難度很高)
WireShark 解析封包
因為在 Github 上看到有人透過擷取遊戲封包來做一些便利的服務,所以我想說也來解析看看
說實話我一看到可以用純文字抓取封包內容,就在想誰心臟這麼大,竟然敢用明文傳遞遊戲內的資料…
解析封包的方式其實就跟檔案解析差不多,但在遊戲內是執行透過特定行為來抓取特定行為的封包,固定要解析的內容做解析
因為包含遊戲的邏輯,解析時更容易透過像是技能 ID、血量、點數之類明確的值去定位
通常遊戲封包都會加一些隨機因素並加密,所以並不好解析
需要透過反組譯、動態分析去找到祕鑰來解密封包,後面再做人工分析比較快,比起檔案難度高上不少
解析時使用的是 Wireshark,這還是我第一次在學校以外的地方碰這玩意兒
原本只單靠 TCP 的 Data 區塊做分析,後來覺得麻煩,開始寫 Dissector 跟 TCP 封包合併
不得不說,這玩意兒還真是難用… ,當初研究了 2 天才大概知道怎麼寫
官方的 Lua 文件資料太少了,但純 C 有些功能又對不太上
只不過可惜,後期遊戲更新把 header 跟部份封包做了加密,我就沒辦法繼續解析了…
工作
平常工作的內容我覺得沒有什麼好分享的部份
現在工作上做的是 AI 應用,但說實話,還是苦工居多
工作內容並不是純寫 Code,還要發 Support Ticket 去問問題,偶爾公司的基礎設施會搞人,公司的政策有時候會導致要申請一堆有的沒的東西,心挺累的
行政作業的處理時間雖然沒有大於開發時間,但夾雜在開發週期內還是非常煩人
開發 AI 應用的部份也很無聊
除了 AI 應用的本質都是圍繞在 Prompt 上以外
再來就是因為時程壓力,導致該做的分析流程、服務架構、調度策略都很難排入
這些東西是蠻有趣的,但能用的時間太少了…
有關 MSW
前些日子本來想要在 MSW 上做開發,礙於官方作為以及玩家群體的素質,加上我也沒有明確的目標,後來就停止了
雖然上一篇才剛說停止,結果三個禮拜後,我又想回鍋了🙃
雖然中文開發社群還是一樣冷清,但只要看到開始有人發問,甚至是發布遊戲開發進度,還是讓我開心
官方也在全球開放後三個月後久違的進行了更新,能夠在 VSCode 上 Debug 真的是太棒了!
而紙娃娃的問題,目前依舊沒有得到有效的改善
社群上看到有人寫了碎圖機增加盜圖成本,算是目前最有效的防盜工具了
依我目前的感覺,盜圖社群的能力都不高,所以光這樣就可以一定程度上避免盜圖 (只要時間成本低於收益,仍然有被盜的可能)
目前看起來,官方還是有在做事,不過速度非常的緩慢,不知道紙娃娃的問題什麼時候才會處理
也因為近期沒什麼太大的事件發生,才讓我萌生想要回鍋的念頭
但大概只會寫基礎設施,我沒有設計遊戲的天份 🙃
有關 Blog
最近真的想不到有什麼東西可以寫
雖然下班之後還是在寫程式,但近期做的事情都沒辦法公開細節
到目前為止連續寫了四篇雜談,讓我心裡覺得怪怪的
我自己還是會把這個 Blog 當作一個筆記,所以寫雜談的時候都覺得內容有點水 XD
如果要等到有內容產出,那可能長達1~2個月,甚至半年沒更新 (因為我很懶)
但如果是以特定週期更新,但都是雜談的話,又感覺太水
目前還是打算以特定週期發布新文章,只不過時間可能會再拉長一點
主要是近期我想不到要寫什麼