注意

  • この記事に書かれいてる内容はチート行為・不正行為に該当する可能性が高いため、この記事で得られた情報を悪用するのはお控えください
  • この記事に書かれている内容は推測です。検証などは行っていません。(不正行為と判断されるため)
  • この記事に使用されている艦これの不具合は既に修正済みのようです。(検証していないため真偽不明)

j416氏の動画

この記事は↑この動画で行われている手法について、メールでご質問を頂き、それに答えた時の内容を再編集したものです。

艦これはブラウザゲームなので、ゲームの処理は基本的に艦これのサーバが行い、
ブラウザはサーバから送られてきたデータを表示しています。
そして、ユーザーが何か入力した場合も、やはり入力値を艦これのサーバに送信して
サーバ側の返答をそのまま表示する仕組みになっています。

ユーザーがハラハラしながら戦闘を見守っているつもりでも、
実は、戦闘開始時にこちらの編成などをサーバに送信すると、瞬時に
戦闘の結果が返信されて、ブラウザでそれを演出を付けて再生している
に過ぎません。

ブラウザゲームは頻繁にサーバと通信することでゲームを進行します。

通常の通信では、ブラウザ側が正しく動作することを前提としているので
不整合は起きないように設計されています。
例えば、ある船をドックに入れたまま出撃しようとすると、ブラウザ側で
出撃ボタンが押せなくなるようになっています。

当然ですね。

しかし、特殊な方法(具体的な方法は割愛)を用いることで、
このようなゲーム仕様上の制限を無視することが可能になっています。
一つの方法は、ブラウザから送信されるはずのデータを一旦横取りして、
通信内容を改竄したあと、サーバに再送する といった手法です。

Fidderなどのツールを使うことで
簡単に実現することができます。

この方法を使えば、
ブラウザは正しい艦隊を出撃させたつもりでも実際にサーバに送信される艦隊セットは、
実際はドック入り中のIDを指定する なんていうことも可能です。

艦これのサーバは受け取ったIDを信じて戦力計算を行って演算結果を
返してくるので、戦闘が成立してしまうことになります。

実例>http://togetter.com/li/593141

さて、本題です。

j416氏の敵を見方にしてしまうハックですが、
実際に試すことはできませんし、恐らくこの度のアップデートで防がれて
しまっていると思いますので、推測することしかできません。

[状況]
・敵IDが処理艦リストに入っている
・ゲームの状態は開始直後に近い(遠征や資材等)

この当たりをみると、
恐らく使用したのは 初期キャラクタ選択 の穴だと思われます。

初期キャラクタ選択の際、表示された5人の初期艦娘の中から好みの1人を
選択するようになっています。
選択した際の通信は

POST /kcsapi/api_req_init/firstship
- api_token: token
- api_verno: 1
- api_ship_id: ship_id

このように決まっています。
token は ユーザーを識別するためのチケットのような働きをする文字列で
ログイン時に発行されます。
verno はおそらく使用しません。
最後の ship_id が初期艦娘として指定したい艦娘のid を設定します。

通常はここにブラウザで選択した決められた艦娘のIDが代入されて送信されるはずです。
しかし前述のような改竄を行うことで、任意のIDを初期所持艦としてセットすることが
可能になっていたのではないかと思います。

ship_id は
1〜499までが艦娘
500〜が深海棲艦
900〜がイベント時の艦娘
となっており、使い分けがされているものの同じ ship_id の中で管理されているので
問題なく指定できます。

コメントを追加する