BeanfunLogin 1.9.4 改版閒聊

這篇文章不是以一個專案維護者或開發者的角度所寫,而是我個人的閒聊和分析過程。

開發遊戲輔助工具相對於其他專案而言,能維持下去的熱忱通常是來自於對遊戲本身。從回鍋玩楓之谷,到接觸這個程式,進而成為開發者的一部份,慢慢產生了些許對專案的責任心。但是有一些因素不得不讓我逐漸減少對遊戲的投入程度。

必須開宗明義說聲抱歉的是,當我下定決心而要徹底遠離的時候,可能也就是專案再度變成孤兒的時候。

這次的回來,從加入老朋友的公會,也認識了新朋友;在遊戲裡認識女生,演變成現實交往,中間眼見公會的成員慢慢離去,或多或少也跟我或她有關係。分手後聽到好幾個朋友陸續告訴我的真相,心裡很感謝他們至少不是從此恩斷義絕,老死不相往來,也沒挑我最忙的時候,以免打擊到我。但也讓我覺得對於一個努力在外面講我有多糟糕、分手一個月後就可以跟別人在一起的XX,實在是該醒了。上線想到這個人就有股背叛感與噁心感襲來,同時也對老朋友的公會幾乎鳥獸散,感到十分抱歉,因此現在幾乎不太開遊戲了。再加上五月中開始,參加同學的創業計畫,獨立開發公司所需要的業務系統,幾乎都把時間放在這邊,請大家體諒我對於專案的維護日漸廢弛。

著手改版的緣由,從一個月前就開始有聽到變慢的聲音,當初認為是橘子的伺服器延遲,加上我自己也沒有玩遊戲的動力,就沒把尋找問題來源這件事放在心上。加上市面上開始看到有人開發相同功能的程式,心想終於有後繼有人..可以卸下這個擔子了,如果他們解決這個問題,BFLogin就能功成身退了呢。這幾天陸續有人來信詢問取得密碼延遲的問題,加上版上已經有好幾篇文章抱怨,改變了我起初的看法,最後在某浪人旅者三天兩頭吵我一次,以及他證明從網頁開啟相當快速後…我開始認真研究到底發生甚麼事。最後花了一天時間解決這個問題。

網頁端的流程使用Chrome的Dev Tools可以很簡單的觀察出與BFLogin並無差異,而延遲的地方透過Debug模式在執行時中斷,發現在最後一個HTTP請求非常的慢,這部分就涉及官方Process啟動流程。

中間使用了一些靜態分析和動態分析的方法來釐清問題,不過找到最後發現並沒有幫助,因為…我默默的又中了一次指導教授的槍,老是把問題想的太困難。

現代的程式在進行網路通訊,且以HTTP層為主時,通常使用SSL加密避免被破解,但是這支程式過於老舊,還沒有這個觀念,所以開啟wireshark進行封包分析就可以看出在網頁啟動遊戲之後的後續流程。經由wireshark撈出來的封包將程式進行更新,便可以完成這次改版。也驗證了bananaapple通靈王般的猜測:「Inndy應該只是分析封包找的吧。」 Orz

目前還感覺不出來橘子有蓄意要阻止玩家使用BFLogin來登入,如果未來橘子有這個動作,我想我個人會放棄繼續更新。目前規劃六月底會到公司報到,就會轉住在台北開始上班了,如果後續需要更新,還不知道能不能挪出時間來維護,或是有厲害的人蹦出來接手,這部分就看會如何發展了。