パズドラAPI解析
一見、ゲームシャークに比べてスクリプトが組みづらいように感じるゴーストルーター。
でも実際はそんなことなくて、パズドラサーバーに投げるリクエストと、返ってくるレスポンスの仕様さえ分かれば、実はスクリプトを組むのは簡単。
既存のスクリプト使っていればいいやと思っていたのですが、友人がスクリプトを自作したいとしつこいのでw、元SEの血が騒ぎ、リクエスト・レスポンスの解析だけしてみました。
ゴーストルーターにもモニター機能は付いているけれど、リクエストは全て?表示してくれるのに、なぜかレスポンスは一部しか表示してくれない。多分今後のアップデートで全て表示されるようになると思うので(難しい事とも思えないし)、それを待ってもいいと思います。
このページでは、「今すぐスクリプト作りたい!」という方向けに、通信をモニタリングして、リクエスト・レスポンスを解析する方法を紹介します。
(ここまで読んで「何言ってるのか分からん」「もっと分かりやすく書いてくれ」と感じる人は、諦めた方がいいかもわからんです。)
解析そのものは非常に簡単に出来るのですが、スクリプトを作成して使用するのは不正行為に当たりますし、実際に不正行為は行っていなくても、解析に当たって不自然な通信を繰り返す事で垢BANされるかもしれません。その辺りをしっかり理解して、自己責任で行って下さい。
Wiresharkのインストール
通信の解析には、Wiresharkというパケット解析ソフトを使います。ここにもsharkという名前が使われているのは何かの縁でしょうかw
Wiresharkは、こちらからダウンロードできます→Wiresharkプロジェクト
適当に進めていればインストールできます。Wiresharkをインストールしたら、起動しましょう。
左上の緑▲(鮫の背びれ?)アイコンをクリックすると、パソコンと外部とのやりとりを全てモニタリングしてくれます。
隣の赤い■をクリックするとモニタリングが止まります。
パズドラサーバーとの通信を記録
さて、いよいよパズドラサーバーとの通信を解析していきましょう。ここからは読むだけではわかりづらいので、実際に一緒に操作した方が分かりやすいと思います。
ゴーストルーターを起動し、パズドラを起動。スクリプトはチェック不要ですが、必ずゴーストルーター経由で接続して下さい。
接続できたら、サーバーとの通信が発生する行為(ダンジョンに入る、合成する、売却する、など)の一歩手前で止めておきます。
この状態で、Wiresharkを起動し、緑の背びれボタンを押して解析を開始した後、実際に通信が発生する行為(今回はモンスター売却)を行います。
すると、発生した通信をWiresharkが拾ってくれますので、Wiresharkの停止ボタンを押した後に解析をしていきます。
パズドラサーバーとの通信を解析
まず、Filterのところに「http」を入力、エンター。http通信のみを表示するようにします。
Sourceに表示されている数字は、通信の送信元のIP、Destinationは通信を送信する先のIPです。パズドラサーバーはIPが複数あるようなので、IPでフィルタリングは難しそうです。
解析ボタンを押してすぐに通信、終わった直後に停止を押せばログの数は少ないので楽だと思いますが、Infoのところに「gungho.jp/api.php」がある行を探します。
これが、パズドラサーバーへのリクエストとなります。APIのアドレスは共通ですが、売却の場合は、引数actionが「action=sell_user_cards」となるようですね。
リクエストを見つけたら、レスポンスを探します。他の通信が紛れていなければ、そのすぐ後にある「HTTP/1.1 200 OK」となっているものがレスポンスになりますので、その行をクリックします。
真ん中のウインドウに詳細が表示されるので、Line-based~~の左にある+をクリックして開きます。
すると、一番下に「{“res”:0,~~~~」と、パズドラサーバーからのレスポンス内容が表示されます。
あとは、それぞれの値が何を指しているかを調べれば、解析完了。ぶっちゃけ、暗号化されているわけでもなく単純な変数名ばかりなので、すぐに解析できます。
さすがにここでどの変数が何を表しているかとかは紹介しませんので悪しからず。
個人的な意見ですが・・・。
前職ではWEBシステムを担当していたのですが、決済や予約といった個人情報を取り扱うという事もあって超暗号化して解読できないようガチガチに作っていました。
まあ所詮ゲームだからということもありますが、パズドラは稼ぎ頭のアプリなわけだし、ガンホーはもうちょい解析しづらい仕様にした方がいいんじゃないかと思います。
最近のコメント