Меню Рубрики

Как декомпилировать прошивку роутера

Как декомпилировать прошивку роутера

OpenWrt — встраиваемая операционная система, основанная на ядре Linux, и предназначенная, в первую очередь, для домашних маршрутизаторов. Основные компоненты включают в себя ядро Linux, util-linux, uClibc или musl и BusyBox. Исходный код открытый. Распространяется под лицензией GNU GPL

Проект LEDE разработан на основе линукса, встраиваемый мета-дистрибутив базирующийся на OpenWRT, ориентирован на широкий спектр беспроводных маршрутизаторов SOHO и не-сетевых устройств. “Linux Embedded Development Environment” (Встраиваемая среда разработки линукс).
LEDE отвернулся от материнского проекта в мае 2016 года, с целью продолжить разрабатывать лучшее программное обеспечение в открытой модели управления и поощрение новых разработчиков внести свой вклад и усилия в области развития.

  • https://www.openwrt.org
  • https://github.com/openwrt

  • Данная тема предназначена для обсуждения процесса сборки, обсуждения компонентов прошивки для включения в готовый файл для прошивки вашего маршрутизатора и все что не связано с компиляцией прошивки.
  • В данной теме не обсуждают настройки OpenWrt/LEDE, процесс установки готовых сборок на ваш роутер. Вопросы типа: «Установил OpenWrt и теперь не знаю что делать, как мне настроить интернет» — оффтоп и будет удален без каких либо предупреждений. Для таких вопросов есть общая темаOpenWrt/LEDE — альтернативная прошивка

/openwrt && ./scripts/feeds update -a && ./scripts/feeds install -a && make prereq

/openwrt && ./scripts/feeds update -a && ./scripts/feeds install -a && make prereq

/openwrt && ./scripts/feeds update -a && ./scripts/feeds install -a && make prereq

/openwrt && ./scripts/feeds update -a && ./scripts/feeds install -a && make prereq

/openwrt && ./scripts/feeds update -a && ./scripts/feeds install -a && make prereq

/openwrt && ./scripts/feeds update -a && ./scripts/feeds install -a && make prereq

/openwrt && ./scripts/feeds update -a && ./scripts/feeds install -a && make prereq

/openwrt && ./scripts/feeds update -a && ./scripts/feeds install -a && make prereq

/openwrt && ./scripts/feeds update -a && ./scripts/feeds install -a && make prereq

/openwrt && ./scripts/feeds update -a && ./scripts/feeds install -a && make prereq

/openwrt && ./scripts/feeds update -a && ./scripts/feeds install -a && make prereq

/openwrt && ./scripts/feeds update -a && ./scripts/feeds install -a && make prereq

/openwrt && ./scripts/feeds update -a && ./scripts/feeds install -a && make prereq

/openwrt && ./scripts/feeds update -a && ./scripts/feeds install -a && make prereq

/openwrt && ./scripts/feeds update -a && ./scripts/feeds install -a && make prereq

/openwrt && ./scripts/feeds update -a && ./scripts/feeds install -a && make prereq

/openwrt && ./scripts/feeds update -a && ./scripts/feeds install -a && make prereq

/openwrt && ./scripts/feeds update -a && ./scripts/feeds install -a && make prereq

/openwrt && ./scripts/feeds update -a && ./scripts/feeds install -a && make prereq

/openwrt && ./scripts/feeds update -a && ./scripts/feeds install -a && make prereq

/openwrt && ./scripts/feeds update -a && ./scripts/feeds install -a && make prereq

Все манипуляции делаются на компьютере с linux (в нашем примере будет для Debian/Ubuntu)
Для начала установим все необходимое.

Открываем консоль и копируем туда команды

Далее нужно скачать исходники прошивки (смотри спойлер Git-репозитории проектов OpenWrt и LEDE )

Скачиваем необходимую нам ветку (в данном примере это OpenWrt v17.01.4)

Далее, переходим в каталог с тем что у нас скачалось.

/ (то есть home, он же домашний каталог) у нас создался каталог openwrt, нужно перейти в него для продолжения

Источник

Альтернативная прошивка для роутеров OpenWrt и куда делась «Люси»

Сегодня обойдемся без предисловий и перейдем сразу к делу. Итак, наверняка многие слышали что помимо прошивки от производителя устройства, существуют и альтернативные. Наиболее раскрученная и на слуху — это, наверное, DD-WRT . Про неё я уже рассказывал когда делал wi-fi повторитель на базе D-Link DIR-300 .

