安いESP32ボードをFlipper Zeroにする方法
Flipper Zeroは、ギークや研究室、無線プロトコル愛好家にとって最も欲しいガジェットの1つです。しかし、2万ルーブル以上を支払う気がない人も多くいます。特に週末プロジェクトやルーターの負荷テストにしか必要ない場合はそうです。
開発者のSor3ntは異なるアプローチを取りました。彼はFlipper Zeroオペレーティングシステム全体を人気で安価なESP32マイクロコントローラーに移植しました。このプロジェクトはFlipper-Zero-ESP32-Portと呼ばれ、数千ルーブルのハードウェアで熟悉的インターフェース、サービス、アプリケーションを実現します。

まずはセキュリティについて
プロジェクトコミュニティで不快な出来事がありました。「L15Dev」または「Bitwire」と呼ばれるサードパーティのファームウェアがオンラインで公開されました。このカスタムビルドにはウイルスとバックドアが含まれており、保存されたWi-Fiパスワードとダンプを盗みます。
プロジェクトを試すことを決めたら、作者の公式リポジトリまたはブラウザベースのWebフラッシャーからのみフラッシュしてください。怪しい Telegram チャンネルからのサードパーティバイナリは使用しないでください。
必要なハードウェア
画面なしの「ベア」コントローラーでシステムを実行することはできません。プロジェクトにはディスプレイとコントロールが必要です。ファームウェアは完成された開発ボードで最も効果的です:
- LilyGo T-Embed CC1101(ESP32-S3ベース)。現在利用可能な最良のオプション。320×170ディスプレイ、エンコーダー、CC1101ラジオモジュール、NFCリーダー(PN532)用のコネクタ、MicroSDスロットを備えています。
- Waveshare ESP32-C6-LCD(1.9インチと1.47インチバージョン)。タッチスクリーンを備えたRISC-Vチップベースのより安価なオプション。
- DIYビルド:ILI9341ディスプレイと通常のボタンを使用したESP32-S3を使用。
1.47インチ画面のWaveshare C6ボードには重要な注意点があります。ボード上のRAMは512 KBのみで、外部PSRAMは一切ありません。システムは重いタスクに十分なRAMを持っていません。アクセスポイントのスキャン仍是可能ですが、WPAハンドシェイクのキャプチャはエラーESP_ERR_NO_MEMでクラッシュします。購入前にこれを覚えておいてください。

