Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
sjcam — Recherche en rétro-ingénierie et firmware personnalisé pour les caméras IoT basées sur Allwinner V3, incluant des analyseurs de firmware, un client AVIOCTRL et une preuve de concept de la CVE-2026-52656 pour le remplacement non authentifié de firmware OTA. | Kitploit
Outils/GitHubGitHub/keowu/sjcam
Sécurité des Systèmes EmbarquésSécurité IoTAnalyse des VulnérabilitésExploitationRétro-ingénierieTests d'IntrusionSécurité MatérielleArticles et RechercheApprentissage et ÉducationAnalyse de Micrologiciel
GitHub
8120il y a 2 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
keowu/sjcam

sjcam

Recherche en rétro-ingénierie et firmware personnalisé pour les caméras IoT basées sur Allwinner V3, incluant des analyseurs de firmware, un client AVIOCTRL et une preuve de concept de la CVE-2026-52656 pour le remplacement non authentifié de firmware OTA.

Voir le dépôtSite web

Lelouch : Recherche sur le firmware SJCAM SJ4000 et firmware personnalisé

CI

Bannière du projet Lelouch

Trocar para Português (Brasil)

Notes de rétro-ingénierie, outils pour le firmware, code de preuve de concept et une interface de firmware personnalisé pour la version Allwinner V3 du SJCAM SJ4000 Air.

Article de recherche

Ce dépôt contient le code et les artefacts produits lors de la recherche. L'article complet explique l'investigation depuis le premier dump du firmware jusqu'au firmware personnalisé Lelouch.

Lire l'article de recherche complet en anglais) ou en portugais.

À propos du projet

Ce travail a commencé avec une simple question : quel degré de contrôle pouvais-je obtenir sur une caméra d'action bon marché sans documentation, code source ni support du fabricant ?

La caméra s'est avérée utiliser un SoC Allwinner V3 et un système Android 4.4 fortement modifié. Son application principale, sdv, communique avec des services propriétaires de caméra et d'affichage via Binder, rend l'interface avec MiniGUI, expose un serveur HTTP pour les mises à jour du firmware et communique avec l'application SJCAM Zone via un protocole propriétaire.

Ce dépôt documente le chemin depuis l'extraction du firmware jusqu'à un remplacement fonctionnel de sdv. Il comprend des outils pour les formats de firmware rencontrés lors de la recherche, des bases de données IDA pour les binaires rétro-conçus, un client AVIOCTRL, le code source du firmware personnalisé Lelouch, et la preuve de concept associée à CVE-2026-52656.

Le code cible la carte Allwinner V3 étudiée, avec un contrôleur d'affichage ST7789V et un capteur d'image GC4653. Les anciennes unités SJ4000 basées sur Novatek NT9665X ne sont incluses que dans le cadre des premières recherches et utilisent un format de firmware différent. Les seuls noms de produits ne suffisent pas pour établir la compatibilité.

Lelouch

Lelouch est une interface de remplacement pour l'exécutable sdv d'origine de la caméra. Il est construit sur les bibliothèques propriétaires récupérées du firmware et utilise les mêmes interfaces internes que l'application d'origine.

L'implémentation actuelle comprend :

  • Aperçu de la caméra via les interfaces rétro-conçues HerbCamera et CedarDisplay
  • Une interface MiniGUI conçue pour l'écran 320x240 de la caméra et ses boutons physiques
  • Contrôle du point d'accès Wi-Fi via la couche d'abstraction matérielle Allwinner
  • Mode station Wi-Fi utilisant une version ARMv7 personnalisée de wpa_supplicant
  • Un petit navigateur de texte avec un clavier intégré à l'appareil
  • Détection de mouvement sur les images de l'aperçu et code expérimental de détection de visages par cascade Haar
  • Affichages de l'état de la batterie, de l'heure, de la caméra, du réseau et du débogage
  • Initialisation de Binder et communication avec les services déjà présents dans le firmware

Lelouch n'est ni une distribution complète ni un firmware générique pour tous les produits vendus sous le nom SJ4000. Il dépend des bibliothèques, du noyau, des services, de la disposition des partitions, du contrôleur d'affichage, du capteur d'image et de la configuration de la carte utilisés par l'unité Allwinner V3 étudiée.

Structure du dépôt

CheminContenu
Lelouch/Interface du firmware personnalisé, environnement de construction, en-têtes récupérés, bibliothèques partagées propriétaires et source modifiée de wpa_supplicant
Reversing Scripts/Analyseurs et reconditionneurs pour les firmwares Allwinner IMAGEWTY, Allwinner eGON et Novatek BCL1
AVIOCTRL Script/ウタ.pyClient interactif pour le protocole TCP propriétaire utilisé par SJCAM Zone
Bin Files/Bases de données IDA pour les principaux exécutables et bibliothèques partagées analysés lors de la recherche
Firmwares Files/Échantillons de firmware Allwinner et Novatek utilisés lors du développement
POC/Preuve de concept CVE-2026-52656, image eGON fabriquée, et charge utile de démonstration framebuffer/audio

Certains répertoires contiennent du matériel tiers ou propriétaire récupéré de l'appareil. Leur présence est destinée à l'interopérabilité et à la recherche en sécurité et ne rend pas ces composants open source.

Construction de Lelouch

La construction a été testée sur Linux x86-64. Vous avez besoin de Python 3, GNU Make, Git, d'un environnement de construction C/C++ et d'un accès réseau pour le téléchargement initial de la chaîne de compilation.

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

prepare_build.py télécharge un sysroot Android API niveau 14 épinglé et le compilateur croisé ARM arm-linux-androideabi-4.6 dans Lelouch/android_compilers/. Il construit ensuite le wpa_supplicant statique modifié et exécute make. Les fichiers du compilateur téléchargés et les binaires générés sont ignorés par Git.

Les fichiers résultants sont :

Lelouch/Lelouch
Lelouch/wpa_supplicant

Pour reconstruire après avoir modifié les sources C++ :

cd Lelouch
make clean
make

Le binaire Lelouch généré est destiné à remplacer /bin/sdv dans le système de fichiers racine extrait. Le mode station Wi-Fi attend également le wpa_supplicant construit à l'emplacement /mnt/extsd/sta/wpa_supplicant sur la carte SD de la caméra.

Le code expérimental de détection de visages cherche le fichier de cascade généré à :

/mnt/extsd/frontalface.casc

Le dépôt inclut une cascade pré-générée et le convertisseur utilisé pour la créer :

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

La procédure complète d'extraction, de remplacement du système de fichiers racine, de reconditionnement et de flashage via LiveSuit est documentée dans l'article de recherche lié en haut de cette page.

Outils pour le firmware

Tous les points d'entrée des analyseurs sont des scripts Python 3 avec une sortie --help intégrée et aucune dépendance Python tierce.

Allwinner IMAGEWTY

Lit l'image firmware LiveSuit externe, extrait ses fichiers et reconstruit une image à partir d'un répertoire extrait.

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

Inspecte, extrait et reconditionne le conteneur full_img.fex trouvé à l'intérieur de l'image IMAGEWTY.

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

Le reconditionneur utilise le fichier original comme modèle afin de préserver la disposition et les métadonnées originales tout en remplaçant les partitions.

Novatek BCL1

Télécharger l’outil