Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
sjcam — Реверс-инжиниринг и кастомная прошивка для IoT-камер на базе Allwinner V3, включая парсеры прошивок, клиент AVIOCTRL и доказательство концепции CVE-2026-52656 для неавторизованной замены прошивки по OTA. | Kitploit
Инструменты/GitHubGitHub/keowu/sjcam
Безопасность встроенных системБезопасность IoTАнализ уязвимостейЭксплуатацияОбратная инженерияТестирование на ПроникновениеАппаратная БезопасностьСтатьи и ИсследованияОбучение и ОбразованиеАнализ Прошивок
GitHub
81202 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
keowu/sjcam

sjcam

Реверс-инжиниринг и кастомная прошивка для IoT-камер на базе Allwinner V3, включая парсеры прошивок, клиент AVIOCTRL и доказательство концепции CVE-2026-52656 для неавторизованной замены прошивки по OTA.

РепозиторийСайт

Lelouch: Исследование прошивки SJCAM SJ4000 и кастомная прошивка

CI

Баннер проекта Lelouch

Trocar para Português (Brasil)

Заметки по обратному инжинирингу, инструменты для работы с прошивкой, proof-of-concept код и интерфейс кастомной прошивки для версии SJCAM SJ4000 Air на SoC Allwinner V3.

Исследовательская статья

Этот репозиторий содержит код и артефакты, созданные в ходе исследования. Полная статья объясняет процесс от первого дампа прошивки до кастомной прошивки Lelouch.

Прочитать полную исследовательскую статью на английском) или на португальском.

О проекте

Эта работа началась с простого вопроса: насколько полный контроль я могу получить над дешёвой экшн-камерой без документации, исходного кода или поддержки вендора?

Камера оказалась построена на SoC Allwinner V3 и сильно модифицированной системе Android 4.4. Её основное приложение sdv общается с проприетарными сервисами камеры и дисплея через Binder, отрисовывает интерфейс с помощью MiniGUI, предоставляет HTTP-сервер для обновлений прошивки и связывается с приложением SJCAM Zone по проприетарному протоколу.

Репозиторий документирует путь от извлечения прошивки до работающей замены для sdv. Он включает инструменты для форматов прошивки, встреченных в ходе исследования, базы IDA для обратно спроектированных бинарников, клиент AVIOCTRL, исходный код кастомной прошивки Lelouch и proof of concept, связанный с CVE-2026-52656.

Код предназначен для исследованной платы на Allwinner V3 с контроллером дисплея ST7789V и сенсором изображения GC4653. Более старые блоки SJ4000 на базе Novatek NT9665X включены только как часть раннего исследования и используют другой формат прошивки. Одних названий продуктов недостаточно для определения совместимости.

Lelouch

Lelouch — это интерфейс, заменяющий оригинальный исполняемый файл sdv камеры. Он собран с использованием проприетарных библиотек, извлечённых из прошивки, и использует те же внутренние интерфейсы, что и оригинальное приложение.

Текущая реализация включает:

  • Предпросмотр камеры через обратно спроектированные интерфейсы HerbCamera и CedarDisplay
  • Интерфейс MiniGUI, предназначенный для дисплея камеры 320x240 и физических кнопок
  • Управление точкой доступа Wi-Fi через аппаратный слой абстракции Allwinner
  • Режим станции Wi-Fi с использованием собственной сборки wpa_supplicant для ARMv7
  • Маленький текстовый браузер с встроенной клавиатурой
  • Обнаружение движения на кадрах предпросмотра и экспериментальный код обнаружения лиц с каскадами Хаара
  • Индикаторы состояния батареи, времени, камеры, сети и отладки
  • Инициализация Binder и связь с уже присутствующими в прошивке сервисами

Lelouch не является полноценной дистрибуцией или универсальной прошивкой для любого продукта, продаваемого как SJ4000. Он зависит от библиотек, ядра, сервисов, разметки разделов, контроллера дисплея, сенсора изображения и конфигурации платы, используемых в исследованном устройстве на Allwinner V3.

Структура репозитория

ПутьСодержимое
Lelouch/Интерфейс кастомной прошивки, сборочное окружение, восстановленные заголовки, проприетарные динамические библиотеки и модифицированный исходный код wpa_supplicant
Reversing Scripts/Парсеры и упоковщики для прошивок Allwinner IMAGEWTY, Allwinner eGON и Novatek BCL1
AVIOCTRL Script/ウタ.pyИнтерактивный клиент для проприетарного протокола TCP, используемого SJCAM Zone
Bin Files/Базы IDA для основных исполняемых файлов и динамических библиотек, проанализированных в ходе исследования
Firmwares Files/Образцы прошивок Allwinner и Novatek, использованные при разработке
POC/Proof of concept для CVE-2026-52656, сфабрикованный образ eGON и демонстрационная полезная нагрузка с фреймбуфером/аудио

Некоторые каталоги содержат материалы третьих сторон или проприетарные материалы, извлечённые с устройства. Их присутствие предназначено для обеспечения совместимости и исследований в области безопасности и не означает открытие исходного кода этих компонентов.

Сборка Lelouch

Сборка протестирована на x86-64 Linux. Вам понадобятся Python 3, GNU Make, Git, среда C/C++ и доступ в сеть для первоначальной загрузки инструментария.

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

prepare_build.py загружает фиксированный sysroot Android API level 14 и кросс-компилятор ARM arm-linux-androideabi-4.6 в Lelouch/android_compilers/. Затем он собирает модифицированный статический wpa_supplicant и запускает make. Загруженные файлы компилятора и сгенерированные бинарники игнорируются Git.

Полученные файлы:

Lelouch/Lelouch
Lelouch/wpa_supplicant

Для пересборки после изменения C++ исходников:

cd Lelouch
make clean
make

Сгенерированный бинарник Lelouch предназначен для замены /bin/sdv в извлечённой корневой файловой системе. Режим станции Wi-Fi также ожидает собранный wpa_supplicant по пути /mnt/extsd/sta/wpa_supplicant на SD-карте камеры.

Экспериментальный код обнаружения лиц ищет сгенерированный файл каскада по пути:

/mnt/extsd/frontalface.casc

Репозиторий включает предварительно сгенерированный каскад и конвертер, использованный для его создания:

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

Полная процедура извлечения, замены корневой файловой системы, переупаковки и прошивки с помощью LiveSuit описана в исследовательской статье, ссылка на которую находится вверху этой страницы.

Инструменты для прошивки

Все точки входа парсеров — это скрипты Python 3 со встроенным выводом --help и без сторонних зависимостей Python.

Allwinner IMAGEWTY

Читает внешний образ прошивки LiveSuit, извлекает его файлы и пересобирает образ из извлечённого каталога.

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

Просматривает, извлекает и переупаковывает контейнер full_img.fex, найденный внутри образа 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

Упаковщик использует оригинальный файл как шаблон, чтобы сохранить исходную структуру и метаданные, заменяя разделы.

Novatek BCL1

Распаковывает контейнер BCL1, используемый в более старых прошивках SJ4000 на базе Novatek, и может сканировать результат на наличие встроенных ресурсов и секций прошивки.

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

Клиент AVIOCTRL

Скачать инструмент