移植された機能
作者は元のネイティブソフトウェアを保存し、ESP32ペリフェラルに適応させる努力をしました。
Wi-Fi監査と攻撃
元のFlipperでは、Wi-Fiは外部モジュール 통해서のみ利用可能です。ここではマイクロコントローラーのラジオチャネルが最大限に活用されます:
- ネットワークスキャン、信号強度測定、認証詳細の表示。
- WPA/WPA2/WPA3ハンドシェイクのキャプチャとPCAPファイルとしての保存。
- 認証解除パケットの送信(Deauther)。
- カスタムワードリスト支持的假的SSIDのスパミング(Beacon Spam)。
- フィッシングアクセスポイントの設定のためのEvil Portal。ポートにはNAPTブリッジ機能が追加されています。被害者が假的アクセスポイントに接続し、ログインページでパスワードを入力すると、デバイスは疑念を避けるために реальныйインターネットにブリッジします。
Mesh / Buddyモードは巧妙に実装されています。エンクロージャなしの安いESP32ボードが2台ある場合、フォルダbuddy_firmwareからの特殊ファームウェアをフラッシュし、ESP-NOWプロトコル経由でメインボードにリンクできます。補助モジュールは自律スキャナーとして動作し、空気からハンドシェイクを受動的にキャプチャし、独自のメモリに保存し、メインボードがオンラインになると送信します。
ラジオとNFCの操作
CC1101とPN532モジュールが接続されると、デバイスは古典的なシグナルインテリジェンスツールに変身します:
- Sub-1 GHz:433–868 MHz周波数での受信と送信、生ダンプの保存
.sub、スペクトラムアナライザー、辞書ブルートフォース攻撃ジェネレーター。素晴らしいボーナス—タイヤ圧センサー(TPMS)のデコーダー。 - NFC:カードの読み取り、書き込み、エミュレーション、Mifare ClassicとUltralightへの辞書攻撃、乗り物カード用の組み込みパーサー。
- Bluetooth:iOS、Android、Windows用のサービスパケットのスパミング(BLE Spam)、AirTagエミュレーション(FindMy)、ワイヤレスキーボードまたはマウスとしての動作(HID)。
- IRポート:リモートからの信号の学習、TV、エアコン、その他の家電向けの汎用リモートの組み込みデータベース。
さらに、ポートにはBadUSB(フラッシュドライブからDuckyスクリプトを実行)、ファイルマネージャー、JSスクリプトエンジン、さらには культовый古典のDOOMの移植版が含まれています。
内部動作の仕組み
特定のSTM32マイクロコントローラー用に書かれたファームウェアをXtensaおよびRISC-Vアーキテクチャに移植することはtrivialなタスクではありません。開発者は元のFuri OSアーキテクチャを可能な限り保存するアプローチを取りました:
- オペレーティングシステム:Furi OSはFreeRTOSの上で動作します。著者はスレッド、ミューテックス、メッセージキュー、イベントバスのシステム全体を保存しました。
- ハードウェア抽象化レイヤー(HAL):STM32出力呼び出しはESP-IDFドライバー用に書き直されました。たとえば、ディスプレイレンダリング呼び出しは
esp_lcdを通じて動作し、IRポートはRMTモジュールによって処理され、BluetoothはBluedroidスタックを使用します。 - グラフィック適応:元のFlipper Zeroインターフェースは128×64モノクロ画面用に設計されています。ファームウェアは画像を内部フレームバッファにレンダリングし、次に2倍にスケーリングしてRGB565カラーに変換してTFTマトリクスに出力します。
- 巧妙なメモリトリック:STM32では、ヒープはmalloc 통한メモリ割り当て時にデフォルトでゼロ埋めされます。ESP32では、ガーベジが含まれています。そのため、多くのFlipperアプリケーションがエラーでクラッシュしました。問題は簡単な再定義で解決されました:ポートのmalloc関数はcallocにハードリンクされました。
まだ回避されていない制限もあります。ポートにはハードウェア暗号化モジュール(Flipper Enclave)へのアクセスがありません。そのため、Sub-1 GHz用の暗号化されたKeeloqデータベースは復号化できません—スプーフィングできません。オープンアルゴリズムのみ動作します。
試す方法
ソースからファームウェアをビルドするには、ESP-IDF v5.4.1がインストールされている必要があります。Windowsの場合、リポジトリにはすべての環境設定とフラッシュルーチンを処理する便利なスクリプトがあります。
しかし、コードをコンパイルしたくない場合は、Webフラッシャーが最も簡単なオプションです:
- ChromeまたはEdgeでオンライフラッシャーを開きます。
- ボードをUSBで接続し、Flashボタンを押しします。
- プロジェクトのリリースからアーカイブ
sdcard.zipをダウンロードし、FAT32でフォーマットされたSDカードに解凍して、ボードに挿入します。
まとめ
Sor3ntは高品質なエンジニアリングプロジェクトを提供しました。これは単にESP32画面に似たアイコンを描こうとする試みではありません—アプリケーションアーキテクチャが保存された完全なOS移植です。
これはFlipper Zeroの完全な代替品ですか?完成品で壊れない素敵なエンクロージャに入った「箱から出してすぐ」デバイスが必要なら—おそらくそうではありません。しかし、無線スペクトルを実験したり、手頃な価格でポータブルなWi-Fiテスターを構築したり、Furi OSの内部を研究したい場合は、このファームウェアを備えたLilyGo T-Embedは優れた選択です。
関連プロジェクト