web-dev-qa-db-ja.com

Bluetooth経由で送信されたデータの傍受

closed-sourceアプリケーションを書き直そうとしています。元々はモバイルデバイスにデプロイされていたため、Bluetoothを介して特定の種類の機械式ロボットを制御したり制御したりできます。

私が書いている新しいアプリケーションは、最初のアプリケーションと同じロボットを制御できるはずです。

クローズドソースアプリケーションからコマンド-bluetooth-を介して送信されるコマンドを傍受するにはどうすればよいですか?
そしてさらに重要なことに、(それらを「再現」できるようになりますか?

私がしなければならないステップの概要は私の質問に答えるのに十分です。詳細な回答をいただければ幸いです。

11
Pierre

bertooth one を使用すると、Bluetoothトラフィックを盗聴できます。これは完全にモニターモードにすることができ、Bluetoothスニッフィングを実行するために Kismet などのツールで使用できます。パケットインジェクションも実行できる追加機能がある場合があります。ただし、トラフィックが暗号化されている場合、パケットを平文で見ることができない場合がありますが、通信プロトコルのリバースエンジニアリングを開始するのに適しています。

7
Mark S.

あなたがAndroidを使用しているなら、今日より良い方法があります。開発者ツールは、Wiresharkで開くことができるログにBluetoothパケットを盗聴する方法を提供します。

携帯電話の開発者オプションに移動し、hcidumpを有効にします。

詳細は this ブログ投稿を参照してください

5
Ziv

Bluetoothを介してロボットを制御することはクールに聞こえます。

おそらく、bluetooth通信をインターセプトしてデコードする代わりに、実際にはdecompileクローズドソースアプリを使用して、bluetoothコマンドを検索する方が簡単かもしれません。制御デバイスは、標準のbluetoothライブラリを使用する場合がありますフックするで、すべての要求/応答を何らかの方法でログに記録できますか?

3
Yoav Aner

まあそれはそれほど簡単ではありません。 この記事 を参照してください。

802.11のスニッフィングとは異なり、Bluetoothは1つのチャネルを使用しませんが、79チャネルを超えます。これにより、スニッフィングが非常に困難になります。

また、ハードウェアをほとんどまたはまったく制御できません。これを行う唯一の方法は、定義済みのコマンドでHCIを使用することです。

サイトをチェックすると、デバイスの見積もりを依頼する必要があることがわかります。ほとんどの場合、それは良い兆候ではありません。

1
Lucas Kauffman