Дампим прошивку без выпаивания SPI Flash

Вопросы по восстановлению, настройке, апгрейду, прошивкам и т.п.
Аватара пользователя
NeiroN
Специалист
Сообщения: 475
Зарегистрирован: 15 фев 2017, 21:59
Контактная информация:

Дампим прошивку без выпаивания SPI Flash

Сообщение NeiroN » 08 апр 2017, 12:38

Дампим програмным методом, поэтому регистратор должен быть рабочим и у него должны быть доступны порты 80, 23 или 9527
Вариант 1:
Досупны порты 80 и 9527 и известен пароль админа
Подключаемся(putty raw) к 9527 входим: <enter>admin<enter>pass<enter>shell<enter>telnetd & echo OK<enter>
после этих манипуляций телнет должен заработать - переходим к варианту 2
Вариант 2:
Доступны порты 80 и 23
Подключаемся(putty telnet) входим: root пароль от телнета берется из /etc/passwd
Создаем временную папку /var/www
Создаем ссылки на ноды флешки /dev/mtdblock[0-9]
Монтируем путь в виртуальной фс ядра команда mount --bind [что] [куда]
- создаем связь /var/www -> /mnt/web
Список разделов можно получить командой cat /dev/mtdblock0|awk /^bootargs=/|awk '{for(k=NF;k>0;--k){print $k}}'|awk /^mtdparts=/|awk NR==1 (вытаскиваем их из env U-Boot)
Скачиваем все разделы по http://ip/mtdblock0" onclick="window.open(this.href);return false; , http://ip/mtdblock1" onclick="window.open(this.href);return false;
Всего разделов 6 или 7
Переименовываем их согласно списку.
Чтобы получить полный дамп чипа склеиваем их в один по порядку.
fwdump.zip
Программа на Python которая выполняет все описанные действия
(1.42 КБ) 864 скачивания
Исходник: https://yadi.sk/d/asTXMtkG3GWE7t/fwdump.py" onclick="window.open(this.href);return false;
Скомпилированный для win32: https://yadi.sk/d/asTXMtkG3GWE7t/dist" onclick="window.open(this.href);return false;

Тестировал на 2 регистраторах XM

saffers
Новичок
Сообщения: 32
Зарегистрирован: 06 апр 2017, 07:57

Re: Дампим прошивку без выпаивания SPI Flash

Сообщение saffers » 09 апр 2017, 16:32

Ух, Круто придумано!!! :good:
еще один способ бэкапа помимо NFS и samba.

А можно это
Монтируем путь в виртуальной фс ядра команда mount --bind [что] [куда]
на примере описать?

Вы случаем не в курсе в каком виде создать образ (я полагаю в формате uImage) для восстановления регистратором ХМ с USB флешки? Может есть пример такого образа...

oleglevsha
Специалист
Сообщения: 854
Зарегистрирован: 15 ноя 2014, 22:34
Откуда: alarmsystem-cctv
Контактная информация:

Re: Дампим прошивку без выпаивания SPI Flash

Сообщение oleglevsha » 09 апр 2017, 21:01

правильно полагаете

Аватара пользователя
NeiroN
Специалист
Сообщения: 475
Зарегистрирован: 15 фев 2017, 21:59
Контактная информация:

Re: Дампим прошивку без выпаивания SPI Flash

Сообщение NeiroN » 09 апр 2017, 21:58

Вот пример для замены /etc - чтобы сменить пароль на телнет(до перезагрузки)

Код: Выделить всё