Еще одна альтернативная прошивка — OpenWrt . Она менее дружественна для обычного пользователя, однако, обладает сравнимыми или даже большими возможностями по настройке, плюс работает на большем количестве роутеров. Мой пример с Linksys EA4500 тому подтверждение.

Спросите, а для чего вообще нужна альтернативная прошивка если и так всё работает? Раз возникает подобный вопрос, то возможно именно вам и не к чему такие эксперименты. Если всё работает и всё устраивает, то лучше пусть так и будет.

С аппаратной точки зрения у Linksys EA4500 огромный потенциал, который никак не используется штатной прошивкой, а мне крайне необходимо было выжать из этого «железа» больше. Самое главное нужен был полноценный firewall, с возможностью создавать свои правила (в штатной прошивке вместо него было какое-то недоразумение) и наличие vpn-сервера (в идеале openvpn). OpenWrt для этих целей подходила как нельзя лучше — по сути, это полноценный Linux-сервер с кучей всевозможных «плюшек», позволяющих делать невероятные, для обычных роутеров, вещи, вплоть до запуска прокси-сервера Squid или ip-телефонии Аsterisk. Вдумайтесь, это на обычном роутере(!)

Прошивка OpenWrt на Linksys EA4500 / E4200 v2

Страничка с прошивкой для Linksys EA4500 / E4200 v2 , где находим ссылку на саму прошивку, в моём случае это openwrt-kirkwood-linksys-viper-squashfs-factory.bin

Собственно, в самом процессе перепрошивки, ничего сложного нет, всё делается штатными средствами через web-интерфейс вашего роутера, указываем путь к скачанному файлу прошивки и в путь. Единственное что хотелось отметить, прошиваться желательно не по wi-fi, а подключившись проводом к роутеру в обычный LAN-порт.

По идее, предполагается что дальнейшие настройки будут производиться через web-интерфейс уже новой прошивки ( адрес по умолчанию 192.168.1.1, логин root c пустым паролем ). Но не в моем случае. на указанной выше страничке Linksys EA4500, английским по белому написано что никакого web-интерфейса у меня не будет и нужно сперва установить этот самый web-интерфейс LuCI .

Поднимаем WAN и web-интерфейс из командной строки OpenWrt

Итак, web-интерфейса у нас нет. Чтобы его установить (ссылка на инструкцию приведена чуть выше) нам понадобиться сконфигурировать WAN-интерфейс для соединения с интернет. Для этого подключаемся к нашему роутеру по ssh (этот интерфейс включен по умолчанию): ssh root@192.168.1.1

Как помните, у нас сейчас нет пароля, сразу и зададим свой пароль командой passwd :

# passwd
Changing password for root

Теперь перейдем непосредственно к настройке wan-интерфейса. В моем случае провайдер выдал статический адрес, потому пример будет со статикой (больше примеров можно посмотреть в официальной документации Network configuration ). Тут всё как в обычном Linux, с помощью консольного текстового редактора vi вносим изменения в файл конфигурации /etc/config/network

config interface ‘wan’
option ifname ‘eth1’
option proto ‘static’
option ipaddr ‘xxx.xxx.xxx.xxx’
option netmask ‘xxx.xxx.xxx.xxx’
option gateway ‘xxx.xxx.xxx.xxx’
option dns ‘xxx.xxx.xxx.xxx’

После того как внесли изменения и сохранили файл, осталось перезапустить сеть для применения изменений:

Интернет появился. Теперь уже можно спокойно установить web-интрефейс luci и производить дальнейшие настройки уже в графическом режиме из браузера:

Запускаем web-сервер (uHTTPd)

Подписывайтесь на канал Яндекс.Дзен и узнавайте первыми о новых материалах, опубликованных на сайте.

ЕСЛИ СЧИТАЕТЕ СТАТЬЮ ПОЛЕЗНОЙ,
НЕ ЛЕНИТЕСЬ СТАВИТЬ ЛАЙКИ И ДЕЛИТЬСЯ С ДРУЗЬЯМИ.

Источник

OpenWRT.su

Open.Wireless.Super and LEDE

Сборка своей прошивки LEDE из исходников

Во многих случаях решить поставленную задачу можно только путем сборки прошивки LEDE из исходников со включенными под ваши требования пакетами. Особо остро данная необходимость проявляется, когда вы пытаетесь запихнуть новую версию прошивки в свой старый роутер с 4 мб rom памяти. О том, как собрать свою прошивку LEDE OpenWRT из исходных кодов под ваше устройство, а также как исключить из сборки ненужные вам пакеты и будет эта статья. Мы разделим весь процесс на несколько этапов, чтобы вы всегда знали на каком именно у вас возникает проблема и требуется совет.

