世界を動かす技術を、日本語で。

ESP32 Bit Pirate、あらゆるプロトコルに対応したWebCLIを備えたハードウェアハッキングツール

概要

  • ESP32 Bit Pirate は、マルチプロトコル対応のハッカーツールに変身するオープンソースファームウェア
  • I2C, UART, SPI など多様なデジタル・無線プロトコルに対応
  • Webフラッシャー でワンクリック導入、詳細なWikiやスクリプト集も用意
  • ハードウェア拡張モジュールやドックで機能拡張可能
  • CLI はUSBシリアル・Wi-Fi・スタンドアロンに対応

ESP32 Bit Pirateとは

  • ESP32デバイス を多機能ハッカーツールに変えるオープンソースファームウェア
  • 伝説的ツール Bus Pirate にインスパイアされた設計
  • I2C, UART, 1-Wire, SPI など主要プロトコルのスニッフィング、送信、スクリプト実行、対話操作
  • シリアル端末やWeb CLI経由で操作可能
  • Bluetooth, Wi-Fi, Sub-GHz, RFID 等の無線通信プロトコルにも対応

主な特徴・機能

  • インタラクティブCLI :USBシリアルまたはWi-Fi Web経由で利用
  • 対応モード
    • HiZ(デフォルト)
    • I2C (スキャン、グリッチ、スレーブ、ダンプ、EEPROM)
    • SPI (EEPROM、フラッシュ、SDカード、スレーブ)
    • UART / Half-Duplex UART (ブリッジ、リード、ライト)
    • 1WIRE (iButton、EEPROM)
    • 2WIRE/3WIRE (スニッフィング、スマートカード、EEPROM)
    • DIO (デジタルI/O、リード、プルアップ、PWM)
    • 赤外線 (送信、記録、ユニバーサルリモコン)
    • USB (HID、フラッシュROM、ストレージ、USB-UART)
    • Bluetooth (BLE HID、スキャン、スプーフィング、スニッフィング)
    • Wi-Fi/Ethernet (スニッフィング、deauth、nmap、netcat)
    • JTAG (スキャン、SWD、openOCD)
    • LED (アニメーション、設定)
    • I2S (スピーカー、マイク試験、再生)
    • CAN (スニッフィング、フレーム送受信)
    • SUBGHZ (解析、記録、リプレイ)
    • RFID (読み書き、クローン)
    • RF24 (スキャン、送受信)
    • FM (解析、放送)
    • CELL (SIMダンプ、SMS、通話)
  • プロトコルスニッファー:I2C, UART, SPI, 1Wire, 2wire, CAN, Wi-Fi, Bluetooth, SubGhz
  • ボーレート自動検出、ATコマンド対応、各種ツール搭載
  • Bus Pirate互換バイトコードPython によるスクリプト実行
  • Device-B-Gone コマンド:80以上の赤外線プロトコル対応
  • GPIO直接制御、PWM、サーボ、LEDアニメーション
  • ラジオ信号・周波数の解析、50種以上のLEDプロトコル対応
  • LittleFS over HTTP でデータのインポート・エクスポート
  • USB-UARTドングル、SPIプログラマ、ロジックアナライザ としても動作

対応デバイス一覧

  • ESP32 S3 Dev Kit :20以上のGPIO、1ボタン
  • M5 Cardputer/ADV :Grove端子、画面、キーボード、マイク、スピーカー、IR TX、SDカード、バッテリー、IMU
  • M5 Stick S3 :13 GPIO、画面、マイク、スピーカー、IR TX/RX、IMU、3ボタン、バッテリー
  • M5 StampS3/AtomS3 Lite :9/8 GPIO、IR TX、1ボタン
  • LILYGO T-Display/T-Embed/CC1101/Plus :GPIO、画面、エンコーダ、スピーカー、マイク、SDカード、CC1101、NRF24、PN532、IR TX/RX、バッテリー
  • Seeed Studio Xiao S3 :9 GPIO、1ボタン
  • その他ESP32-S3基板 :8MB以上のフラッシュ必須、ピン割り当て要確認