mkdir /var/etc && cp -r /etc/* /var/etc && mount --bind /var/etc /etc
Вот пример для замены содержимого встроенного http сервера

Код: Выделить всё

mkdir /var/www && mount --bind /var/www /mnt/web && ln -s /dev/mtdblock[0-9] /var/www/
NFS мне не удалось подключить к винде, а samba небыло.

создавать/смотреть образы U-Boot можно этим

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

Образ на USB вроде такой же как и для приложения ZIP архив с образами c uImage заголовком и файлом InstallDesc

Код: Выделить всё

{
   "UpgradeCommand" : [
      {
         "Command" : "Burn",
         "FileName" : "custom-x.cramfs.img"
      },
      {
         "Command" : "Burn",
         "FileName" : "romfs-x.cramfs.img"
      },
      {
         "Command" : "Burn",
         "FileName" : "user-x.cramfs.img"
      }
   ],
   "Hardware" : "MBD6804T-EL",
   "Vendor" : "General"
}
Hardware И Vendor можно глянуть в файле custom/ProductDefinition

сам U-Boot имеет возможностm установки образа с USB, я не проверял. Должен работать примерно также как и с tftp - надо разбираться.

saffers
Новичок
Сообщения: 32
Зарегистрирован: 06 апр 2017, 07:57

Re: Дампим прошивку без выпаивания SPI Flash

Сообщение saffers » 10 апр 2017, 00:33

NFS лежит на рутрэкере для windows, там же пример настройки
http://maintracker.org/forum/viewtopic.php?t=3510858" onclick="window.open(this.href);return false;
Проверял работает на регистратора XM, также как ваш способ. Ну ваш, поудобней будет :)

Есть у меня роутер китайского происхождения, трудится точкой доступа:
http://wiki.openwrt.org/ru/toh/totolink/toton610rt" onclick="window.open(this.href);return false;

телнет в нем есть, а вот с самбой или через nfs у меня не получается, хотя я не уверен что в нем присутствие самба-клиент

Код: Выделить всё

# mount -o username=test,password=test123 //192.168.1.120/test /var/test    
mount: mounting //192.168.1.120/test on /var/test failed: No such file or directory
как можно проверить наличие самбы/Cifs клиента?

вот думаю, отличный способ испытаю! но не прокатило...
веб движок, скрипты болтаются тут:

Код: Выделить всё

# cd web_cste/
# ls
adm                       goLogin.htm               title.asp
bottom.asp                home.asp                  top.asp
cgi-bin                   internet                  tty
config.dat                js                        wireless
empty1.htm                left.asp                  wizard.asp
empty2.htm                login.asp                 wizard_connect_state.asp
empty3.htm                nousb.asp                 wps
favicon.ico               style
firewall                  test.asp
проделал все те же операции, как и на XM, но при попытке скачать mtdblockX браузер выдает, что не найдено.
Пока я так понимаю, что веб движок XM имеет уязвимость, которая позволяет таким образом выдергивать файлы...

если будет любопытно, скинул сюда rom-fs роутера (формата gzip), вытащил из прошивки
https://yadi.sk/d/jT-rppFd3Goa7d" onclick="window.open(this.href);return false;

нашел в роутере wget буд пробовать слить по ftp :)

Аватара пользователя
NeiroN
Специалист
Сообщения: 475
Зарегистрирован: 15 фев 2017, 21:59
Контактная информация:

Re: Дампим прошивку без выпаивания SPI Flash

Сообщение NeiroN » 10 апр 2017, 08:13

может просто нету ноды /dev/mtdblock0 или она блокирована для чтения

saffers
Новичок
Сообщения: 32
Зарегистрирован: 06 апр 2017, 07:57

Re: Дампим прошивку без выпаивания SPI Flash

Сообщение saffers » 11 апр 2017, 23:06

Список разделов можно получить командой cat /dev/mtdblock0|awk /^bootargs=/|awk '{for(k=NF;k>0;--k){print $k}}'|awk /^mtdparts=/|awk NR==1 (вытаскиваем их из env U-Boot)
список разделов еще можно получить так:

Код: Выделить всё

[root@LocalHost /]$ cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00030000 00010000 "boot"
mtd1: 001f0000 00010000 "romfs"
mtd2: 003b0000 00010000 "usr"
mtd3: 001a0000 00010000 "custom"
mtd4: 00010000 00010000 "logo"
mtd5: 00080000 00010000 "mtd"
[root@LocalHost /]$ 

tyhij
Новичок
Сообщения: 15
Зарегистрирован: 09 апр 2017, 07:12

Re: Дампим прошивку без выпаивания SPI Flash

Сообщение tyhij » 25 май 2017, 10:30

На новых XM дврках порт 9527 или закрыт или сыпет техинформацию но не откликается на ввод никак.

Аватара пользователя
fobos
Специалист
Сообщения: 1116
Зарегистрирован: 21 июн 2014, 18:15

Re: Дампим прошивку без выпаивания SPI Flash

Сообщение fobos » 26 май 2017, 23:05

тестил прогу NeiroN-а на AHD Proto-x разных моделях (работает на "УРА"), местный торговый дом с этого года завозит реги и камеры под своим брендом, чистый XM - прога с ними работает 100%. Попадаются реги от ХМ, которые не поддаются и в логе пишется, что ошибка в такой-то строке программы, ругается на какую-то директорию, но ничего страшного, ведь всегда можно снять дамп программатором. В любом случае NeiroN-у Большое Спасибо за программулину, т.к. она, пусть и не всегда, но все же облегчает процедуру снятия дампов.

Аватара пользователя
NeiroN
Специалист
Сообщения: 475
Зарегистрирован: 15 фев 2017, 21:59
Контактная информация:

Re: Дампим прошивку без выпаивания SPI Flash

Сообщение NeiroN » 27 май 2017, 08:29

Надо просто проблемные реги подробнее изучить, и дополнить прогу условиями проверками. Так как я имел дело всего с двумя регами XM.

Все упирается в особенности работы софта на порте 9527. Также может где то другой пароль root и нужно запускать телнет без требования логина telnet -p25 -l/bin/sh, в будущей версии это все учтется.

Kruso
Специалист
Сообщения: 127
Зарегистрирован: 28 мар 2017, 20:46

Re: Дампим прошивку без выпаивания SPI Flash

Сообщение Kruso » 09 июн 2017, 01:11

А когда может выродиться будущая версия?

Аватара пользователя
NeiroN
Специалист
Сообщения: 475
Зарегистрирован: 15 фев 2017, 21:59
Контактная информация:

Re: Дампим прошивку без выпаивания SPI Flash

Сообщение NeiroN » 09 июн 2017, 09:50

Когда будет ясно что не так на новых XM дврках, так как у меня их нет(последний что брал на Hi3535 - нормально дампился). Может кто подскажет варианты запуска telnetd не через терминал на порту 9527. На некоторых камерах(не XM) прокатывает $(telnetd) в имени ftp сервера, на XM там это вроде подругому реализованно.

Ответить

Вернуться в «Восстановление и настройка»