迷惑な Google protobuf プロトコル

1: protobuf プロトコルとは何ですか

1. プロトコル バッファーの概要: プロトコル バッファーは、言語、プラットフォームに依存しない、スケーラブルな構造化データのシリアル化方法です。厳密には暗号化ではなく、読める文字を文字化けの疑いのある文字に直列化した後、逆シリアル化することで文字化けの疑いのある文字を読めるようにするシリアル化された構造データとしか言えません。

2. protobuf を使用する前提は、.proto ファイルがあることです。リバース エンジニアリングの場合は、.proto ファイルを復元し、それを対応するプログラミング言語パッケージにコンパイルすることを選択し、シリアル化および逆シリアル化のためにパッケージを呼び出します。

  • たとえば、プログラミング言語が Python の場合、最初に .proto ファイルを Python 用の Python モジュール パッケージにコンパイルします (リクエストや他のパッケージと同様)。
  • 次に、Python を使用してコンパイルされたモジュール パッケージを呼び出し、データをシリアル化および逆シリアル化します。

2: protibuf シリアル化データをクラックする

1. Python パッケージ pip install blackboxprotobuf をインポートします

2. シリアル化されたデータの 16 進データを bin ファイルとして保存します

3. 逆シリアル化に blackboxprotobuf を使用する

62b1bc1fdbfc4c7b8181bc4b156272b2.png

 

4. シリアル化に blackboxprotobuf を使用する

5147dd670ffa46efb1c1171e70b7e389.png

 

5. 続行後、辞書を読み取ってデータを解析できます。

3: 次は小さなケースを試してみましょう

1. ブラウザを開いてインターフェイスを表示します。

82960f03781c4d269a86b1c12fe5136c.png

 

 

これは、bin ファイルとして直接保存され、blackboxprotobuf を使用して逆シリアル化された、単なる小さなシリアル化されたデータではありませんか

フィドラー キャプチャ パッケージを開く

3cba6e8da7e747a6bb8d20d894e4729a.png

 

リクエストデータです

hexView を選択します

2dfcb95bf440457f94ba6fb278d309ff.png

 

黒のデータを選択し、選択を保存を選択してbinファイルとして保存します

blackboxprotobuf を使用して逆シリアル化する

8ce3e1d04ea2446f852262ec1e0c9297.png

 

デシリアライズ後の結果は次のとおりです

逆シリアル化されたデータ

deefb72b9546415b8ca3ef61d4eb8348.png

 

メッセージタイプの構造

a99c5ed7091b4c3aba101cbdbd1f8577.png

 

今一目でわかる

デシリアライズしたデータをシリアライズして送信するとインターフェースは調整されないのでしょうか?

8b174c54928143a68b6539d5d3041f43.png

メッセージ型構造体のデータ型は、逆シリアル化されたデータ型に対応する必要があることに注意してください。

blackboxprotobuf で逆シリアル化されている限り、応答データもシリアル化されたデータです。

接続、m = blackboxprotobuf.protobuf_to_json(response.content)

印刷(接続)

その後、json を通じてデータを解析できます

 

 

 

 

おすすめ

転載: blog.csdn.net/weixin_56684059/article/details/127979620