Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
sjcam — Pesquisa de engenharia reversa e firmware personalizado para câmeras IoT baseadas em Allwinner V3, incluindo analisadores de firmware, um cliente AVIOCTRL e uma prova de conceito CVE-2026-52656 para substituição de firmware OTA não autenticada. | Kitploit
Ferramentas/GitHubGitHub/keowu/sjcam
Segurança de Sistemas EmbarcadosSegurança IoTAnálise de VulnerabilidadesExploraçãoEngenharia ReversaTestes de PenetraçãoSegurança de HardwarePapers e PesquisaAprendizado e EducaçãoAnálise de Firmware
GitHub
8120há 2 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
keowu/sjcam

sjcam

Pesquisa de engenharia reversa e firmware personalizado para câmeras IoT baseadas em Allwinner V3, incluindo analisadores de firmware, um cliente AVIOCTRL e uma prova de conceito CVE-2026-52656 para substituição de firmware OTA não autenticada.

Ver RepositórioSite

Lelouch: Pesquisa de Firmware e Firmware Customizado para a SJCAM SJ4000

CI

Banner do projeto Lelouch

Switch to English version

Notas de engenharia reversa, ferramentas para firmware, código de prova de conceito e uma interface de firmware customizada para a versão Allwinner V3 da SJCAM SJ4000 Air.

Artigo da pesquisa

Este repositório contém o código e os artefatos produzidos durante a pesquisa. O artigo completo explica a investigação desde o primeiro dump do firmware até o firmware customizado Lelouch.

Leia o artigo completo da pesquisa em inglês ou português.

Sobre o projeto

Este trabalho começou com uma pergunta simples: quanto controle eu conseguiria obter sobre uma action camera barata sem documentação, código-fonte ou suporte do fabricante?

Descobri que a câmera utiliza um SoC Allwinner V3 e um sistema Android 4.4 fortemente modificado. Sua aplicação principal, sdv, comunica-se com serviços proprietários de câmera e display por meio do Binder, renderiza a interface com MiniGUI, expõe um servidor HTTP para atualizações de firmware e comunica-se com o aplicativo SJCAM Zone por meio de um protocolo proprietário.

O repositório documenta o caminho desde a extração do firmware até uma substituição funcional para o sdv. Ele inclui ferramentas para os formatos de firmware encontrados durante a pesquisa, bancos de dados do IDA para os binários revertidos, um cliente AVIOCTRL, o código-fonte do firmware customizado Lelouch e a prova de conceito associada à CVE-2026-52656.

O código tem como alvo a placa Allwinner V3 pesquisada, com controlador de display ST7789V e sensor de imagem GC4653. Unidades SJ4000 mais antigas, baseadas no Novatek NT9665X, estão incluídas somente como parte da pesquisa anterior e utilizam um formato de firmware diferente. Apenas o nome do produto não é suficiente para determinar a compatibilidade.

Lelouch

Lelouch é uma interface substituta para o executável sdv original da câmera. Ele é compilado com as bibliotecas proprietárias recuperadas do firmware e utiliza as mesmas interfaces internas da aplicação original.

A implementação atual inclui:

  • Preview da câmera por meio das interfaces revertidas HerbCamera e CedarDisplay
  • Uma interface MiniGUI projetada para o display de 320x240 da câmera e seus botões físicos
  • Controle do hotspot Wi-Fi por meio da camada de abstração de hardware da Allwinner
  • Modo estação Wi-Fi utilizando uma compilação ARMv7 customizada do wpa_supplicant
  • Um pequeno navegador de texto com teclado no próprio dispositivo
  • Detecção de movimento nos frames do preview e código experimental de detecção facial com Haar cascade
  • Telas de status da bateria, horário, câmera, rede e depuração
  • Inicialização do Binder e comunicação com os serviços já presentes no firmware

Lelouch não é uma distribuição completa nem um firmware genérico para todos os produtos vendidos como SJ4000. Ele depende das bibliotecas, kernel, serviços, layout de partições, controlador de display, sensor de imagem e configuração de placa utilizados na unidade Allwinner V3 pesquisada.

Estrutura do repositório

CaminhoConteúdo
Lelouch/Interface do firmware customizado, ambiente de compilação, headers recuperados, bibliotecas compartilhadas proprietárias e código-fonte modificado do wpa_supplicant
Reversing Scripts/Parsers e repackers para firmwares Allwinner IMAGEWTY, Allwinner eGON e Novatek BCL1
AVIOCTRL Script/ウタ.pyCliente interativo para o protocolo TCP proprietário utilizado pelo SJCAM Zone
Bin Files/Bancos de dados do IDA para os principais executáveis e bibliotecas compartilhadas analisados durante a pesquisa
Firmwares Files/Amostras de firmware Allwinner e Novatek utilizadas durante o desenvolvimento
POC/Prova de conceito da CVE-2026-52656, imagem eGON modificada e payload de demonstração para framebuffer e áudio

Alguns diretórios contêm material proprietário ou de terceiros recuperado do dispositivo. Sua presença destina-se à interoperabilidade e pesquisa de segurança e não torna esses componentes código aberto.

Compilando o Lelouch

A compilação foi testada em Linux x86-64. Você precisa do Python 3, GNU Make, Git, um ambiente de compilação C/C++ e acesso à rede para o download inicial do toolchain.

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

O prepare_build.py baixa um sysroot fixado no Android API level 14 e o cross-compiler ARM arm-linux-androideabi-4.6 para Lelouch/android_compilers/. Em seguida, ele compila o wpa_supplicant estático modificado e executa o make. Os arquivos de compilador baixados e os binários gerados são ignorados pelo Git.

Os arquivos resultantes são:

Lelouch/Lelouch
Lelouch/wpa_supplicant

Para recompilar após alterar os códigos-fonte C++:

cd Lelouch
make clean
make

O binário Lelouch gerado deve substituir /bin/sdv no sistema de arquivos raiz extraído. O modo estação Wi-Fi também espera encontrar o wpa_supplicant compilado em /mnt/extsd/sta/wpa_supplicant no cartão SD da câmera.

O código experimental de detecção facial procura pelo arquivo cascade gerado em:

/mnt/extsd/frontalface.casc

O repositório inclui um cascade pré-gerado e o conversor utilizado para criá-lo:

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

O procedimento completo de extração, substituição do sistema de arquivos raiz, reempacotamento e flash com LiveSuit está documentado no artigo da pesquisa vinculado no início desta página.

Ferramentas de firmware

Todos os pontos de entrada dos parsers são scripts Python 3 com saída de ajuda integrada por meio de --help e não possuem dependências Python de terceiros.

Allwinner IMAGEWTY

Lê a imagem externa de firmware do LiveSuit, extrai seus arquivos e reconstrói uma imagem a partir de um diretório extraído.

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

Inspeciona, extrai e reempacota o container full_img.fex encontrado dentro da imagem 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

O packer utiliza o arquivo original como modelo para preservar o layout e os metadados originais enquanto as partições são substituídas.

Novatek BCL1

Descompacta o container BCL1 utilizado por firmwares de modelos SJ4000 mais antigos baseados no Novatek e pode procurar no resultado por assets e seções de firmware incorporados.

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

Cliente AVIOCTRL

Baixar ferramenta