Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
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
GitHubkeowu/sjcam
81111 mese 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

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

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.

root@kitploit:~
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:

root@kitploit:~
Lelouch/Lelouch
Lelouch/wpa_supplicant

Per ricompilare dopo aver modificato i sorgenti C++:

root@kitploit:~
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:

root@kitploit:~
/mnt/extsd/frontalface.casc

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

root@kitploit:~
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.

root@kitploit:~
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.

root@kitploit:~
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.

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

Client AVIOCTRL

ウタ.py implementa il protocollo TCP proprietario utilizzato dall'applicazione mobile per controllare la fotocamera sulla porta 6666. Gestisce la sequenza di login della fotocamera, i messaggi keepalive, i frame IOCTRL, il trasferimento file e le richieste di streaming video utilizzando solo la libreria standard di Python.

Collega il tuo computer alla rete Wi-Fi della fotocamera ed esegui:

root@kitploit:~
python3 "AVIOCTRL Script/ウタ.py"

Il target predefinito è 192.168.100.1:6666. Un indirizzo diverso può essere fornito quando necessario:

root@kitploit:~
python3 "AVIOCTRL Script/ウタ.py" --host 192.168.100.1 --port 6666 --debug

Il client interattivo può leggere la batteria e la configurazione, ispezionare la scheda SD, scattare foto, avviare o interrompere la registrazione, elencare, caricare, scaricare o eliminare file, richiedere miniature, configurare il Wi-Fi, richiedere lo streaming video e inviare comandi IOCTRL manuali.

Formattare la scheda SD, eliminare file, modificare le impostazioni Wi-Fi ed eseguire un reset di fabbrica modificano la fotocamera. Usa questi comandi solo su hardware e dati di tua proprietà.

CVE-2026-52656

Il firmware studiato espone un endpoint HTTP non autenticato mentre l'hotspot della fotocamera è attivo. Accetta caricamenti di file arbitrari e li scrive direttamente sulla scheda SD senza convalidare né il client né il contenuto caricato. Ciò consente la sostituzione completa del firmware perché un attaccante può caricare un'immagine eGON personalizzata denominata full_img.fex; la fotocamera riconosce quel nome file come un pacchetto OTA e installa il firmware controllato dall'attaccante attraverso il suo normale flusso di aggiornamento, come se fosse un aggiornamento ufficiale.

Uno sfruttamento riuscito dà al firmware caricato il controllo completo sul software in esecuzione sul dispositivo. Il proof of concept incluso lo dimostra sostituendo l'applicazione originale con un payload MiniGUI/AudioTrack personalizzato che riproduce il video Bad Apple!! utilizzando frame RGB565 grezzi e audio PCM dopo l'installazione dell'immagine OTA maliziosa.

La directory POC/ contiene:

  • run_exploit.sh, che carica il full_img.fex controllato dall'attaccante sulla fotocamera
  • full_img.fex, l'immagine firmware eGON creata accettata dal meccanismo di aggiornamento OTA della fotocamera
  • バイバイ/, il payload MiniGUI e AudioTrack Bad Apple!! utilizzato per dimostrare l'esecuzione arbitraria di codice dopo l'aggiornamento
  • extract_rgb_pcm_from_mp4/, un helper per convertire il video dimostrativo in dati RGB565 grezzi e PCM

L'helper di conversione multimediale richiede ffmpeg. I file generati video.rgb e audio.pcm sono attesi dal payload dimostrativo nella root della scheda SD della fotocamera.

Il proof of concept è di natura distruttiva. Un'immagine malformata o incompatibile può bloccare permanentemente la fotocamera. Non eseguirlo su dispositivi che non possiedi o senza un percorso di recupero completo.

Ambito della ricerca

Il progetto è stato creato per il reverse engineering, l'interoperabilità, l'istruzione e la ricerca sulla sicurezza su hardware acquisito legalmente dall'autore. SJCAM, Allwinner, Novatek, Android e i nomi dei loro componenti appartengono ai rispettivi proprietari.

Il repository contiene codice sorgente originale insieme a campioni di firmware, database di reverse engineering, header e librerie condivise provenienti da prodotti di terze parti. Nessuna licenza è concessa per materiale di terze parti. Verifica la provenienza e la legge applicabile prima di ridistribuire o utilizzare tali file al di fuori di un ambiente di ricerca.

Attualmente non esiste una licenza open source a livello di repository. Il sorgente di wpa_supplicant mantiene la propria licenza upstream in Lelouch/modified_lelouch_wpa_supplicant_source/COPYING.

Scarica lo strumento
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