Дампим прошивку без выпаивания SPI Flash
Дампим прошивку без выпаивания SPI Flash
Дампим програмным методом, поэтому регистратор должен быть рабочим и у него должны быть доступны порты 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
Переименовываем их согласно списку.
Чтобы получить полный дамп чипа склеиваем их в один по порядку.
Исходник: 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
Вариант 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
Переименовываем их согласно списку.
Чтобы получить полный дамп чипа склеиваем их в один по порядку.
Исходник: 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
Re: Дампим прошивку без выпаивания SPI Flash
Ух, Круто придумано!!!
еще один способ бэкапа помимо NFS и samba.
А можно это
Вы случаем не в курсе в каком виде создать образ (я полагаю в формате uImage) для восстановления регистратором ХМ с USB флешки? Может есть пример такого образа...

еще один способ бэкапа помимо NFS и samba.
А можно это
на примере описать?Монтируем путь в виртуальной фс ядра команда mount --bind [что] [куда]
Вы случаем не в курсе в каком виде создать образ (я полагаю в формате uImage) для восстановления регистратором ХМ с USB флешки? Может есть пример такого образа...
-
- Специалист
- Сообщения: 905
- Зарегистрирован: 15 ноя 2014, 22:34
- Откуда: alarmsystem-cctv
- Контактная информация:
Re: Дампим прошивку без выпаивания SPI Flash
правильно полагаете
Re: Дампим прошивку без выпаивания SPI Flash
Вот пример для замены /etc - чтобы сменить пароль на телнет(до перезагрузки)
Вот пример для замены содержимого встроенного http сервера
NFS мне не удалось подключить к винде, а samba небыло.
создавать/смотреть образы U-Boot можно этим
Думаю потом сделать автоматическую генерацию готовой прошивки с помощью этой утилиты, но пока лень. Так что пока вам придется каждый образ обработать ручками.
Образ на USB вроде такой же как и для приложения ZIP архив с образами c uImage заголовком и файлом InstallDesc
Hardware И Vendor можно глянуть в файле custom/ProductDefinition
сам U-Boot имеет возможностm установки образа с USB, я не проверял. Должен работать примерно также как и с tftp - надо разбираться.
Код: Выделить всё
mkdir /var/etc && cp -r /etc/* /var/etc && mount --bind /var/etc /etc
Код: Выделить всё
mkdir /var/www && mount --bind /var/www /mnt/web && ln -s /dev/mtdblock[0-9] /var/www/
создавать/смотреть образы 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"
}
сам U-Boot имеет возможностm установки образа с USB, я не проверял. Должен работать примерно также как и с tftp - надо разбираться.
Re: Дампим прошивку без выпаивания SPI Flash
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 у меня не получается, хотя я не уверен что в нем присутствие самба-клиент
как можно проверить наличие самбы/Cifs клиента?
вот думаю, отличный способ испытаю! но не прокатило...
веб движок, скрипты болтаются тут:
проделал все те же операции, как и на XM, но при попытке скачать mtdblockX браузер выдает, что не найдено.
Пока я так понимаю, что веб движок XM имеет уязвимость, которая позволяет таким образом выдергивать файлы...
если будет любопытно, скинул сюда rom-fs роутера (формата gzip), вытащил из прошивки
https://yadi.sk/d/jT-rppFd3Goa7d" onclick="window.open(this.href);return false;
нашел в роутере wget буд пробовать слить по ftp
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
вот думаю, отличный способ испытаю! но не прокатило...
веб движок, скрипты болтаются тут:
Код: Выделить всё
# 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 имеет уязвимость, которая позволяет таким образом выдергивать файлы...
если будет любопытно, скинул сюда rom-fs роутера (формата gzip), вытащил из прошивки
https://yadi.sk/d/jT-rppFd3Goa7d" onclick="window.open(this.href);return false;
нашел в роутере wget буд пробовать слить по ftp

Re: Дампим прошивку без выпаивания SPI Flash
может просто нету ноды /dev/mtdblock0 или она блокирована для чтения
Re: Дампим прошивку без выпаивания SPI Flash
список разделов еще можно получить так:Список разделов можно получить командой 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 /]$
Re: Дампим прошивку без выпаивания SPI Flash
На новых XM дврках порт 9527 или закрыт или сыпет техинформацию но не откликается на ввод никак.
Re: Дампим прошивку без выпаивания SPI Flash
тестил прогу NeiroN-а на AHD Proto-x разных моделях (работает на "УРА"), местный торговый дом с этого года завозит реги и камеры под своим брендом, чистый XM - прога с ними работает 100%. Попадаются реги от ХМ, которые не поддаются и в логе пишется, что ошибка в такой-то строке программы, ругается на какую-то директорию, но ничего страшного, ведь всегда можно снять дамп программатором. В любом случае NeiroN-у Большое Спасибо за программулину, т.к. она, пусть и не всегда, но все же облегчает процедуру снятия дампов.
Re: Дампим прошивку без выпаивания SPI Flash
Надо просто проблемные реги подробнее изучить, и дополнить прогу условиями проверками. Так как я имел дело всего с двумя регами XM.
Все упирается в особенности работы софта на порте 9527. Также может где то другой пароль root и нужно запускать телнет без требования логина telnet -p25 -l/bin/sh, в будущей версии это все учтется.
Все упирается в особенности работы софта на порте 9527. Также может где то другой пароль root и нужно запускать телнет без требования логина telnet -p25 -l/bin/sh, в будущей версии это все учтется.
Re: Дампим прошивку без выпаивания SPI Flash
А когда может выродиться будущая версия?
Re: Дампим прошивку без выпаивания SPI Flash
Когда будет ясно что не так на новых XM дврках, так как у меня их нет(последний что брал на Hi3535 - нормально дампился). Может кто подскажет варианты запуска telnetd не через терминал на порту 9527. На некоторых камерах(не XM) прокатывает $(telnetd) в имени ftp сервера, на XM там это вроде подругому реализованно.