Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
lg-webos-kexec — Startet einen benutzerdefinierten Linux-Kernel auf gerooteten LG-webOS-TVs über kexec, mit reverse-engineerter SoC-Watchdog-Unterstützung, Framebuffer-Payloads und einem Initramfs-Kernel-Build-Ablauf. | Kitploit
Tools/GitHubGitHub/ggfuchsi-oss/lg-webos-kexec
Embedded-System-SicherheitReverse EngineeringHardware-HackingHardware- & IoT-SicherheitFirmware-Analyse
GitHubggfuchsi-oss/lg-webos-kexec

lg-webos-kexec

Startet einen benutzerdefinierten Linux-Kernel auf gerooteten LG-webOS-TVs über kexec, mit reverse-engineerter SoC-Watchdog-Unterstützung, Framebuffer-Payloads und einem Initramfs-Kernel-Build-Ablauf.

Repository anzeigen
640vor 22 TagenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

lg-webos-kexec

Boote einen eigenen Linux-Kernel auf einem gerooteten LG-webOS-TV per kexec — im RAM, ohne Secure-Boot-Bypass.

Status: Work-in-Progress. Ein eigener Kernel kann gestaged werden und erreicht den Userspace, bleibt aber noch nicht als nutzbares OS aktiv.

Zielgerät

LG 50UP81009LR (webOS 6.5, Realtek RTD2875, armv7l). Gerootet per Homebrew Channel; der signierte Stock-Kernel und der webOS-Userspace bleiben unangetastet.

Was nachgewiesen ist (live verifiziert)

  • kexec -l staged einen Kernel (Stock oder aus dem Quellcode); /sys/kernel/kexec_loaded wechselt auf 1.
  • kexec -e ersetzt den laufenden Kernel (der TV setzt danach auf Stock zurück).
  • Ein selbstgebauter Kernel erreicht den Userspace — verifiziert durch Page Faults im User-Mode = /sbin/init hat echten Code ausgeführt.
  • Winzige Canary-Payloads zeichnen auf den Framebuffer (Ring-0- und Display-Zugriff bestätigt).
  • Die gesamte Kette läuft über das Stock-startup.sh von webOS — der signierte Bootloader / ATF / OP-TEE werden nie angefasst.

Was noch fehlt

  • Watchdog-Pet — REVERSE-ENGINEERED + FIX GESCHRIEBEN, aber noch nicht in einem Live-kexec-Boot bewiesen. Siehe unten.

Watchdog-Pet — gefunden (2026-08-19)

Der Reset kommt vom SoC-Watchdog (TC-Block). Der micom_wdt_thread() des Stock-Kernels hält ihn mit drei Register-Zugriffen in Schach (drivers/rtk_kdriver/platform/tv006/intmicom.c):

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

Unter kexec landet das rohe *(volatile*)0xFE062208 = 0x01 des Treibers auf einer nicht gemappten virtuellen Adresse und ist ein stiller No-Op, wodurch der SoC-Watchdog auslöst (~10–21 s). micom-pet.c führt dieselben Zugriffe jetzt aus dem Userspace über /dev/mem (CONFIG_DEVMEM=y) aus, was korrekt mappt, plus ein 0xB1-Keepalive an /dev/sys-intmicom als Defense-in-Depth.

Status: micom-pet.c neu geschrieben, kompiliert mit dem musl-Toolchain, und ein 5-Sekunden-Smoke-Test auf dem Live-TV hat bestätigt, dass es läuft und seine Brotkrumen schreibt (0x52455814 = "REX"+Beat). Der einzige fehlende Beweis ist ein kexec -e-Boot, der länger als ~21 s oben bleibt — das startet den TV neu, ist also ein beaufsichtigter Test.

  • Display — das Panel nutzt getiiltes FBDC; roher Framebuffer-Text ist unbrauchbar. Echte Ausgabe braucht die VCPU-RPC (Zeichenbefehle an die Video-Engine).
  • Netzwerk — das Stock-wlan-Modul muss in der Vermagic zu CONFIG_LOCALVERSION="" passen, um zu laden; noch nicht in das Initramfs eingebunden.

So funktioniert es (ehrliche Version)

root@kitploit:~
boot ROM → ATF → signierter LG-Kernel (~2 s) → startup.sh
    → kexec -l <unser zImage + dtb + initramfs>
    → kexec -e
    → UNSER Kernel läuft im RAM (keine eMMC-Schreibvorgänge)

Netzstecker ziehen = Stock. Es kann nicht gebrickt werden.

Mit KI erstellt (volle Offenlegung)

Der größte Teil dieses Repos wurde von Rex zusammengestellt — einer KI-Coding-Agent-Instanz — die einem Menschen half, an seinem eigenen TV im eigenen Wohnzimmer zu arbeiten. Die KI hat den kexec-PoC, die Boot-Kette, die Framebuffer-Canaries und diese RE-Ausarbeitungen geschrieben. Aber die Behauptungen in dieser README wurden immer erst aufgestellt, nachdem der Mensch den TV eingeschaltet, auf den Bildschirm geschaut und es bestätigt hat. Wenn eine Behauptung nicht durch einen echten Screen-/Foto-/Uptime-Check der Hardware gestützt ist, steht sie nicht hier.

