Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
sjcam — Allwinner V3ベースのIoTカメラ向けのリバースエンジニアリング研究とカスタムファームウェア。ファームウェアパーサー、AVIOCTRLクライアント、および認証なしのOTAファームウェア置換に対するCVE-2026-52656の概念実証(PoC)を含みます。 | Kitploit
ツール/GitHubGitHub/keowu/sjcam
組み込みシステムセキュリティIoTセキュリティ脆弱性分析エクスプロイトリバースエンジニアリングペネトレーションテストハードウェアセキュリティ論文と研究学習と教育ファームウェア解析
GitHubkeowu/sjcam

sjcam

81111ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Allwinner V3ベースのIoTカメラ向けのリバースエンジニアリング研究とカスタムファームウェア。ファームウェアパーサー、AVIOCTRLクライアント、および認証なしのOTAファームウェア置換に対するCVE-2026-52656の概念実証(PoC)を含みます。

リポジトリを見るウェブサイト

Lelouch: SJCAM SJ4000 ファームウェア研究とカスタムファームウェア

CI

Lelouch プロジェクトバナー

ポルトガル語(ブラジル)に切り替える

Allwinner V3 版 SJCAM SJ4000 Air 向けのリバースエンジニアリングノート、ファームウェアツール、概念実証コード、およびカスタムファームウェアインターフェースです。

研究記事

このリポジトリには、研究の過程で作成されたコードと成果物が含まれています。完全な記事では、最初のファームウェアダンプから Lelouch カスタムファームウェアまでの調査を解説しています。

英語で完全な研究記事を読む) または ポルトガル語。

プロジェクトについて

この作業は、ドキュメントもソースコードもベンダーサポートもない安価なアクションカメラに対して、どこまで制御できるのかという単純な疑問から始まりました。

このカメラは Allwinner V3 SoC と大幅に改変された Android 4.4 システムを採用していることが判明しました。メインアプリケーションである sdv は、Binder 経由でプロプライエタリなカメラ・表示サービスと通信し、MiniGUI でインターフェースを描画し、ファームウェア更新用の HTTP サーバーを公開し、プロプライエタリなプロトコルで SJCAM Zone アプリケーションと通信します。

このリポジトリは、ファームウェアの抽出から sdv の実用的な代替品に至るまでの道のりを記録しています。研究で遭遇したファームウェア形式に対応するツール、リバースエンジニアリングしたバイナリの IDA データベース、AVIOCTRL クライアント、Lelouch カスタムファームウェアのソース、そして CVE-2026-52656 に関連する概念実証が含まれています。

このコードは、ST7789V ディスプレイコントローラと GC4653 イメージセンサーを搭載した調査対象の Allwinner V3 ボードを対象としています。Novatek NT9665X ベースの古い SJ4000 ユニットは、初期の研究の一部としてのみ含まれており、異なるファームウェア形式を使用します。製品名だけでは互換性を判断するのに十分ではありません。

Lelouch

Lelouch は、カメラのオリジナルの sdv 実行ファイルに代わるインターフェースです。ファームウェアから回収したプロプライエタリなライブラリに対してビルドされ、オリジナルアプリケーションと同じ内部インターフェースを使用します。

現在の実装には以下が含まれます:

  • リバースエンジニアリングした HerbCamera および CedarDisplay インターフェースによるカメラプレビュー
  • カメラの 320x240 ディスプレイと物理ボタン向けに設計された MiniGUI インターフェース
  • Allwinner ハードウェア抽象化レイヤーによる Wi-Fi ホットスポット制御
  • wpa_supplicant のカスタム ARMv7 ビルドを使用した Wi-Fi ステーションモード
  • デバイス上のキーボードを備えた小型テキストブラウザ
  • プレビューフレームのモーション検出と実験的な Haar カスケード顔検出コード
  • バッテリー、時刻、カメラ、ネットワーク、デバッグのステータス表示
  • Binder の初期化と、ファームウェアに既に存在するサービスとの通信

Lelouch は完全なディストリビューションでも、SJ4000 として販売されているすべての製品に対応する汎用ファームウェアでもありません。これは、調査対象の Allwinner V3 ユニットで使用されているライブラリ、カーネル、サービス、パーティションレイアウト、ディスプレイコントローラ、イメージセンサー、ボード構成に依存します。

リポジトリ構成