1. Подготовка операционной системы

Для того, чтобы собрать LEDE из исходников нужна Linux машина. Ну или хотя-бы виртуальная, если под рукой нет настоящей. Oracle VM VirtualBox идеально подойдет для этих требований, устанавливайте виртуальную машину хоть в Windows 10, скачивайте любимый Linux дистрибутив и устанавливайте в нее. Далее нужно установить необходимые средства компиляции, которые потребуются для корректной сборки прошивки Lede. Я собираю прошивки в Ubuntu64 из под Oracle VM VirtualBox. Для 64 битной Ubuntu команда устанавливающая набор инструментов выглядит так:

sudo apt-get install build-essential subversion libncurses5-dev zlib1g-dev gawk gcc-multilib flex git-core gettext libssl-dev

2. Получение исходных кодов LEDE

git clone https://github.com/openwrt/openwrt.git

Или скачайте архив с исходными кодами по адресу https://github.com/openwrt/openwrt нажав на кнопку Download ZIP и разархивируйте его в вашу в домашнюю папку.

3. Обновление и получение списка доступных пакетов LEDE

Переходим в папку с исходными кодами. Запускаем терминал. Сначала обновляем весь список доступных пакетов

./scripts/feeds update -a

Updating feed ‘packages’ from ‘https://git.lede-project.org/feed/packages.git^cd5c448758f30868770b9ebf8b656c1a4211a240’ .
Клонирование в «./feeds/packages»…
remote: Counting objects: 56015, done.
remote: Compressing objects: 100% (24189/24189), done.
remote: Total 56015 (delta 30181), reused 54128 (delta 28673)
Получение объектов: 100% (56015/56015), 13.58 MiB | 819.00 KiB/s, готово.
Определение изменений: 100% (30181/30181), готово.
Проверка соединения… готово.
Переключено на новую ветку «cd5c448758f30868770b9ebf8b656c1a4211a240»
/home/compile/openwrt-17.01.4
Create index file ‘./feeds/packages.index’
Checking ‘working-make’. ok.
Checking ‘case-sensitive-fs’. ok.
Checking ‘proper-umask’. ok.
Checking ‘gcc’. ok.
Checking ‘working-gcc’. ok.
Checking ‘g++’. ok.
Checking ‘working-g++’. ok.
Checking ‘ncurses’. ok.
Checking ‘zlib’. ok.
Checking ‘perl-thread-queue’. ok.
Checking ‘tar’. ok.
Checking ‘find’. ok.
Checking ‘bash’. ok.
Checking ‘patch’. ok.
Checking ‘diff’. ok.
Checking ‘cp’. ok.
Checking ‘seq’. ok.
Checking ‘awk’. ok.
Checking ‘grep’. ok.
Checking ‘getopt’. ok.
Checking ‘stat’. ok.
Checking ‘unzip’. ok.
Checking ‘bzip2’. ok.
Checking ‘wget’. ok.
Checking ‘perl’. ok.
Checking ‘python’. ok.
Checking ‘git’. ok.
Checking ‘file’. ok.
Checking ‘ldconfig-stub’. ok.
Collecting package info: done
Collecting target info: done
Updating feed ‘luci’ from ‘https://git.lede-project.org/project/luci.git^d3f0685d63c1291359dc5dd089c82fa1e150e0c6’ .
Клонирование в «./feeds/luci»…
remote: Counting objects: 103372, done.
remote: Compressing objects: 100% (28712/28712), done.
remote: Total 103372 (delta 60773), reused 101706 (delta 59436)
Получение объектов: 100% (103372/103372), 25.16 MiB | 1.22 MiB/s, готово.
Определение изменений: 100% (60773/60773), готово.
Проверка соединения… готово.
Переключено на новую ветку «d3f0685d63c1291359dc5dd089c82fa1e150e0c6»
/home/compile/openwrt-17.01.4
Create index file ‘./feeds/luci.index’
Collecting package info: done
Collecting target info: done
Updating feed ‘routing’ from ‘https://git.lede-project.org/feed/routing.git^d11075cd40a88602bf4ba2b275f72100ddcb4767’ .
Клонирование в «./feeds/routing»…
remote: Counting objects: 6550, done.
remote: Compressing objects: 100% (4182/4182), done.
remote: Total 6550 (delta 2631), reused 5201 (delta 1977)
Получение объектов: 100% (6550/6550), 1.59 MiB | 934.00 KiB/s, готово.
Определение изменений: 100% (2631/2631), готово.
Проверка соединения… готово.
Переключено на новую ветку «d11075cd40a88602bf4ba2b275f72100ddcb4767»
/home/compile/openwrt-17.01.4
Create index file ‘./feeds/routing.index’
Collecting package info: done
Collecting target info: done
Updating feed ‘telephony’ from ‘https://git.lede-project.org/feed/telephony.git^ac6415e61f147a6892fd2785337aec93ddc68fa9’ .
Клонирование в «./feeds/telephony»…
remote: Counting objects: 6212, done.
remote: Compressing objects: 100% (4122/4122), done.
remote: Total 6212 (delta 3353), reused 3736 (delta 1921)
Получение объектов: 100% (6212/6212), 1.20 MiB | 604.00 KiB/s, готово.
Определение изменений: 100% (3353/3353), готово.
Проверка соединения… готово.
Переключено на новую ветку «ac6415e61f147a6892fd2785337aec93ddc68fa9»
/home/compile/openwrt-17.01.4
Create index file ‘./feeds/telephony.index’
Collecting package info: done
Collecting target info: done

