1: protobuf プロトコルとは何ですか
1. プロトコル バッファーの概要: プロトコル バッファーは、言語、プラットフォームに依存しない、スケーラブルな構造化データのシリアル化方法です。厳密には暗号化ではなく、読める文字を文字化けの疑いのある文字に直列化した後、逆シリアル化することで文字化けの疑いのある文字を読めるようにするシリアル化された構造データとしか言えません。
2. protobuf を使用する前提は、.proto ファイルがあることです。リバース エンジニアリングの場合は、.proto ファイルを復元し、それを対応するプログラミング言語パッケージにコンパイルすることを選択し、シリアル化および逆シリアル化のためにパッケージを呼び出します。
- たとえば、プログラミング言語が Python の場合、最初に .proto ファイルを Python 用の Python モジュール パッケージにコンパイルします (リクエストや他のパッケージと同様)。
- 次に、Python を使用してコンパイルされたモジュール パッケージを呼び出し、データをシリアル化および逆シリアル化します。
2: protibuf シリアル化データをクラックする
1. Python パッケージ pip install blackboxprotobuf をインポートします
2. シリアル化されたデータの 16 進データを bin ファイルとして保存します
3. 逆シリアル化に blackboxprotobuf を使用する
4. シリアル化に blackboxprotobuf を使用する
5. 続行後、辞書を読み取ってデータを解析できます。
3: 次は小さなケースを試してみましょう
1. ブラウザを開いてインターフェイスを表示します。
これは、bin ファイルとして直接保存され、blackboxprotobuf を使用して逆シリアル化された、単なる小さなシリアル化されたデータではありませんか
フィドラー キャプチャ パッケージを開く
リクエストデータです
hexView を選択します
黒のデータを選択し、選択を保存を選択してbinファイルとして保存します
blackboxprotobuf を使用して逆シリアル化する
デシリアライズ後の結果は次のとおりです
逆シリアル化されたデータ
メッセージタイプの構造
今一目でわかる
デシリアライズしたデータをシリアライズして送信するとインターフェースは調整されないのでしょうか?
メッセージ型構造体のデータ型は、逆シリアル化されたデータ型に対応する必要があることに注意してください。
blackboxprotobuf で逆シリアル化されている限り、応答データもシリアル化されたデータです。
接続、m = blackboxprotobuf.protobuf_to_json(response.content)
印刷(接続)
その後、json を通じてデータを解析できます