>_ DevTrendsja

言語

ホーム

言語

セクション

フロントエンド バックエンド モバイル DevOps AI / ML ゲーム開発 ブロックチェーン 組み込み セキュリティ
C

安いESP32ボードをFlipper Zeroにする方法

Flipper Zeroは、ギークや研究室、無線プロトコル愛好家にとって最も欲しいガジェットの1つです。しかし、2万ルーブル以上を支払う気がない人も多くいます。特に週末プロジェクトやルーターの負荷テストにしか必要ない場合はそうです。

開発者のSor3ntは異なるアプローチを取りました。彼はFlipper Zeroオペレーティングシステム全体を人気で安価なESP32マイクロコントローラーに移植しました。このプロジェクトはFlipper-Zero-ESP32-Portと呼ばれ、数千ルーブルのハードウェアで熟悉的インターフェース、サービス、アプリケーションを実現します。

Board

まずはセキュリティについて

プロジェクトコミュニティで不快な出来事がありました。「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でクラッシュします。購入前にこれを覚えておいてください。

Interface

移植された機能

作者は元のネイティブソフトウェアを保存し、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アーキテクチャを可能な限り保存するアプローチを取りました:

  1. オペレーティングシステム:Furi OSはFreeRTOSの上で動作します。著者はスレッド、ミューテックス、メッセージキュー、イベントバスのシステム全体を保存しました。
  2. ハードウェア抽象化レイヤー(HAL):STM32出力呼び出しはESP-IDFドライバー用に書き直されました。たとえば、ディスプレイレンダリング呼び出しはesp_lcdを通じて動作し、IRポートはRMTモジュールによって処理され、BluetoothはBluedroidスタックを使用します。
  3. グラフィック適応:元のFlipper Zeroインターフェースは128×64モノクロ画面用に設計されています。ファームウェアは画像を内部フレームバッファにレンダリングし、次に2倍にスケーリングしてRGB565カラーに変換してTFTマトリクスに出力します。
  4. 巧妙なメモリトリック:STM32では、ヒープはmalloc 통한メモリ割り当て時にデフォルトでゼロ埋めされます。ESP32では、ガーベジが含まれています。そのため、多くのFlipperアプリケーションがエラーでクラッシュしました。問題は簡単な再定義で解決されました:ポートのmalloc関数はcallocにハードリンクされました。

まだ回避されていない制限もあります。ポートにはハードウェア暗号化モジュール(Flipper Enclave)へのアクセスがありません。そのため、Sub-1 GHz用の暗号化されたKeeloqデータベースは復号化できません—スプーフィングできません。オープンアルゴリズムのみ動作します。

試す方法

ソースからファームウェアをビルドするには、ESP-IDF v5.4.1がインストールされている必要があります。Windowsの場合、リポジトリにはすべての環境設定とフラッシュルーチンを処理する便利なスクリプトがあります。

しかし、コードをコンパイルしたくない場合は、Webフラッシャーが最も簡単なオプションです:

  1. ChromeまたはEdgeでオンライフラッシャーを開きます。
  2. ボードをUSBで接続し、Flashボタンを押しします。
  3. プロジェクトのリリースからアーカイブsdcard.zipをダウンロードし、FAT32でフォーマットされたSDカードに解凍して、ボードに挿入します。

まとめ

Sor3ntは高品質なエンジニアリングプロジェクトを提供しました。これは単にESP32画面に似たアイコンを描こうとする試みではありません—アプリケーションアーキテクチャが保存された完全なOS移植です。

これはFlipper Zeroの完全な代替品ですか?完成品で壊れない素敵なエンクロージャに入った「箱から出してすぐ」デバイスが必要なら—おそらくそうではありません。しかし、無線スペクトルを実験したり、手頃な価格でポータブルなWi-Fiテスターを構築したり、Furi OSの内部を研究したい場合は、このファームウェアを備えたLilyGo T-Embedは優れた選択です。

関連プロジェクト