一部のディレクトリには、デバイスから回収したサードパーティ製またはプロプライエタリな素材が含まれています。これらは相互運用性とセキュリティ研究のために存在しており、それらのコンポーネントがオープンソースになるわけではありません。

Lelouch のビルド

ビルドは x86-64 Linux でテストされています。Python 3、GNU Make、Git、C/C++ ビルド環境、および最初のツールチェーンをダウンロードするためのネットワークアクセスが必要です。

root@kitploit:~
git clone https://github.com/keowu/sjcam.git
cd sjcam/Lelouch
python3 prepare_build.py

prepare_build.py は、固定された Android API レベル 14 の sysroot と ARM 用クロスコンパイラ arm-linux-androideabi-4.6 を Lelouch/android_compilers/ にダウンロードします。その後、修正版の静的 wpa_supplicant をビルドし、make を実行します。ダウンロードしたコンパイラファイルと生成されたバイナリは Git で無視されます。

生成されるファイルは以下のとおりです:

root@kitploit:~
Lelouch/Lelouch
Lelouch/wpa_supplicant

C++ ソースを変更した後に再ビルドするには:

root@kitploit:~
cd Lelouch
make clean
make

生成された Lelouch バイナリは、抽出したルートファイルシステム内の /bin/sdv を置き換えることを目的としています。Wi-Fi ステーションモードでは、カメラの SD カード上の /mnt/extsd/sta/wpa_supplicant にビルドした wpa_supplicant があることも期待されます。

実験的な顔検出コードは、生成されたカスケードファイルを以下の場所で探します:

root@kitploit:~
/mnt/extsd/frontalface.casc

リポジトリには、事前生成されたカスケードと、それを作成するために使用したコンバーターが含まれています:

root@kitploit:~
cd Lelouch/gen_cascade
python3 gen_cascade.py haarcascade_frontalface_alt2.xml frontalface.casc

抽出、ルートファイルシステムの置き換え、再パック、LiveSuit による書き込みの完全な手順は、このページの上部にリンクされている研究記事に記載されています。

ファームウェアツール

すべてのパーサーのエントリポイントは Python 3 スクリプトで、組み込みの --help 出力を備え、サードパーティ製の Python 依存関係はありません。

Allwinner IMAGEWTY

外側の LiveSuit ファームウェアイメージを読み取り、そのファイルを抽出し、抽出したディレクトリからイメージを再構築します。

root@kitploit:~
python3 "Reversing Scripts/AllWinner IMAGEWTY - ROM Parser/main.py" info firmware.img
python3 "Reversing Scripts/AllWinner IMAGEWTY - ROM Parser/main.py" extract firmware.img -o image_dump
python3 "Reversing Scripts/AllWinner IMAGEWTY - ROM Parser/main.py" repack image_dump rebuilt.img

Allwinner eGON

IMAGEWTY イメージ内にある full_img.fex コンテナを検査、抽出、再パックします。

root@kitploit:~
python3 "Reversing Scripts/AllWinner EGON - Firmware Parser/main.py" info full_img.fex
python3 "Reversing Scripts/AllWinner EGON - Firmware Parser/main.py" extract full_img.fex -o egon_dump
python3 "Reversing Scripts/AllWinner EGON - Firmware Parser/main.py" pack egon_dump \
  --original full_img.fex \
  -o rebuilt_full_img.fex

パッカーは元のファイルをテンプレートとして使用するため、パーティションを置き換えながら元のレイアウトとメタデータを保持できます。

Novatek BCL1

古い Novatek ベースの SJ4000 ファームウェアで使用される BCL1 コンテナを解凍し、結果をスキャンして埋め込まれたアセットとファームウェアセクションを探すことができます。

root@kitploit:~
python3 "Reversing Scripts/Novatek もな BCL1 - Firmware Parser/main.py" \
  "Firmwares Files/OLD_SJCAM_Novatek_NT9665X/SJCAM001.bin" \
  -o firmCode.bin \
  --extract

AVIOCTRL クライアント

ウタ.py は、モバイルアプリケーションがポート 6666 でカメラを制御するために使用するプロプライエタリな TCP プロトコルを実装しています。Python 標準ライブラリのみを使用して、カメラのログインシーケンス、キープアライブメッセージ、IOCTRL フレーム、ファイル転送、ビデオストリーム要求を処理します。

コンピュータをカメラの Wi-Fi ネットワークに接続して実行します:

root@kitploit:~
python3 "AVIOCTRL Script/ウタ.py"

