Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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
sjcam — Reverse-Engineering-Forschung und Custom-Firmware für Allwinner-V3-basierte IoT-Kameras, einschließlich Firmware-Parsern, einem AVIOCTRL-Client und einem Proof of Concept für CVE-2026-52656 zum OTA-Firmware-Austausch ohne Authentifizierung. | Kitploit
Tools/GitHubGitHub/keowu/sjcam
Embedded-System-SicherheitIoT-SicherheitSchwachstellenanalyseExploitationReverse EngineeringPenetrationstestsHardware-SicherheitPapers & ForschungLernen & BildungFirmware-Analyse
GitHub
8120vor 2 MonatenNoch 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
keowu/sjcam

sjcam

Reverse-Engineering-Forschung und Custom-Firmware für Allwinner-V3-basierte IoT-Kameras, einschließlich Firmware-Parsern, einem AVIOCTRL-Client und einem Proof of Concept für CVE-2026-52656 zum OTA-Firmware-Austausch ohne Authentifizierung.

Repository anzeigenWebseite

Lelouch: SJCAM-SJ4000-Firmware-Forschung und Custom-Firmware

CI

Lelouch-Projektbanner

Auf Portugiesisch (Brasilien) wechseln

Reverse-Engineering-Notizen, Firmware-Werkzeuge, Proof-of-Concept-Code und eine Custom-Firmware-Schnittstelle für die Allwinner-V3-Version der SJCAM SJ4000 Air.

Forschungsartikel

Dieses Repository enthält den Code und die Artefakte, die während der Forschung entstanden sind. Der vollständige Artikel erläutert die Untersuchung vom ersten Firmware-Dump bis zur Lelouch-Custom-Firmware.

Den vollständigen Forschungsartikel auf Englisch lesen) oder auf Portugiesisch.

Über das Projekt

Diese Arbeit begann mit einer einfachen Frage: Wie viel Kontrolle kann ich über eine günstige Action-Kamera erlangen, ohne Dokumentation, Quellcode oder Herstellerunterstützung?

Es stellte sich heraus, dass die Kamera einen Allwinner-V3-SoC und ein stark modifiziertes Android-4.4-System verwendet. Ihre Hauptanwendung sdv kommuniziert über Binder mit proprietären Kamera- und Anzeigediensten, rendert die Oberfläche mit MiniGUI, stellt einen HTTP-Server für Firmware-Updates bereit und kommuniziert über ein proprietäres Protokoll mit der Anwendung SJCAM Zone.

Das Repository dokumentiert den Weg von der Firmware-Extraktion bis zu einem funktionierenden Ersatz für sdv. Es enthält Werkzeuge für die während der Forschung angetroffenen Firmware-Formate, IDA-Datenbanken für die rekonstruierten Binärdateien, einen AVIOCTRL-Client, den Quellcode der Lelouch-Custom-Firmware und den Proof of Concept zu CVE-2026-52656.

Der Code zielt auf das untersuchte Allwinner-V3-Board mit einem ST7789V-Display-Controller und einem GC4653-Bildsensor. Ältere SJ4000-Geräte auf Basis des Novatek NT9665X sind nur als Teil der früheren Forschung enthalten und verwenden ein anderes Firmware-Format. Produktnamen allein reichen nicht aus, um Kompatibilität herzustellen.

Lelouch

Lelouch ist eine Ersatzoberfläche für das ursprüngliche sdv-Programm der Kamera. Es wurde gegen die proprietären Bibliotheken entwickelt, die aus der Firmware gewonnen wurden, und verwendet dieselben internen Schnittstellen wie die ursprüngliche Anwendung.

Die aktuelle Implementierung umfasst:

  • Kameravorschau über die rekonstruierten HerbCamera- und CedarDisplay-Schnittstellen
  • Eine MiniGUI-Oberfläche, die für das 320x240-Display der Kamera und die physischen Tasten entwickelt wurde
  • Steuerung des Wi-Fi-Hotspots über die Allwinner-Hardwareabstraktionsschicht
  • Wi-Fi-Stationsmodus mithilfe eines eigenen ARMv7-Builds von wpa_supplicant
  • Ein kleiner Textbrowser mit einer geräteeigenen Tastatur
  • Bewegungserkennung an Vorschaubildern und experimenteller Gesichtserkennungscode mit Haar-Kaskade
  • Batterie-, Zeit-, Kamera-, Netzwerk- und Debug-Statusansichten
  • Binder-Initialisierung und Kommunikation mit den bereits in der Firmware vorhandenen Diensten

