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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
lg-webos-kexec — kexecを介してルート化されたLG webOS TVでカスタムLinuxカーネルを起動し、リバースエンジニアリングされたSoCウォッチドッグサポート、フレームバッファペイロード、initramfsカーネルビルドフローを備えています。 | Kitploit
ツール/GitHubGitHub/ggfuchsi-oss/lg-webos-kexec
組み込みシステムセキュリティリバースエンジニアリングハードウェアハッキングハードウェアとIoTセキュリティファームウェア解析
GitHubggfuchsi-oss/lg-webos-kexec

lg-webos-kexec

kexecを介してルート化されたLG webOS TVでカスタムLinuxカーネルを起動し、リバースエンジニアリングされたSoCウォッチドッグサポート、フレームバッファペイロード、initramfsカーネルビルドフローを備えています。

リポジトリを見る
63921日前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

lg-webos-kexec

root化済みの LG webOS TV で kexec によりカスタムLinuxカーネルを起動 — RAM 上で実行し、セキュアブートの回避は不要。

ステータス: 開発中。 カスタムカーネルはステージングでき、ユーザー空間にも到達しますが、実用的な OS として動作し続ける状態にはまだ至っていません。

対象

LG 50UP81009LR (webOS 6.5、Realtek RTD2875、armv7l)。Homebrew Channel で root化。ストックの署名済みカーネル + webOS ユーザー空間には一切触れません。

実証済み (実機で確認済み)

  • kexec -l が (ストックまたはソースビルドの) カーネルをステージングし、/sys/kernel/kexec_loaded が 1 に切り替わります。
  • kexec -e が実行中のカーネルを置き換えます (その後 TV はストックにリセットされます)。
  • ソースビルドのカーネルがユーザー空間に到達 — ユーザーモードのページフォールト = /sbin/init が実際のコードを実行したことで検証済み。
  • 小さなカナリアペイロードがフレームバッファに描画します (リング0 + ディスプレイアクセス確認済み)。
  • チェーン全体はストックの webOS startup.sh から実行されます — 署名済みブートローダ / ATF / OP-TEE には一切触れません。

まだ実現していないこと

  • ウォッチドッグのペット — リバースエンジニアリング完了 + 修正コード作成済み。ただし実機での kexec ブートではまだ実証されていません。下記参照。

ウォッチドッグのペット — 原因判明 (2026-08-19)

リセットの原因は SoC ウォッチドッグ (TC ブロック) です。ストックカーネルの micom_wdt_thread() は3つのレジスタ書き込みでそれを食い止めています (drivers/rtk_kdriver/platform/tv006/intmicom.c):

root@kitploit:~
TCWCR @ 0xFE062204 <- 0xA5         // unlock
TCWOV @ 0xFE062210 <- 0x0FFFFFFF   // max overflow => huge timeout
TCWTR @ 0xFE062208 <- 0x01         // kick

kexec 下では、ドライバの生の *(volatile*)0xFE062208 = 0x01 はマップされていない 仮想アドレスに到達し、黙って no-op になるため、SoC ウォッチドッグが発火します (約10〜21秒)。micom-pet.c は現在、 同じ書き込みをユーザー空間から /dev/mem (CONFIG_DEVMEM=y) 経由で行います。これは 正しくマップされ、さらに多層防御として /dev/sys-intmicom への 0xB1 キープアライブも送信します。

ステータス: micom-pet.c を書き直し、musl ツールチェーンでコンパイルできます。実機 TV での 5 秒間の 無害なスモークテストにより、実行されてブレッドクラム (0x52455814 = "REX"+ビート) が書き込まれることを確認済みです。 残る唯一の証明は、約 21 秒を超えて起動し続ける kexec -e ブートです — これは TV を 再起動するため、立ち会いでのテストになります。

  • ディスプレイ — パネルはタイル型 FBDC を使用します。生のフレームバッファテキストは実用的ではありません。実際の出力には VCPU RPC (ビデオエンジンへの描画コマンド) が必要です。
  • ネットワーク — ストックの wlan モジュールは、ロードするには vermagic が CONFIG_LOCALVERSION="" と一致する必要があります。まだ initramfs には組み込んでいません。

仕組み (正直なバージョン)

root@kitploit:~
boot ROM → ATF → signed LG kernel (~2 s) → startup.sh
    → kexec -l <our zImage + dtb + initramfs>
    → kexec -e
    → OUR kernel runs in RAM (no eMMC writes)

電源を抜けばストックに戻ります。文鎮化は不可能です。

AI で構築 (全開示)

このリポジトリのほとんどは Rex — AI コーディングエージェントのインスタンス — が、人間が自分の TV を自分のリビングルームで操作するのを支援してまとめたものです。AI は kexec の PoC、ブートチェーン、フレームバッファのカナリア、そしてこれらの RE レポートを書きました。ただし、この README の主張は、人間が TV の電源を入れ、画面を見て、確認した後でのみ記載されています。実機での画面・写真・稼働時間の確認に裏付けられていない主張は、ここにはありません。

このリポジトリの作成で文鎮化した TV はありません。一時的に混乱したものはあります (ウォッチドッグのペットがない kexec カーネルは約 15 秒後にボックスをリセットします) が、その後電源再投入でストックに戻りました。/tmp はリセットのたびに消去されるため、TV は私たちが行ったすべてを忘れます — それがそもそものポイントです。