導入手順

  • Web Flasher を使いブラウザから直接ファームウェアを書き込み
  • M5Burner でも対応デバイスカテゴリから書き込み可能
  • シリアル/ウェブ接続 :任意のターミナルアプリ、またはWi-Fi設定後にWeb CLIへアクセス
  • 基本コマンド例:mode、help、scan、sniff等

ドキュメント・スクリプト

  • Wiki :全モード・コマンドの詳細ドキュメントを掲載
    • ターミナルモード、モード概要、シリアル設定等
  • スクリプト集 :PythonやBus Pirateスタイルバイトコードで自動化
    • データロギング、EEPROM/フラッシュダンプ、GPIO操作、LEDアニメーション等

拡張モジュール・ドック

  • Expander :Wi-Fi 5GHzや他の無線プロトコル拡張
  • Dock :ESP32 S3 DevKit対応、Bus Pirate純正アダプタ・アクセサリ利用可能(近日公開)

コマンドラインインターフェース(CLI)

  • Webインターフェース :Wi-Fi経由、PC/タブレット/スマホからアクセス、ケーブル不要
  • シリアルインターフェース :高速・大容量データに最適
  • スタンドアロン :Cardputer専用、オンデバイスキーボード・画面
  • すべてのCLIで同一コマンド体系を採用、用途に応じて選択可能

コントリビュート・ビジュアル・注意事項

  • コントリビュート :新コマンド追加方法をHow To Contributeセクションで案内
  • ビジュアル素材 :画像・ロゴ・写真・動画等を自由に利用可能
  • 電圧注意 :3.3Vまたは5Vのみ対応、それ以外はデバイス故障の危険
  • 利用上の注意 :教育・診断・相互運用性テスト目的のみ、無許可操作や不正電波送信厳禁、法令遵守必須、違法利用の責任は一切負わない

まとめ

  • ESP32 Bit Pirate は、多様なプロトコル解析・操作・自動化を一台で実現する強力なオープンソースツール
  • 導入・拡張・自動化が容易で、ハードウェアハッカーや組込み開発者に最適

Hackerたちの意見

ESP32 Bit Pirateは、オープンソースのファームウェアで、対応デバイスを多機能なマルチプロトコルハッキングツールに変身させるものです。元のBus Pirateにインスパイアされています。I2C、UART、SPI、1-Wireなどのデジタルプロトコルを、シリアルCLIやWeb CLIを通じてスニッフィング、送信、スクリプト作成、インタラクションができます。また、Bluetooth、Wi-Fi、Sub-GHz、RFIDなどの無線技術もサポートしています。ESP32 Bit Pirate Web Flasherを使えば、ワンクリックでファームウェアをインストールできます。Wikiには各モードやコマンドの詳細なガイドがあり、ESP32 Bit Pirate Scriptsでは、使えるサンプルやユーティリティのコレクションが提供されています。追加のハードウェア機能として、ESP32 Bus Expanderは追加の無線インターフェースを提供し、ESP32 Bit Pirate Dockは元のBus Pirateアダプターやアクセサリーとの互換性を持っています。

これすごくいいね!ありがとう。

これ、めっちゃいいね!Bus Pirateはかなり良いツールだった。ハードウェアハッキングにはGlasgow Interface Explorerもあって、最近AIと一緒に使ってるけど、かなり成功してるよ。主な違いは、GlasgowにはFPGAが搭載されていて、君(またはAI)がカスタムプロトコル用のアプレットを作成したり、高速ハッキングができることだね。

@geotp C1がサポートされてない理由って何かあるの?

C1って何のこと?ESP32-C3かC5のことを言ってるの?もしそうなら、主に性能やハードウェアの能力の理由でサポートされてないよ。