Lelouch ist keine vollständige Distribution und keine generische Firmware für jedes als SJ4000 verkaufte Produkt. Es hängt von den Bibliotheken, dem Kernel, den Diensten, dem Partitionslayout, dem Display-Controller, dem Bildsensor und der Board-Konfiguration ab, die in dem untersuchten Allwinner-V3-Gerät verwendet werden.

Repository-Struktur

PfadInhalt
Lelouch/Custom-Firmware-Schnittstelle, Build-Umgebung, wiederhergestellte Header, proprietäre Shared Libraries und modifizierter wpa_supplicant-Quellcode
Reversing Scripts/Parser und Repacker für Allwinner-IMAGEWTY-, Allwinner-eGON- und Novatek-BCL1-Firmware
AVIOCTRL Script/ウタ.pyInteraktiver Client für das proprietäre TCP-Protokoll, das von SJCAM Zone verwendet wird
Bin Files/IDA-Datenbanken für die wichtigsten ausführbaren Dateien und Shared Libraries, die während der Forschung analysiert wurden
Firmwares Files/Allwinner- und Novatek-Firmware-Beispiele, die während der Entwicklung verwendet wurden
POC/CVE-2026-52656-Proof-of-Concept, manipuliertes eGON-Image und die Demo-Payload für Framebuffer/Audio

Einige Verzeichnisse enthalten Material von Dritten oder proprietäres Material, das vom Gerät stammt. Ihre Bereitstellung dient der Interoperabilität und Sicherheitsforschung und macht diese Komponenten nicht zu Open Source.

Lelouch erstellen

Der Build wurde unter x86-64-Linux getestet. Du benötigst Python 3, GNU Make, Git, eine C/C++-Build-Umgebung und Netzwerkzugriff für den anfänglichen Download der Toolchain.

git clone https://github.com/keowu/sjcam.git
cd sjcam/Lelouch
python3 prepare_build.py

prepare_build.py lädt ein auf API-Level 14 festgelegtes Android-Sysroot und den ARM-Cross-Compiler arm-linux-androideabi-4.6 in Lelouch/android_compilers/ herunter. Anschließend baut es das modifizierte statische wpa_supplicant und führt make aus. Die heruntergeladenen Compiler-Dateien und erzeugten Binärdateien werden von Git ignoriert.

Die resultierenden Dateien sind:

Lelouch/Lelouch
Lelouch/wpa_supplicant

Um nach Änderungen an den C++-Quellen neu zu bauen:

cd Lelouch
make clean
make

Das erzeugte Lelouch-Binary soll /bin/sdv im extrahierten Root-Dateisystem ersetzen. Der Wi-Fi-Stationsmodus erwartet das gebaute wpa_supplicant ebenfalls unter /mnt/extsd/sta/wpa_supplicant auf der SD-Karte der Kamera.

Der experimentelle Gesichtserkennungscode sucht nach der erzeugten Kaskadendatei unter:

/mnt/extsd/frontalface.casc

Das Repository enthält eine vorab erzeugte Kaskade und den Konverter, der zu ihrer Erstellung verwendet wurde:

cd Lelouch/gen_cascade
python3 gen_cascade.py haarcascade_frontalface_alt2.xml frontalface.casc

Das vollständige Verfahren zum Extrahieren, Ersetzen des Root-Dateisystems, Neupacken und Flashen mit LiveSuit ist im Forschungsartikel dokumentiert, der oben auf dieser Seite verlinkt ist.

Firmware-Werkzeuge

Alle Parser-Einstiegspunkte sind Python-3-Skripte mit integrierter --help-Ausgabe und ohne Python-Abhängigkeiten von Drittanbietern.

Allwinner IMAGEWTY

Liest das äußere LiveSuit-Firmware-Image, extrahiert dessen Dateien und erstellt aus einem extrahierten Verzeichnis ein Image neu.

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

Untersucht, extrahiert und packt den full_img.fex-Container neu, der sich im IMAGEWTY-Image befindet.

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

Der Packer verwendet die Originaldatei als Vorlage, damit das ursprüngliche Layout und die Metadaten erhalten bleiben können, während Partitionen ersetzt werden.

Novatek BCL1

Dekomprimiert den BCL1-Container, der von älteren Novatek-basierten SJ4000-Firmwares verwendet wird, und kann das Ergebnis nach eingebetteten Assets und Firmware-Abschnitten durchsuchen.

Tool herunterladen