リポジトリ構成

  • rexos/ — カスタムOS: ブートフック、カーネルビルド、initramfs、RexBus スタブ。
  • kexec-poc/ — ロードのみの概念実証 (PoC) + フレームバッファのカナリアペイロード。
  • docs/ — リバースエンジニアリングのレポート (ブート/セキュリティ、SAM アプリのロード、サーフェスマップ、luna2 スキーマ)。

自分で検証する (必要なもの: 同一機種の TV 50UP81009LR、root化済み、LAN 接続)

以下の手順で、私たちが行ったことを実機で再現できます。偽りは一切ありません。

0. 前提条件

  • LG 50UP81009LR、Homebrew Channel で root化、root SSH 有効、LAN 接続済み。
  • 以下では TV は 192.168.2.103 と仮定しています。異なる場合は編集してください。
  • 一度だけ必要な LG K7LP GPL カーネルソースツリー: KERNEL_SRC=/path/to/linux-4.4.3 を設定 (LG オープンソースサイトから 03.53.45 K7LP GPL ターボールをダウンロード)、または ~/lgtv-toolkit/kernel-src/kernel/linux-4.4.3 へのシンボリックリンクを作成。

1. ツールチェーン + 静的 kexec をビルド (TV 不要、約2分)

root@kitploit:~
git clone https://github.com/ggfuchsi-oss/lg-webos-kexec
cd lg-webos-kexec/kexec-poc && ./build.sh

期待される結果: 静的 ARM kexec バイナリが kexec-arm (168K) として生成され、file では ELF 32-bit LSB ... ARM ... statically linked と表示されます。

2. 安全な PoC を TV で再現 (ステージング + アンロード — ブートなし)

root@kitploit:~
cd ../kexec-poc
./run-poc.sh 192.168.2.103 ~/.ssh/tv_key

期待される結果:

root@kitploit:~
staged before      : 0
staged after load  : 1   <- kernel accepted, DTB wired, segments allocated
staged after unload: 0   <- cleared, TV untouched

これは TV の現在のカーネルそのものを kexec でステージングし、その後すぐにアンロードします。/sys/kernel/kexec_loaded が 1 に切り替わり、その後 0 に戻ります。再起動もカーネル切り替えもなく、永続するものはありません。プラグを抜けばストックです。

3. (立ち会い) 自分のカーネルで起動 — TV は再起動します

TV の電源が入っていて、誰かが立ち会っている場合のみ実行してください:

root@kitploit:~
cd ../rexos
make                            # builds rexos-kernel.zImage + rexos-initramfs.cpio.gz into out/
./boot/rexos-kexec --load-only   # stage, do NOT fire (same safe state as step 2)
# then, when ready to actually jump:
./boot/rexos-kexec               # kexec -e -> our kernel runs in RAM (TV will reset)

ステップ 3 に関する正直な注意点 (隠しているバグではありません):

  • kexec -e の後、新しいカーネルはユーザー空間に到達しますが、micom/SOC ウォッチドッグがペットされていないため、約 10〜21 秒で TV はリセットします。これは現在の壁であり、クラッシュバグではありません。rexos/initramfs/micom-pet.c はこれを修正するためのデーモンです (まだ組み込み中)。
  • ディスプレイはタイル型 FBDC — テキストコンソールはありません。単色のビーコンのみです (kexec-poc/canary/ を参照)。実際のグラフィックスには VCPU RPC パスが必要です (未実装)。
  • 間違ったカーネル/DTB は電源再投入までブラックスクリーンになるだけです。文鎮化は不可能: kexec は RAM にのみ書き込み、eMMC には決して書き込みません。

TL;DR ステータス (正直に)

  • カーネルのステージング/実行プリミティブ: 実証済み (ステップ 2)。✅
  • カスタムカーネルの起動 + ユーザー空間への到達: 実証済み (ステップ 3)。✅
  • 実用的な OS として起動し続ける: まだ — ウォッチドッグとディスプレイが残る壁です。⏳

依存関係 (外部のものを正直に)

このリポジトリにはソース + ドキュメント + TV から取得したビルド入力 (カーネル .config、WiFi モジュール + ファームウェア、rootfs ライブラリ) が含まれますが、約 390 MB の LG K7LP GPL カーネルソースツリー自体は含まれません — それを配布するのは LG の役割であり、私たちが再ホストするものではありません。

カーネルツリーが存在しない場合、make は明確な KERNEL_SRC missing エラーで失敗します — 黙って途中までビルドされることはありません。

新規性 / 先行技術

私たちの知る限り、これは LG webOS TV 向けの公開された最初の kexec ベースのカスタムカーネルブートです。プリミティブ (kexec、root化 webOS、RTD2875) は個々にはすべて既知ですが、このロックダウンされたコンシューマー TV への適用は新しいものと思われます。私たちはセキュアブートの回避を主張しているのではありません — 私たちはそれを迂回しています。

ライセンス

GPL-2.0 (カーネル部分。LG の GPL カーネルソースは GPL)。当スクリプトは GPL 互換です。上流の帰属については CREDITS を参照してください。

ツールをダウンロード
依存関係入手方法
LG K7LP GPL linux-4.4.3 (RTD2875)LG オープンソースサイト → 03.53.45 K7LP GPL ターボール → kernel
musl armv7 クロスツールチェーン (~98 MB)kexec-poc/build.sh が自動取得 (自己完結型)
root化済み TV (50UP81009LR)最初の一度だけ .config の取得に必要 — ただしこの config は現在 rexos/kernel/rexos-tv.config にコミット済みなので、クローンだけでオフラインビルド可能