206 подписчиков

Восстановление камер Dahua

Для восстановления “окирпиченных” камер или живых, но с чужой прошивкой, до рабочего состояния необходим дамп. Дальше есть два варианта.

Для восстановления “окирпиченных” камер или живых, но с чужой прошивкой, до рабочего состояния необходим дамп. Дальше есть два варианта. Если камера не совсем “кирпич”, а её загрузчик жив и в него можно попасть, то можно залить дамп средствами загрузчика. Если же всё плохо и никаких признаков жизни камера не подаёт, то спасёт только программатор.

Для процессоров HiSilicon есть ещё один вариант – прошивка утилитой HiTool через UART. Но для этого процессор надо ввести в аварийный режим, а это операция нетривиальная. Про работу с HiTool тоже планирую написать статейку, а пока можно задавать вопросы на эту тему в группах проекта OpenIPC. Там обитают ребята, которые мне эту тему подсказали и разбираются в вопросе гораздо лучше.

Инструменты

Материалы

  • Дамп (в идеале) или прошивка

Софт

Подготовка

В деле восстановления IP-камер самое главное – это бутлоадер, он же бут, он же загрузчик. Если получается залить во флеш правильный бут, то это 99% успеха. Дальше всё штатно.

Если есть нужный дамп, то тоже всё просто. Берём программатор и заливаем дамп. Дальше правим уникальные параметры в буте и всё работает.

Дамп просто так не достать, но прошивка чаще всего находится в общем доступе и, в случае с камерами Dahua, этого может быть достаточно, хотя бывают и исключения.

Прошивка чаще всего выкладывается в заархивированном виде. Качаем и распаковываем, чтобы получить доступ к бинарнику. Далее, уже этот бинарник, распаковываем архиватором 7Zip. Он ругнётся, но это не страшно. Заходим в папку с распакованным содержимым и ищем там два файла: dhboot.bin и dhboot-min.bin. Если есть они оба, то всё прекрасно.

Например, берём прошивку камеры DH-IPC-K42AP, распаковываем и видим, что в ней оба этих файла есть. Уже хорошо.

Содержимое прошивки
Содержимое прошивки

Открываем файлы в шестнадцатеричном редакторе, например HxD и смотрим. Первые 64 байта – это заголовок. Он содержит служебную информацию и, в том числе, адрес, по которому следует прошивать содержимое. Поэтому, первым делом, нужно это заголовок отрезать, а затем залить то, что осталось по указанному адресу.

Для dhboot-min адрес прошивки: 0x00000000, а для dhboot 0x00340000.

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

Резервная копия

Перед тем, как шить, нужно позаботиться о возвращении к исходному состоянию, поэтому полезно сделать резервную копию, то бишь – снять дамп. Подробнее о том, как снять дамп и залить его обратно рассказано в статье Работа с памятью в загрузчике.

Если дамп с этой камеры или камеры аналогичной модели уже есть или есть уверенность, что восстановление не понадобится, то можно и пропустить этот важный шаг.

Прошивка через UART

Собственно, в вышеобозначенной статье Работа с памятью в загрузчике есть инфа и об этом. В даном случае надо прошить два бинарника по определённым адресам адресам. Какие конкретно команды использовать – зависит от типа памяти – NOR или NAND.

Прошивка программатором

Лично для меня прошивка программатором – это крайняя мера, когда по-другому никак не получается. Причина в том, что это требует выпаивания чипа памяти, а это не очень умею. Иногда, можно и без выпаивания, но надо цеплять прищепку или зажимы, а это тонкая операция.

Если без программатора никак, то берём CH341A, цепляем зажимы, запускаем AsProgrammer и шьём дамп, если он есть. Если нет, то надо подготовить дамп, собрав его из двух частей загрузчика в редакторе.

Изменение параметров

После прошивки дампа или загрузчика тем или иным способом надо подкорректировать значения переменных. В первую очередь HWID – это идентификатор конкретной модели камеры, BSN – серийный номер и ethaddr – MAC-адрес.

Статья Восстановление камер Dahua на моём сайте mixatronik.ru