最上層のネットワークプロトコルを理解/リバースエンジニアリングするための優れたツール

StackOverflow https://stackoverflow.com/questions/1437856

  •  08-07-2019
  •  | 
  •  

質問

手元には興味深い問題があります。プレーヤーのアクションをサーバーに送信するクライアントアプリケーション(ブラウザーではなく)を介してロールプレイングMMOGを実行し、サーバーにパケットを送り返すことですべてのプレーヤーを同期させます。

現在、ゲームはTCP / IPを介した最上層プロトコルを使用してデータを送信します。ただし、wiresharkは使用されているプロトコルを認識せず、TCPヘッダー以外のすべてをダンプとして表示します。

さらに、このダンプにはプレーンテキスト文字列はありません。ゲームにはチャット機能がありますが、送信されるチャット文字列はこのダンプではプレーンテキストとしてどこにも表示されません。

私のタスクは、プロトコルを少しリバースエンジニアリングして、パケットに含まれるデータに関する非常に基本的なものを見つけることです。

チャット文字列がプレーンテキストとして表示されない理由と、標準のトップレベルプロトコルが使用されている可能性があるかどうかを誰かが知っていますか?

また、ダンプからデータを取得するのに役立つツールはありますか?

役に立ちましたか?

解決

暗号化されている場合、する可能性があります(実際、正しく処理すれば100%の可能性があります):キーはコンピュータのどこかに存在する必要があります。好きなデバッガーをポップして開き、ソケットから入ってくるデータ(エラー、100バイト程度)を監視し、そのデータにウォッチポイントを設定し、アクセスするもののスタックトレースを見てくださいそれ。あなたが本当に幸運なら、あなたはそれが適所で解読されるのを見るかもしれません。そうでない場合は、スタックトレース(運が良ければ)を調べるか、標準の暗号化アルゴリズムを使用しているという事実(理論上のセキュリティの観点からではなくバカになる)を拾うでしょう。 IV / S-boxプロファイラーの1つを使用します(アカデミックなプロファイラーは避けてください。ほとんどの場合、多くのトラブルなしに動作しません)。多くの暗号化アルゴリズムは、「標準データ」のブロックを使用します。検出できる(これらはIV / Sボックスです)、これらは他の情報がない場合に探すものです。見つけたものが何であれ、グーグルで検索し、暗号化ライブラリをオーバーライドして、暗号化/復号化されているデータをダンプします。これらのダンプから、何が起きているかを比較的簡単に確認できるはずです。

暗号化されたセッションの再作成は非常に楽しいことがありますが、デバッガのスキルと多くの読書が必要です。イライラすることもありますが、時間をかけて方法を学んでも申し訳ありません。

他のヒント

最良の推測:暗号化または圧縮。

プロトコル全体が完全にテキストベースである場合でも、telnetでも回線経由の圧縮をサポートしています(まあ、非常に近い)。

いくつかの一般的な圧縮ユーティリティを使用してデータストリームを実行することもできますが、圧縮ヘッダーを送信しない可能性が高いため、単に事前定義された値がいくつか強制されるため、それがあなたにとって大いに役立つとは思いません。

もしそれが事実上の暗号化であるなら、あなたはほとんどめちゃくちゃです(私が入ろうともしない多くの、より多くの努力なしで)。

ほとんどの場合、圧縮または暗号化されています。

暗号化されている場合、チャンスはありません。

圧縮されている場合、データのどの部分が圧縮されているか、圧縮された部分がどこから開始され、圧縮アルゴリズムが何であるかを何らかの方法で把握する必要があります。運が良ければ、識別可能な標準ヘッダーがありますが、おそらくスペースを節約するために取り除かれています。

これは単純ではありません。リバースエンジニアリングは困難です。あなたを助ける標準的なツールはありません。あなたはそれを理解するまで物事を調査して試す必要があります。私のアドバイスは、開発者にプロトコルの仕様を尋ね、彼らがあなたがやろうとしていることをサポートするのを手伝ってくれるかどうかを確認することです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top