#艦これ E-4 轟沈バグ騒ぎの技術的解釈を試みる
昨日、バグのせいで轟沈したと騒ぎになった動画がありましたが、今朝運営から「不正ツールの使用者」だと発表され、思ったより早く落着を得ました。炎上させたい人はもうしばらく騒げるでしょうが、一般ユーザーが気にすることはもうないでしょう。
ただ面白い事件ではあったので、何が起きたのか推測できる範囲で頑張ってみましょう。自分は独自リクエストを作って叩くような怖いことはしたことないので、あくまでも正常動作時の挙動から推測できる範囲で、ですが。
事実
ゲーム内の現象を解明しよう
ゲームデータは全てサーバー内にあり、サーバー内で計算されます。手元でいくらメモリ上の数値を書き換えようと、サーバーのデータには影響しません。何かしらの送信を行うことによってサーバー上で計算が行われます。そして、耐久値が減る計算が発生するのは、戦闘以外にありません。ボス陣形選択前に、公式クライアント以外の何かによって、戦闘開始APIが叩かれています。(この点については、「おそらく」と弱気にしなくても良いでしょう)
ニコ生のフォントは読みづらいけれども、経験値は余計に増えていないので、戦闘終了は叩いていないようです。戦闘開始APIだけ叩いた状態というのは、ブラウザを閉じたときと同様に、損害は発生しますが経験値が入らないはずで、この動画の挙動と一致します。
運営がすぐに断定的な表現で発表したのも、明らかに不正な通信がサーバー側に来ていたからでしょう。ユーザーを不正扱いするのは、よほど確定した状況でないとありえません。誤検挙による運営への信頼度低下はとてつもなく大きくなるので、基本的にはよほど目立たない限り、疑わしきは罰せず、のはずです。
どうして起きたのか考えよう
生主は、「艦これブラウザ」しか使用していないと言っています。
- https://chrome.google.com/webstore/detail/%E8%89%A6%E3%81%93%E3%82%8C%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6/fpnnnfceocfkfebmngdmeidiaedahflb?hl=ja*2
艦これの情報補助系ツールは、ただの透過的な(通信内容を一切改変しない)Proxyに情報表示機能がついているものが普通だと思うのですが、なんとこの「艦これブラウザ」は独自にリクエストを発行するツールだったようで。
これは、公式クライアント以外から独自に通信を作り出すわけですから、真っ黒な不正クライアントです。
ただし。
情報を最新にするために取得系のリクエストを追加発行するとしても、戦闘系のAPIを叩く必要がありません。明らかに副作用を与えるAPIな上に、装備・編成・疲労・パラメーターのどの習得の役にも立ちません。普通は艦娘一覧など、相当のAPIで取るでしょう?
22000以上のダウンロード数があるようなので、もし戦闘APIを叩くようなことがあれば、もっとたくさん悲劇が起きていておかしくない。不正ツールに相当するのは間違いないけれども、事件の原因かどうかはまた別なのは忘れてはいけません。
艦これブラウザについて追記(2015/02/11))
「艦これブラウザ」で問題なのはこのへんかな。ツール側からXHRで艦これのAPIを叩いちゃってる。http://****/kcsapi/api_get_member/*** っていうURLがステータス取得API。 pic.twitter.com/28Un8wq9Um
— すみかわ (@smkw) 2015, 2月 10
api_get_memberがソースに固定文字列で入っているとなると、これがapi_req_sortie/battle(戦闘API)を叩く可能性は極めて低いのでは?