Dangerous Prototypesの古いv3.6を持ってるけど、今でも頻繁に使ってるし、シリアルターミナルを通じてコーディングアシスタントと一緒にファームウェアのワイヤーレベルデバッグをするのに問題なく動いてるよ。新しいのを買ってスクリプトを改善するためにPi税を払う気は全然ないな。約100ドルのBP v6の価格帯だと、他のアナライザーを検討しないといけないよね。このESPファームウェアは実際にどう違うの?両方使ったことがある人、無線以外に何が違うか教えてくれない?

この二つのプロジェクトは、基本的な有線プロトコルの機能が重なる部分もあるけど、かなり異なる方向性を持ってるよ。元のBus Pirateは、低レベル操作のためにより複雑なバイトコードスタイルの構文に依存しているけど、ESP32版はそれをほとんどシンプルで明示的なコマンドに置き換えて、より簡単なワークフローで同じタスクを実行するんだ。ESP32版はフラグが多いコマンドを避けて、適切なところではインタラクティブシェルを使ってるよ。主な追加の強みは、元のBus Pirateにはない無線サポートで、WiFi、RFID/NFC、SubGHz、NRF24、FM、赤外線、Bluetoothが含まれてる。スマホやタブレット、ウェブブラウザがあるデバイスからWeb CLIを通じて制御できて、ハードウェアタスクを手伝うために統合されたAIアシスタントも使えるよ。だから、単なる安いBus Pirate v6のクローンじゃないんだ。

BP V5はたったの42.50ドルで、いまだに一番人気のモデルだし、アクティブに開発・サポートされてるよ。BP6はもうちょっと高機能で値段も上がるけど、Bus Pirateの人たちは価格に敏感で、ツールをできるだけ手に取りやすくしたいみたい。(出典:私は彼らのディストリビューターです。)

いいね!SBCのリモート管理用に、Wi-Fi経由のシリアルアダプターとして使いたいんだけど、はんだ付けや3Dプリントなしで使える良いデバイスを誰か教えてくれない?理想としては、USB経由のシリアルポートを提供してくれるデバイスがいいな。USB-UARTアダプターをそのまま差し込めるように。

あ、M5 AtomS3 Liteにグローブがあるのか。これなら俺には十分頑丈そうだね。いいね!

ファームウェアは、Web CLIを通じてWiFi経由のシリアルアダプタとしてすでに使えるよ。別のUSB-UARTアダプタを接続する必要はなくて、ESP32S3のUARTピンをボードのTX、RX、GNDピンに直接接続すればOK。どのESP32S3ボードでもできるから、いろんなサポートデバイスについてはREADMEを見てね。

このコメントの皮肉がすごい!@geotp、気にしないで、これは素晴らしい仕事だよ。最近見つけたんだけど、やりたかったことにぴったりのタイミングだった。Heltec WiFi LoRa 32(V3)でCP2102 UARTをサポートするためにちょっとだけパッチを当てて、うまく動いてるよ。

ほんとだ!私にとっても完璧なタイミングだね。変更点を教えてもらえる?

サポートしてくれてありがとう!もしよかったら、特定のボード用のplatformio envをプッシュして、サポートボードのリストに追加してもいいよ。

どのサポートボードが5V I/Oに対応してる?

一般的な5VのESP32ボードはないと思うよ。5V(または他の電圧範囲)に接続するためにレベルシフターを配線すればできるはず。SparkfunではTXS0108Eを搭載したボードや、もっとシンプルなトランジスタベースのものを売ってるよ。

https://github.com/AndreiVladescu/ESP32-Bit-Pirate-Dock ドックを使うと、1.8Vから5Vまでの電圧に対応してるよ。

これ、実際にめっちゃクールだね。2ヶ月前にRTMPを探すのをサポートするこんなのがあればよかったな。

これめっちゃクールだね!5ドルのWi-Fi UARTってアイデアが大好き。

@geotp 意地悪なコメントは気にしないで、これは素晴らしいプロジェクトだし、自分でも作りたかったやつなんだ。I2C/UARTをリモートでデバッグできるウェブアクセスがあるのは、本当に神の恵みだよ。配線のゴチャゴチャを避けて、ESP32をポンと入れられるのが待ちきれない!

サポートありがとう!