Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
sjcam — Ricerca di reverse engineering e firmware personalizzato per telecamere IoT basate su Allwinner V3, inclusi parser di firmware, un client AVIOCTRL e un proof of concept per CVE-2026-52656 per la sostituzione non autenticata del firmware via OTA. | Kitploit
Strumenti/GitHubGitHub/keowu/sjcam
Sicurezza Sistemi EmbeddedSicurezza IoTAnalisi delle VulnerabilitàExploitReverse EngineeringPenetration TestingSicurezza HardwarePaper e RicercaApprendimento e FormazioneAnalisi del Firmware
GitHub
81202 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
keowu/sjcam

sjcam

Ricerca di reverse engineering e firmware personalizzato per telecamere IoT basate su Allwinner V3, inclusi parser di firmware, un client AVIOCTRL e un proof of concept per CVE-2026-52656 per la sostituzione non autenticata del firmware via OTA.

Vedi RepositorySito web

Lelouch: Ricerca sul firmware SJCAM SJ4000 e Firmware Personalizzato

CI

Lelouch project banner

Trocar para Português (Brasil)

Note di reverse engineering, strumenti per il firmware, codice proof-of-concept e un'interfaccia firmware personalizzata per la versione Allwinner V3 della SJCAM SJ4000 Air.

Articolo di ricerca

Questo repository contiene il codice e gli artefatti prodotti durante la ricerca. L'articolo completo spiega l'indagine dal primo dump del firmware al firmware personalizzato Lelouch.

Leggi l'articolo di ricerca completo in inglese) o Portoghese.

Informazioni sul progetto

Questo lavoro è iniziato con una semplice domanda: quanto controllo potrei ottenere su una action camera economica senza documentazione, codice sorgente o supporto del produttore?

La fotocamera si è rivelata utilizzare un SoC Allwinner V3 e un sistema Android 4.4 pesantemente modificato. La sua applicazione principale, sdv, comunica con servizi proprietari della fotocamera e del display tramite Binder, renderizza l'interfaccia con MiniGUI, espone un server HTTP per gli aggiornamenti del firmware e comunica con l'applicazione SJCAM Zone tramite un protocollo proprietario.

Il repository documenta il percorso dall'estrazione del firmware a una sostituta funzionante per sdv. Include strumenti per i formati di firmware incontrati durante la ricerca, database IDA per i binari reversati, un client AVIOCTRL, il codice sorgente del firmware personalizzato Lelouch e il proof of concept associato a CVE-2026-52656.

Il codice è destinato alla scheda Allwinner V3 studiata con un controller display ST7789V e un sensore immagine GC4653. Le unità SJ4000 più vecchie basate su Novatek NT9665X sono incluse solo come parte della ricerca precedente e utilizzano un formato firmware diverso. I soli nomi dei prodotti non sono sufficienti per stabilire la compatibilità.

Lelouch

Lelouch è un'interfaccia sostitutiva per l'eseguibile sdv originale della fotocamera. È costruita utilizzando le librerie proprietarie recuperate dal firmware e utilizza le stesse interfacce interne dell'applicazione originale.

L'implementazione attuale include:

  • Anteprima della fotocamera attraverso le interfacce reversate HerbCamera e CedarDisplay
  • Un'interfaccia MiniGUI progettata per il display 320x240 della fotocamera e i pulsanti fisici
  • Controllo dell'hotspot Wi-Fi attraverso il livello di astrazione hardware Allwinner
  • Modalità stazione Wi-Fi utilizzando una build ARMv7 personalizzata di wpa_supplicant
  • Un piccolo browser testuale con tastiera sul dispositivo
  • Rilevamento del movimento sui fotogrammi di anteprima e codice sperimentale di rilevamento facciale con cascata Haar
  • Viste di stato di batteria, ora, fotocamera, rete e debug
  • Inizializzazione Binder e comunicazione con i servizi già presenti nel firmware

Lelouch non è una distribuzione completa o un firmware generico per ogni prodotto venduto come SJ4000. Dipende dalle librerie, kernel, servizi, layout delle partizioni, controller display, sensore immagine e configurazione della scheda utilizzati dall'unità Allwinner V3 studiata.

Struttura del repository

PercorsoContenuto
Lelouch/Interfaccia firmware personalizzata, ambiente di build, header recuperati, librerie condivise proprietarie e sorgente modificato di wpa_supplicant
Reversing Scripts/Parser e reimpacchettatori per firmware Allwinner IMAGEWTY, Allwinner eGON e Novatek BCL1
AVIOCTRL Script/ウタ.pyClient interattivo per il protocollo TCP proprietario utilizzato da SJCAM Zone
Bin Files/Database IDA per gli eseguibili principali e le librerie condivise analizzati durante la ricerca
Firmwares Files/Campioni di firmware Allwinner e Novatek utilizzati durante lo sviluppo
POC/Proof of concept per CVE-2026-52656, immagine eGON creata e payload dimostrativo per framebuffer/audio

Alcune directory contengono materiale di terze parti o proprietario recuperato dal dispositivo. La loro presenza è a scopo di interoperabilità e ricerca sulla sicurezza e non rende tali componenti open source.

Compilazione di Lelouch

La compilazione è stata testata su Linux x86-64. Sono necessari Python 3, GNU Make, Git, un ambiente di build C/C++ e accesso alla rete per il download iniziale della toolchain.

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

prepare_build.py scarica un sysroot Android API level 14 bloccato e il cross-compilatore ARM arm-linux-androideabi-4.6 in Lelouch/android_compilers/. Successivamente compila il wpa_supplicant statico modificato ed esegue make. I file della toolchain scaricati e i binari generati vengono ignorati da Git.

I file risultanti sono:

Lelouch/Lelouch
Lelouch/wpa_supplicant

Per ricompilare dopo aver modificato i sorgenti C++:

cd Lelouch
make clean
make

Il binario Lelouch generato è destinato a sostituire /bin/sdv nel filesystem root estratto. La modalità stazione Wi-Fi prevede anche che il wpa_supplicant compilato si trovi in /mnt/extsd/sta/wpa_supplicant sulla scheda SD della fotocamera.

Il codice sperimentale di rilevamento facciale cerca il file della cascata generato in:

/mnt/extsd/frontalface.casc

Il repository include una cascata pre-generata e il convertitore utilizzato per crearla:

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

La procedura completa di estrazione, sostituzione del filesystem root, reimpacchettamento e flashing con LiveSuit è documentata nell'articolo di ricerca collegato all'inizio di questa pagina.

Strumenti firmware

Tutti i punti di ingresso dei parser sono script Python 3 con output --help integrato e nessuna dipendenza Python di terze parti.

Allwinner IMAGEWTY

Legge l'immagine firmware LiveSuit esterna, estrae i suoi file e ricostruisce un'immagine da una directory estratta.

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

Ispeziona, estrae e reimpacchetta il contenitore full_img.fex trovato all'interno dell'immagine 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

Il packer utilizza il file originale come modello in modo che il layout originale e i metadati possano essere preservati mentre le partizioni vengono sostituite.

Novatek BCL1

Decomprime il contenitore BCL1 utilizzato dal firmware SJ4000 più vecchio basato su Novatek e può scansionare il risultato per risorse e sezioni firmware incorporate.

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

Client AVIOCTRL

Scarica lo strumento