Сегодня будем выяснять как выполнить сброс пароля в ip камере.
Ханчжоу Xiongmai Technology Co., Ltd китайская компания является ведущими мировыми поставщиками продуктов и технологий для видеонаблюдения. На рынке представлено множество независимых брендов с собственными товарным знаком использующих оборудование компании XM и как следствие аналогичные базовые прошивки, поэтому рассмотренные методы будут применимы ко многим устройствам представленным на рынке видеонаблюдения. Сброс пароля в IP камере:
Некоторые IP камеры имеют кнопку сброса, просто нажмите кнопку сброса в течение 5-10 секунд, камера автоматически сбросится на заводские настройки.
Для IP камер, не имеющих кнопки сброса, вы можете использовать утилиту для сброса IP камеры к заводским установкам.
Подключаемся к UART интерфейсу:
Управление загрузчиком производится из консоли командами, которые подаются через специальный отладочный интерфейс — UART. В качестве консоли (терминала) удобнее использовать Putty .
Чтобы иметь возможность ввода команд из терминала, нам понадобится USB-UART преобразователь.
Далее скачиваем и устанавливаем драйвера
Откройте диспетчер устройств в Windows, нажмите> «Порты (COM и LPT)», и вы увидите какой COM порт использует ваш адаптер
Скачиваем и устанавливаем терминальную программу; я использую PuTTY. В настройках программы выбираем последовательный порт (Serial), указываем номер порта (Serial Line), соответствующий адаптеру USB-UART, указываем скорость обмена (Speed) 115200
и нажимаем кнопку «Открыть» (Open).
Для подключения соединяем минусовой («земляной») провод устройства с общим (GND) проводом преобразователя, RX устройства соединяем с TX преобразователя, а RX, соответственно, с TX.
Вам может понадобиться мультитестер, чтобы определить распиновку или посмотреть, действительно ли это последовательное соединение TTL. Это довольно просто — обычно один из контактов должен быть под напряжением +3.3 вольта , а другой — является общим, а оставшиеся два имеют напряжение около +3 вольта, при включении питания на одном из контактов происходит быстрое изменение напряжения — этот контакт TX, соответственно последний из контактов RX. Бывает для вывода UART интерфейса используют три или два контакта, без выхода питания и общего провода (GND) соответственно.
После открытия окна терминала подаем питание на камеру, если все сделано правильно, то в окне мы увидим вывод отладочной информации о ходе загрузки. В противном случае необходимо проверить параметры порта и подключение сигнальных линий Rx/Tx адаптера USB-UART к отладочному интерфейсу (поменять их местами).
В процессе загрузки, на экране мелькнёт приглашение Press Ctrl+C to stop autoboot. Нужно поймать этот момент и нажать комбинацию клавиш Ctrl+C, чтобы не пропустить этот момент рекомендую нажать и удерживать Ctrl+C до включения устройства, в результате чего загрузка прерывается и мы попадаем в командный интерфейс.
Для вывода на экран переменных окружения загрузчика, вводим команду printenv
.
Нас интересуют два параметра:
ipaddr=192.168.1.10
— IP адрес устройства
serverip=192.168.1.107
— IP адрес нашего компьютера
их можно изменить командой setenv
или подставить компьютеру IP адрес из serverip, действительно до перезагрузки.
Сброс пароля
Внимательно изучаем вывод команды printenv
, обратив внимание на содержимое переменной bootargs
В нашем примере это будет вывод от камеры 00018510
bootargs=mem=39M console=ttyAMA0,115200 root=/dev/mtdblock1 rootfstype=cramfs mtdparts=hi_sfc:320K(boot),3520K(romfs),2560K(user),1152K(web),320K(custom),320K(mtd)
320K(boot),3520K(romfs),2560K(user),1152K(web),320K(custom),320K(mtd)
Запускаем калькулятор Windows, переводим его в режим программиста и начинаем подсчёт. Для этого переключаем калькулятор в режим dec, переводим мегабайты и килобайты в байты (килобайты умножаем на 1024, а мегабайты — на 1048576), складываем полученные значение и переключаем калькулятор в режим hex.
Получаем следующие таблички:
Размеры mtd разделов
320K(boot) 327680 50000h
3520K(romfs) 3604480 370000h
2560K(user) 2621440 280000h
1152K(web) 1179648 120000h
320K(custom) 327680 50000h
320K(mtd) 327680 50000h
Адреса mtd разделов
0x000000-0x050000 : "boot"
0x050000-0x3c0000 : "romfs"
0x3c0000-0x640000 : "user"
0x640000-0x760000 : "web"
0x760000-0x7b0000 : "custom"
0x7b0000-0x800000 : "mtd"
Из таблицы нас интересует последний раздел — mtd. Как видно из bootargs, его размер 320кб, что составляет 50000h в шестнадцатеричной системе, а начальный адрес — 0x7b0000.
Здесь хранятся настройки устройства, и, самое важное, пароли пользователей. Если его стереть, то система пересоздаст этот раздел заново с настройками по умолчанию, и, соответственно, с пустыми паролями.
даём следующие команды:
sf probe 0
sf erase 0x7b0000 0x50000
В новых прошивках появилась защита флешки от записи, поэтому сразу после sf probe 0
нужно давать ещё команду sf lock 0
, чтобы снять защиту.
Внимательный читатель может обратить внимание, что раздел mtd последний, и для его вычисления достаточно вычесть размер mtd 0x50000 из размера флешки 0x800000, получим те же 0x7b0000. Так даже проще, если нас интересует только один раздел.
Примечание, показанные в примере адреса расположения mtd разделов действительны для конкретной модели оборудования. Использование неверных значений обязательно приведёт к сбою в работе вашего устройства!
После сброса пароля выполните команду reset и дождитесь загрузки устройства, вход в веб интерфейс выполните под логином admin пароль не вводим, пустой.
TFTP сервер
Для восстановления или смены прошивки средствами загрузчика, понадобится ещё одна программа — TFTP сервер, я рекомендую tftpd32.
Устанавливаете его и настраиваете согласно картинке.
Восстановление
Теперь понадобится файл прошивки под наше устройство. Версию прошивки можно узнать из окошка Info, в веб интерфейсе или я могу подсказать ответив в комментариях к статье.
Скачиваем прошивку, открываем архиватором и извлекаем все файлы в папку tftp сервера.
Вводим и выполняем в консоли следующие команды:
run dc
run du
run dr
run dw
После чего перезагружаем командой
reset
.
Если файлы не грузятся с tftp сервера (в консоли циклические попытки), то скорее всего мешает брандмауэр Windows — отключите его или добавьте tftpd32 в исключения.
В статье использовались материалы с сайта моего коллеги Игоря Зорина @ESonya