Сброс пароля через преобразователь USB-UART

Сброс пароля через преобразователь USB-UART post thumbnail

Бывают ситуации, когда пароль администратора утерян, но нужно получить доступ к устройству с целью изменения его настроек. В этой ситуации тоже поможет преобразователь USB-UART, с той лишь разницей, что в этом случае не требуется tftp сервер.
Повторяем те же действия из раздела «Подключаем UART», включая команду 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
reset

В новых прошивках появилась защита флешки от записи, поэтому сразу после sf probe 0 нужно давать ещё команду sf lock 0, чтобы снять защиту.

Внимательный читатель может обратить внимание, что раздел mtd последний, и для его вычисления достаточно вычесть размер mtd 0x50000 из размера флешки 0x800000, получим те же 0x7b0000. Так даже проще, если нас интересует только один раздел.

Хочу ещё раз напомнить, что это только пример, у вас будут другие цифры.

Использование неправильных значений обязательно приведёт к порче устройства!

Categories:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *