Дамп прошивки чаще всего требуется, когда роутер перестал загружаться после неудачного обновления и нужно извлечь заводской образ для восстановления либо для анализа устройства. Задача решается несколькими путями: через отладочный интерфейс UART, напрямую с микросхемы флеш-памяти программатором или программно — при наличии доступа к системе устройства. Выбор метода зависит от состояния роутера: работает ли он, есть ли root-доступ и сохранился ли загрузчик.

Извлечённый файл прошивки пригодится для отката на старую версию, восстановления «кирпича», переноса настроенной системы на однотипное устройство или изучения встроенного ПО. Ниже разберём подготовку, основные способы, типичные ошибки и меры безопасности.

Подготовка: что понадобится перед началом

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

Минимальный набор для аппаратных методов:

  • 🔌 USB-UART адаптер (например, на базе CH340 или CP2102) с поддержкой логических уровней 3,3 В;
  • 🧰 программатор для микросхем памяти — чаще всего CH341A с прищепкой для корпусов SOIC-8;
  • 🪛 отвёртки и пластиковая лопатка для вскрытия корпуса без следов;
  • 💻 компьютер с терминальной программой (PuTTY, minicom) и ПО для программатора.

Также заранее узнайте точную модель и аппаратную ревизию роутера — они указаны на наклейке снизу корпуса. От ревизии зависят тип флеш-памяти (NOR или NAND), распиновка отладочного разъёма и структура разделов.

💡

Сфотографируйте плату роутера крупным планом до начала работ — это поможет восстановить порядок подключения проводов и определить маркировку микросхемы памяти.

Способ 1: извлечение через UART-консоль

Почти на каждой плате роутера есть отладочный разъём UART — ряд из трёх-четырёх контактов, обычно подписанных как TX, RX, GND и иногда VCC. Через него загрузчик выводит служебные сообщения, а в ряде случаев доступна командная строка.

Подключение выполняется перекрёстно: TX роутера соединяется с RX адаптера, RX — с TX, земли объединяются. Вывод VCC подключать не нужно — роутер питается от собственного блока питания. Скорость порта чаще всего составляет 115200 бод, но встречаются и другие значения; точные параметры для конкретной модели стоит уточнить в документации или на профильных форумах.

Если загрузчик предоставляет командную строку (например, при прерывании автозагрузки нажатием клавиши в терминале), можно попробовать встроенные команды выгрузки памяти. У загрузчика U-Boot, который используется во многих роутерах, есть команды чтения областей флеша и передачи данных по сети через tftp. Синтаксис зависит от версии загрузчика и конкретной платформы — универсальной команды не существует.

⚠️ Внимание: UART на роутерах работает с уровнями 3,3 В. Подключение адаптера с уровнями 5 В может вывести из строя процессор. Перед подключением проверьте характеристики своего адаптера.

☑️ Подключение UART к роутеру

Выполнено: 0 / 6

Способ 2: вычитка флеш-памяти программатором

Когда роутер не подаёт признаков жизни и UART молчит, остаётся прямое чтение микросхемы памяти. На старых и бюджетных моделях обычно стоит SPI NOR-флеш в корпусе SOIC-8 — её можно считать программатором CH341A через клипсу-прищепку, не выпаивая с платы. На более производительных устройствах встречается NAND-память, для которой нужны другие программаторы и более сложная процедура.

При чтении через прищепку микросхема питается от программатора, и бывает, что питание «утекает» на всю плату — процессор запускается и мешает обмену данными. В такой ситуации чип всё же приходится выпаивать либо искать способ удерживать процессор в сбросе. Это требует навыков пайки; без опыта лучше поручить работу мастерской.

Результатом будет полный бинарный дамп всей флеш-памяти, включая загрузчик, прошивку и область с калибровками радиомодуля. Последнее особенно ценно: раздел с заводскими калибровками Wi-Fi (часто называется ART, caldata или подобным образом) уникален для каждого экземпляра, и его утрата безвозвратно ухудшает работу беспроводной сети.

⚠️ Внимание: перед любыми операциями записи на флеш сначала сделайте и сохраните полный дамп в нескольких копиях. Ошибка при записи без резервной копии может превратить восстановимое устройство в неремонтопригодное.

Способ 3: программное копирование через SSH или Telnet

Если роутер работает и на нём доступен SSH или Telnet (штатно либо после установки альтернативной прошивки вроде OpenWrt), прошивку можно скопировать прямо из разделов памяти. Разделы представлены в системе как блочные устройства /dev/mtdblock*, а их карту показывает команда:

cat /proc/mtd

Выгрузка отдельного раздела выполняется командой dd или простым перенаправлением, например:

cat /dev/mtdblock2 > /tmp/firmware.bin

Дальше файл забирается на компьютер через scp либо выкладывается на поднятый на ПК TFTP-сервер — на роутерах мало свободной памяти, поэтому большие разделы иногда удобнее передавать по сети потоком, без сохранения в /tmp. Учтите, что штатные прошивки многих производителей не дают shell-доступа вообще; возможность зависит от конкретной модели и версии ПО.

📊 Какой способ извлечения прошивки вам ближе?
Через UART-консоль
Программатором с чипа
Через SSH программно
Пока только изучаю тему

Разбор полученного дампа

Сырой дамп — это не всегда готовый файл для заливки через веб-интерфейс. Заводской образ, скачанный с сайта производителя, часто содержит служебный заголовок, а дамп с флеша включает загрузчик и служебные области. Для анализа содержимого применяется утилита binwalk: она находит внутри образа сигнатуры файловых систем (SquashFS), архивов и ядра Linux.

binwalk -Me firmware.bin

Ключ -Me запускает рекурсивное извлечение найденных разделов. В результате можно получить корневую файловую систему роутера и изучить конфигурацию, скрипты запуска и встроенные сервисы. Для восстановления устройства обычно нужен не распакованный контент, а целостный образ нужного раздела — здесь важно понимать карту памяти конкретной модели.

СпособСостояние роутераОборудованиеРиск
UART-консольЗагрузчик работаетUSB-UART адаптерНизкий при верных уровнях
Программатор + прищепкаЛюбоеCH341A, клипса SOIC-8Средний
Программатор с выпаиваниемЛюбое, сложные случаиПрограмматор, паяльная станцияВысокий без опыта
SSH / dd разделовРоутер работает, есть shellТолько компьютерМинимальный
Зачем нужен binwalk и что он находит

Binwalk сканирует бинарный файл на известные сигнатуры: заголовки ядра Linux, файловые системы SquashFS и JFFS2, архивы gzip и lzma, сертификаты. Это позволяет вырезать из дампа отдельные части прошивки и смонтировать файловую систему на компьютере для изучения.

Типичные ошибки и меры безопасности

Самая частая ошибка новичков — подключение UART-адаптера с уровнями 5 В или путаница между TX и RX. Перепутанные данные не страшны, а вот завышенное напряжение способно повредить процессор. Вторая типичная проблема — попытка считать флеш прищепкой при поданном на роутер питании: делать этого нельзя, плата должна быть обесточена.

  • ⚡ всегда отключайте блок питания роутера перед установкой прищепки программатора;
  • 📁 сохраняйте первый считанный дамп минимум в двух копиях и сверяйте контрольные суммы повторных чтений;
  • 🔍 не стирайте и не записывайте флеш, пока не убедились, что дамп читается стабильно и не содержит «мусора»;
  • 🧾 записывайте маркировку микросхемы и расположение разделов до начала экспериментов.

⚠️ Внимание: вскрытие корпуса и пайка почти наверняка лишат устройство гарантии. Если роутер на гарантийном обслуживании, сначала обратитесь к продавцу или в авторизованный сервис.

💡

Надёжнее всего начинать с самого безопасного метода: сначала SSH или UART, и только если они недоступны — переходить к программатору и пайке.

Что делать, если извлечь прошивку не получилось

Если ни один способ не сработал, причин может быть несколько: нестандартная распиновка UART, зашифрованный загрузчик, редкий тип памяти или неисправность самой микросхемы. В такой ситуации стоит поискать готовый дамп для своей модели и аппаратной ревизии на профильных форумах и в архивах прошивок — сообщества вроде OpenWrt ведут базы поддерживаемых устройств.

Для восстановления работоспособности часто достаточно чужого дампа той же модели, но помните про уникальные области: MAC-адреса и калибровки Wi-Fi придётся переносить из своего дампа либо править вручную, если это предусмотрено платформой. Если цель — именно анализ прошивки, а не ремонт, образ с сайта производителя часто подходит не хуже снятого с устройства.

Частые вопросы

Можно ли вытащить прошивку без разборки роутера?

Да, если устройство работает и предоставляет SSH/Telnet-доступ — разделы памяти копируются командами dd или cat по сети. Без shell-доступа программно извлечь прошивку не получится, и потребуется вскрытие корпуса.

Чем отличается дамп с флеша от файла прошивки с сайта?

Файл с сайта — это образ для обновления, обычно со служебным заголовком и без загрузчика. Дамп с флеша содержит всё содержимое памяти: загрузчик, прошивку, настройки и уникальные калибровочные данные конкретного экземпляра.

Подойдёт ли дамп от такого же роутера другой ревизии?

Не обязательно. Аппаратные ревизии могут отличаться процессором, типом памяти и картой разделов. Использовать дамп от другой ревизии рискованно — сверяйте полное название модели и версию железа на наклейке.

Опасно ли подключать UART к работающему роутеру?

Само по себе подключение линий TX/RX/GND при уровнях 3,3 В безопасно. Опасность представляют адаптеры с 5-вольтовой логикой и подключение вывода питания адаптера к плате — этого следует избегать.

Что делать, если программатор не видит микросхему через прищепку?

Проверьте правильность ориентации прищепки (первый контакт), качество прижатия и то, что роутер обесточен. Если чтение нестабильно, возможно, питание уходит на плату — тогда микросхему придётся выпаивать или искать способ отключить питание остальной схемы.