Подготавливаем все пакеты к возможности их выбора и установки

./scripts/feeds install -a

Collecting package info: done
Collecting target info: done
Installing all packages from feed packages.

4. Выбираем исходную архитектуру, модель и версию железа роутера

В пункте Target System выбираем архитектуру на которой построен ваш роутер.

В пункте Target Profile ищем и выбираем названием вашего роутера с аппаратной версией железа в нем. Могут быть версии V1, V2 и т.д.

После чего сохраняем текущую конфигурацию Save и выходим Exit. Далее пробегаемся по зависимостям пакетов от архитектуры железа:

Конфигурация автоматически сохранится. Можно переходить к следующему шагу.

5. Установка и компиляция инструментов сборки

Для сборки прошивки OpenWRT/LEDE также нужны свои встроенные в исходный код инструменты компиляции. Как правило они собираются и устанавливаются один раз, после чего сборка прошивок с разными пакетами происходит гораздо быстрее. Вводим команду и ждем результата:

make[2] -C toolchain/gdb compile
make[2] -C toolchain/binutils compile
make[2] -C toolchain/gcc/initial compile
make[2] -C toolchain/kernel-headers compile
make[2] -C toolchain/musl compile
make[2] -C toolchain/gcc/final compile
make[2] -C toolchain/fortify-headers compile

6. Выбор пакетов входящих в состав прошивки

Ну теперь можно перейти и к так называемой кастомизации.

В OpenWRT/LEDE расширения есть обязательные — это которые включены в базовый набор и являются основопологающими. Вырезать и отключить такие как правило стандартными средствами нельзя. В меню они помечены звездочкой между тире -*-. Их надо принять как должное и не заморачиваться

В случае, когда нужно встроить какой-нибудь пакет в вашу прошивку, нужно поменить его звездочкой используя клавишу пробел или Select. Пакет будет установлен в саму прошивку роутера и будет доступен в OpenWRT/LEDE сразу после прошивки.

Вы также можете собрать расширение как отдельный пакет, чтобы установить его позже через менеджер OPKG. Такой пакет надо поменить в меню как «M»

После того, как состав пакетов выбран — сохраняем текущую конфигурацию Save и выходим Exit

7. Сборка прошивки

Если вы любите смотреть как все происходит в режиме реального времени, то для вас команда:

Она будет выводить абсолютно весь ход компиляции. Глаза устанут пытаться что-то уловить. Более понятный вывод результата сборки доступен по команде:

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

make -jN V=S

Где N — количество ядер вашего процессора + 1 поток. 3,5 и т.д. Процесс займет времени достаточно, чтобы успеть сходить выпить кофе или поиграть с котом.

После успешной сборки прошивки, в папке исходныекоды/bin/ вы сможете найти готовые файлы для последующей заливки на ваш маршрутизатор. Файл со словом factory предназначен для прошивки роутера, на котором еще стоит стандартная прошивка производителя, а файл содержащий sysupgrade может быть залит на роутер, на котором уже установлена OpenWRT / LEDE операционная система.

Надеюсь данное руководство помогло вам собрать свою первую прошивку OpenWRT LEDE для вашего роутера.

Источник

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

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

  • Как действует вай фай роутер
  • Как два роутера связать между собой
  • Как два роутера объединить в одну локальную сеть
  • Как два компьютера соединить в локальную сеть через роутер
  • Как дать доступ к серверу teamspeak 3 через роутер