Linuxでのシリアルポートのスニッフィング


回答:


27

いくつかのオプションがあります。

  • sersniffは、2つのシリアルポート間でトンネル/スニッフィングを行う簡単なプログラムです。

  • ネットワークプロキシへのシリアル(ser2net)は、ユーザーがネットワーク接続からシリアルポートに接続する方法を提供します。

  • SerialSpyは、シリアルパススルーデバイスとして機能します。2つのシリアルポートで着信データをリッスンして転送し、デバイスが直接接続されているかのように動作します。また、ポートを通過するデータも記録します。

  • sercdは、RFC 2217準拠のシリアルポートリダイレクタです。ネットワークを介してシリアルポートを共有できます。これはsredirdに基づいています。RFC2217プロトコルはtelnetの拡張であり、通信ポートのパラメーターを変更できます。

  • SerLooKは、シリアル回線を通過するデータを検査するためのKDEアプリケーションです。定義されたポート(ポイントツーポイントモード)を介してデータを送受信し、それらを個別のビューに表示するバイナリターミナルとして機能します。各ビューは、データを16進数、10進数、8進数、2進数、および生のASCIIで表示するように構成できます。端末エミュレーションビューを使用してI / Oを実行し、セカンダリポートを定義し、「Y」ケーブルを使用して2つの外部ホスト間のトラフィックを監視することもできます(スヌーパーモード)。

  • nullmodemは、擬似端末の仮想ネットワークを作成します。通常シリアルインターフェイスカードを必要とする2つのプログラムを接続するためのアダプターとして使用できます。

  • ttywatchは、端末I / Oを監視、ログ、および多重化します。完全なログローテーションが組み込まれており、TelnetとローカルTTYポートを使用できます。

  • シリアルラインスニファー(slsnif)は、シリアルポートロギングユーティリティです。指定されたシリアルポートをリッスンし、このポートを通過するすべてのデータを双方向で記録します。


2
socatとを使用して、標準ツールでこれを実現できteeます。1)socat -d -d pty,raw,echo=0 pty,raw,echo=0。出力には2つのポートがあります...N PTY is /dev/pts/27... N PTY is /dev/pts/28。2)sudo cat /dev/ttyS0 | tee /dev/pts/27そして別のターミナルでsudo cat /deb/pts/27 | tee /dev/ttyS0。最後に3)プログラムをに接続します/dev/tty/28。2つのteeコマンドは、コンソールへの両方の方向をダンプし、実際のシリアルポートとの間で転送します。ボーレートなどのポート設定は事前に設定する必要があることに注意してください。
jtpereyda

あなたも、ファイルへのティーものを保存することができますcat /dev/pts/27 | sudo tee /dev/ttyS0 serial-capsし、xxdそれはバイナリプロトコルだ場合に役立ちます:cat /dev/pts/27 | sudo tee /dev/ttyS0 serial-caps | xxd
-jtpereyda

@jtpereydaは、3番目のステップがプログラムを/ dev / ttyS0に接続する必要があるように見えます。たとえば、PUTTYを/ dev / ttyS0に接続すると、実際の組み込みボードと通信しながら、ステップ2の出力が正しく表示されます。ちなみにタイプミスがある/deb/pts/27はずです/dev/pts/27。またするcat /deb/pts/27 | tee /dev/ttyS0必要がありますcat /dev/pts/27 | sudo tee /dev/ttyS0
熱狂的な

この答えは非常に古いですが、スニッフィングシリアルポートのintercepttyご検討ください
CharlesB

1
別の答えとしてそれを提供できます。@CharlesBなぜそれが良いのかを説明するのもいいでしょう。

12

傍受GitHubでコピー)を試みましたが、使用に成功しました。まず、目的のポートで実行しました。

interceptty /dev/ttyACM0 

次に/dev/pts/5、インターセプティが作成した擬似端末にテスト対象プログラムを接続しました。


slsnifを使用しようとしましたが、エラーが発生しました。

Failed to open a pty: No such file or directory

このメーリングリストの項目は、slsnif /dev/ttyp0が、現在のLinuxカーネルではおそらく使用されない「レガシー」疑似端末(など)のみをサポートすることを示しています。


1
ありがとう!組み込みデバイスでも同じエラーが発生します。それから私は使用intercepttyして仕事をしました!
gfleck

どの擬似端末が作成するかをどのようにして知るのですか?
chwi

@chwi 2番目のパラメーターを指定できます。これは、作成する擬似端末へのシンボリックリンクである「フロントデバイス」の名前です。
クレイグマックイーン

ありがとうございました。デフォルトでは、/ dev / intercepttydummyが作成されることがわかりました。トラフィックを前後に見ることができましたが、デバイスからの着信データは傍受によってのみ読み取られ、pyserialを実行しているソフトウェアは読み取れませんでした。
chwi

3

jpnevulator(debianパッケージ)またはslsniffを使用してみてください。slsniffは非推奨の端末エミュレーションモデルを使用することに注意してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.