デフォルトのターゲットは 192.168.100.1:6666 です。必要に応じて別のアドレスを指定できます:

root@kitploit:~
python3 "AVIOCTRL Script/ウタ.py" --host 192.168.100.1 --port 6666 --debug

対話型クライアントは、バッテリーと設定の読み取り、SD カードの検査、写真の撮影、録画の開始・停止、ファイルの一覧表示・アップロード・ダウンロード・削除、サムネイルの要求、Wi-Fi の設定、ビデオストリームの要求、手動の IOCTRL コマンド送信ができます。

SD カードのフォーマット、ファイルの削除、Wi-Fi 設定の変更、工場出荷時リセットはカメラを変更します。これらのコマンドは、自分が所有するハードウェアとデータに対してのみ使用してください。

CVE-2026-52656

調査対象のファームウェアは、カメラのホットスポットが有効な間、認証なしの HTTP エンドポイントを公開しています。任意のファイルアップロードを受け入れ、クライアントまたはアップロードされたコンテンツのいずれも検証せずに SD カードに直接書き込みます。攻撃者は full_img.fex という名前のカスタム eGON イメージをアップロードできるため、これにより完全なファームウェア置き換えが可能になります。カメラはそのファイル名を OTA パッケージとして認識し、通常の更新フローを通じて攻撃者が制御するファームウェアを公式アップデートであるかのようにインストールします。

悪用に成功すると、アップロードされたファームウェアがデバイス上で実行されているソフトウェアを完全に制御できるようになります。同梱の概念実証は、悪意のある OTA イメージがインストールされた後、オリジナルのアプリケーションを、生の RGB565 フレームと PCM オーディオを使用して Bad Apple!! ビデオを再生するカスタム MiniGUI/AudioTrack ペイロードに置き換えることでこれを実証しています。

POC/ ディレクトリには以下が含まれます:

  • run_exploit.sh:攻撃者が制御する full_img.fex をカメラにアップロードします
  • full_img.fex:カメラの OTA 更新メカニズムが受け入れる細工された eGON ファームウェアイメージ
  • バイバイ/:更新後の任意コード実行を実証するために使用される MiniGUI および AudioTrack の Bad Apple!! ペイロード
  • extract_rgb_pcm_from_mp4/:デモビデオを生の RGB565 および PCM データに変換するためのヘルパー

メディア変換ヘルパーには ffmpeg が必要です。生成された video.rgb および audio.pcm ファイルは、デモペイロードによってカメラの SD カードのルートに置かれることが想定されています。

この概念実証は本質的に破壊的です。不正な形式または互換性のないイメージは、カメラを恒久的に文鎮化させる可能性があります。所有していないデバイスに対して、または完全な復旧手段なしに実行しないでください。

研究の範囲

このプロジェクトは、著者が合法的に入手したハードウェアに対するリバースエンジニアリング、相互運用性、教育、セキュリティ研究のために作成されました。SJCAM、Allwinner、Novatek、Android、およびそれらのコンポーネントの名称は、それぞれの所有者に帰属します。

このリポジトリには、ファームウェアサンプル、リバースエンジニアリングデータベース、ヘッダー、サードパーティ製品由来の共有ライブラリとともに、オリジナルのソースコードが含まれています。サードパーティの素材に対してライセンスは付与されません。研究環境の外でこれらのファイルを再配布または使用する前に、出所と適用される法律を確認してください。

現在、リポジトリ全体に適用されるオープンソースライセンスはありません。wpa_supplicant ソースは、Lelouch/modified_lelouch_wpa_supplicant_source/COPYING に独自のアップストリームライセンスを保持しています。

ツールをダウンロード
パス内容
Lelouch/カスタムファームウェアインターフェース、ビルド環境、回収したヘッダー、プロプライエタリな共有ライブラリ、および修正版 wpa_supplicant ソース
Reversing Scripts/Allwinner IMAGEWTY、Allwinner eGON、Novatek BCL1 ファームウェア用のパーサーと再パッカー
AVIOCTRL Script/ウタ.pySJCAM Zone が使用するプロプライエタリな TCP プロトコル用の対話型クライアント
Bin Files/研究で解析した主要な実行ファイルと共有ライブラリの IDA データベース
Firmwares Files/開発中に使用した Allwinner および Novatek のファームウェアサンプル
POC/CVE-2026-52656 の概念実証、細工された eGON イメージ、およびフレームバッファ/オーディオのデモペイロード