Beim Erstellen dieses Repos wurde kein TV gebrickt. Einige waren kurzzeitig verwirrt (ein gekexecter Kernel ohne Watchdog-Pet setzt die Box nach ~15 s zurück), wurden dann aber per Netzstecker zurück auf Stock gebracht. /tmp wird bei jedem Reset gelöscht, also vergisst der TV alles, was wir getan haben — genau das ist der Punkt.

Repo-Struktur

  • rexos/ — das eigene OS: Boot-Hook, Kernel-Build, Initramfs, RexBus-Stub.
  • kexec-poc/ — der Load-only-Proof-of-Concept + Framebuffer-Canary-Payloads.
  • docs/ — Reverse-Engineering-Ausarbeitungen (Boot/Security, SAM-App-Laden, Surface-Map, luna2-Schema).

Selbst verifizieren (du brauchst genau diesen TV: 50UP81009LR, gerootet, im LAN)

Diese Schritte reproduzieren das, was wir getan haben, auf genau dieser Hardware. Nichts ist gefälscht.

0. Voraussetzungen

  • LG 50UP81009LR, gerootet per Homebrew Channel, Root-SSH aktiviert, in deinem LAN.
  • Der TV ist unten standardmäßig 192.168.2.103; anpassen, falls deiner abweicht.
  • Einmalig der LG-K7LP-GPL-Kernelquellbaum: KERNEL_SRC=/path/to/linux-4.4.3 setzen (das 03.53.45-K7LP-GPL-Tarball von LG Open Source herunterladen) oder ~/lgtv-toolkit/kernel-src/kernel/linux-4.4.3 verlinken.

1. Toolchain + statisches kexec bauen (kein TV nötig, ~2 Min.)

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

Erwartet: ein statisches ARM-kexec-Binary unter kexec-arm (168K, file zeigt ELF 32-bit LSB ... ARM ... statically linked).

2. Den sicheren PoC auf deinem TV reproduzieren (staged und entladen — kein Boot)

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

Erwartetes Ergebnis:

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

Das staged den eigenen aktuellen Kernel des TVs per kexec und entlädt ihn sofort wieder. /sys/kernel/kexec_loaded wechselt auf 1 und dann zurück auf 0. Kein Neustart, kein Kernel-Wechsel, nichts bleibt erhalten. Netzstecker ziehen = Stock.

3. (Mit Aufsicht) eigenen Kernel booten — startet den TV neu

Nur durchführen, wenn der TV an ist und jemand anwesend ist:

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)

Bekannte ehrliche Einschränkungen bei Schritt 3 (keine versteckten Bugs):

  • Nach kexec -e erreicht der neue Kernel den Userspace, aber der TV setzt nach ~10–21 s zurück, weil der Micom/SoC-Watchdog nicht gepetted wird. Das ist die aktuelle Hürde, kein Crash-Bug. rexos/initramfs/micom-pet.c ist der Daemon, der das beheben soll (noch nicht eingebunden).
  • Das Display ist getiiltes FBDC — es gibt keine Textkonsole; nur einfarbige Beacon-Signale (siehe kexec-poc/canary/). Echte Grafik braucht den VCPU-RPC-Pfad (nicht erledigt).
  • Ein falscher Kernel/DTB führt nur zu einem schwarzen Bild, bis der Stromkreis unterbrochen wird. Es kann nicht bricked werden: kexec schreibt nur in den RAM, nie in den eMMC.

TL;DR-Status (ehrlich)

  • Kernel-Staging-/Ausführungs-Primitive: bewiesen (Schritt 2). ✅
  • Eigener Kernel bootet und erreicht den Userspace: bewiesen (Schritt 3). ✅
  • Bleibt als nutzbares OS aktiv: noch nicht — Watchdog und Display sind die verbleibenden Hürden. ⏳

Abhängigkeiten (ehrlich, was extern ist)

Dieses Repo enthält Quellcode + Doku + die vom TV erfassten Build-Inputs (Kernel-.config, WLAN-Modul + Firmware, Rootfs-Bibliotheken), aber nicht den ~390 MB großen LG-K7LP-GPL-Kernelquellbaum selbst — der gehört LG, nicht uns zum erneuten Hosten.

make schlägt mit einer klaren KERNEL_SRC missing-Meldung fehl, wenn der Kernelbaum nicht vorhanden ist — es gibt keinen stillen Halb-Build.

Neuheit / Stand der Technik

Soweit wir das beurteilen können, ist dies der erste öffentliche kexec-basierte Custom-Kernel-Boot für einen LG-webOS-TV. Die Bausteine (kexec, gerootetes webOS, RTD2875) sind einzeln alle bekannt; die Anwendung auf diesen abgesicherten Consumer-TV scheint neu zu sein. Wir behaupten keinen Secure-Boot-Bypass — wir umgehen ihn.

Lizenz

GPL-2.0 (Kernel-Arbeit; LGs GPL-Kernelquelle ist GPL). Unsere Skripte sind GPL-kompatibel. Siehe CREDITS für Upstream-Attribution.

Tool herunterladen
AbhängigkeitWie du sie bekommst
LG-K7LP-GPL linux-4.4.3 (RTD2875)LG-Open-Source-Seite → 03.53.45-K7LP-GPL-Tarball → kernel
musl-armv7-Cross-Toolchain (~98 MB)automatisch geladen von kexec-poc/build.sh (in sich geschlossen)
Ein gerooteter TV (50UP81009LR)nur beim ersten Mal nötig, um die .config zu erfassen — diese Config ist jetzt aber eingecheckt unter rexos/kernel/rexos-tv.config, ein Klon baut also offline