シリアル通信の傍受
~ Thonny と Pico の会話を盗聴 ~
2022-05-05 作成 福島
TOP > tips > serial-sniffing

1. Raspberry Pi Pico と Thonny, comleak.py の設定

1-1. Raspberry Pi Pico (以下 Pico と略称) と Thonny の初期設定
ここ を参照して Pico と Thonny をインストールする。
↑ この時点で Thonny のシリアルポート設定は、まだ のまま。
1-2. com0com と comleak.py の用意
ここ を参照して com0com と comleak.py を用意する。


2. Ratatoskr のインストール

Ratatoskr は非常に実用的なプロトコル解析用ソフトウェアです。

2-1. インストーラをダウンロードする。
GitHub のリポジトリ or Vector から Ratatoskr のインストーラ (RatatoskrInstaller_x.x.x.exe) をダウンロードする。
このときは RatatoskrInstaller_0.7.0.exe だった。
2-2. インストーラを実行する。
ボタンをクリックする。

ボタンをクリックする。

ボタンをクリックする。

ボタンをクリックする。

待つ。(2~3 秒)

ボタンをクリックする。

プロファイルは C:\Users\who\AppData\Roaming\Ratatoskr\ に作成される。


3. Pico のシリアルポートを確認

Pico の USB ケーブルを抜き差しすると、デバイスマネージャーにシリアルポートが現れる。(この例では COM4)


4. com0com の設定と comleak.py の実行

4-1. com0com を構成する。
仮想ペアシリアルポート名備考
Virtual Port Pair 0COM10 ←結合→ COM11COM11 に Thonny を接続する。
Virtual Port Pair 1COM20 ←結合→ COM21COM21 に Ratatoskr を接続する。
use Ports class はすべてチェックを入れる。
(チェックが外れたままだと正常に動作しない)

4-2. comleak.py を実行する。
COM4, COM10, COM20 に流れるデータを共有する。(COM4 は上記 3 で確認した Pico のポート)
 >_ Windows PowerShell 
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

新しいクロスプラットフォームの PowerShell をお試しください https://aka.ms/pscore6

PS C:\Users\who> python3 .\comleak.py COM4 COM10 COM20 
プログラムを終了する場合は ^C をタイプして中断する。


5. Thonny の設定

ツールバーから「ツール」-「Options...」を選択する。

「インタプリタ」タブの「Port」に
COM11 を選択して ボタンをクリックする。


6. Ratatoskr の設定と実行

Ratatoskr を起動し、接続ボタンの 1 つ
(ここでは GATE_001) を右クリックする。
Ratatoskr は一度に 5 個までの接続を設定できる。


設定画面が表示されるので、「Device」タブの「Port」に
COM21 を選択して ボタンをクリックする。


接続ボタンを左クリックすると COM21 に接続され、
以後 Thonny と Pico の通信データを閲覧することが出来る。
データを割り込ませることも可能。