
Автоматически экспортировано из code.google.com/p/firmware-mod-kit
Автоматически экспортировано с google.com/p/firmware-mod-kit
Firmware Modification Kit
Этот набор представляет собой коллекцию скриптов и утилит для извлечения и пересборки образов встроенного ПО на базе Linux.
Извлечение образа прошивки на составные части
Пользователь вносит желаемые изменения в файловую систему прошивки или веб-интерфейс (webif)
Пересборка прошивки
Загрузка модифицированной прошивки на устройство и превращение его в «кирпич» (ха)
ПРЕДУПРЕЖДЕНИЕ: Используя этот набор, вы превратите ваше устройство в «кирпич» (возможно, нет, но лучше сказать, что превратите). «Кирпич» означает, что устройство фактически становится неработоспособным. Иногда восстановление возможно без аппаратных модификаций. Иногда требуются аппаратные доработки (например, припайка разъёмов последовательного порта или JTAG на печатную плату). Иногда это просто нецелесообразно или затраты на восстановление превышают стоимость самого устройства.
НЕ используйте этот набор, если вы не готовы к тому, что ваш роутер превратится в «кирпич»!
Лицензионное соглашение (EULA): Загружая или используя этот набор, вы соглашаетесь принять на себя ответственность за последствия использования или неправильного использования Firmware Mod Kit. Эти последствия включают превращение вашего устройства в «кирпич». Авторы набора вас предупредили. Данный набор предназначен только для инженеров-программистов встраиваемых систем.
Firmware Mod Kit позволяет легко разбирать и собирать образы прошивок для различных встраиваемых устройств. Хотя он в первую очередь ориентирован на роутеры на базе Linux, он должен быть совместим с большинством прошивок, использующих распространённые форматы прошивок и файловые системы, такие как TRX/uImage и SquashFS/CramFS.
Для использования Firmware Mod Kit вам понадобится клиент Subversion, стандартные инструменты разработки Linux (gcc, make и т.д.), модуль python-magic и пакеты разработки zlib и lzma. Если вы используете дистрибутив Linux с apt-get, например Ubuntu или Debian, выполните:
Для Ubuntu 18.04 и старше:
sudo apt-get install git build-essential zlib1g-dev liblzma-dev python-magic autoconf
Для Ubuntu 20.04 и новее:
sudo apt-get install git build-essential zlib1g-dev liblzma-dev python3-magic autoconf python-is-python3
Для RedHat:
yum groupinstall "Development Tools"
yum install git zlib1g-dev xz-devel python-magic zlib-devel util-linux
Для Arch Linux:
Существует пакет AUR для https://aur.archlinux.org/packages/firmware-mod-kit/
Для других дистрибутивов установите эквивалентные пакеты с помощью менеджера пакетов вашего дистрибутива.
git clone https://github.com/rampageX/firmware-mod-kit.git
cd firmware-mod-kit/src
make
Binwalk 2.1.1
[Back in firmware-mod-kit directory]
cd src/binwalk-2.1.1
sudo python2 setup.py install
Firmware Mod Kit поддерживается только на платформе Linux. С небольшими изменениями он должен работать на других POSIX-платформах.
Клонируйте репозиторий Firmware Modification Kit с помощью Git.
Firmware Mod Kit представляет собой набор утилит и скриптов оболочки. Утилиты можно использовать напрямую, а скрипты оболочки — для автоматизации и объединения типовых операций с прошивкой (например, извлечение и пересборка). Основные скрипты для работы с прошивкой перечислены ниже.
Основные скрипты:
| Скрипт | Описание |
|---|---|
| extract-firmware.sh | Скрипт извлечения прошивки |
| build-firmware.sh | Скрипт пересборки прошивки |
Вспомогательные скрипты:
| ddwrt-gui-extract.sh | Извлекает файлы веб-интерфейса из извлечённой прошивки DD-WRT. |
|---|---|
| ddwrt-gui-rebuild.sh | Восстанавливает изменённые файлы веб-интерфейса в извлечённой прошивке DD-WRT. |
Firmware Mod Kit использует «жёстко заданный» рабочий каталог с именем «fmk». Скрипт извлечения извлекает данные в эту папку, а скрипт пересборки собирает из неё. Возможность использования альтернативных рабочих каталогов поддерживается для некоторых операций, но не для всех. В будущем мы расширим эту возможность. Пока же, если у вас несколько рабочих каталогов, рекомендуем переименовывать те, с которыми вы сейчас не работаете.
Автоматизированное извлечение прошивки обычно работает с большинством образов прошивок, использующих заголовки uImage/TRX и файловые системы SquashFS или CramFS. В настоящее время extract-firmware.sh является предпочтительным методом извлечения, так как поддерживает больше типов прошивок, чем старый скрипт old-extract.sh. Однако old-extract.sh всё ещё включён в состав и работает со многими форматами прошивок.
Использование как extract-firmware.sh, так и build-firmware.sh просто:
./extract-firmware.sh firmware.bin
По умолчанию выходные данные extract-firmware.sh будут расположены в каталоге «fmk», в то время как old-extract.sh помещает извлечённые данные в указанный рабочий каталог.
Какой скрипт сборки использовать, зависит от того, какой скрипт извлечения применялся. Если вы извлекли образ прошивки с помощью extract-firmware.sh, то для пересборки необходимо использовать build-firmware.sh. Аналогично, если использовался old-extract.sh, то для пересборки образа следует вызывать old-build.sh:
./build-firmware.sh [-nopad] [-min]
Новая прошивка, созданная build-firmware.sh, будет находиться по пути «fmk/new-firmware.bin», в то время как old-build.sh создаёт образы прошивок в нескольких различных форматах и сохраняет их в указанном выходном каталоге.
Необязательный параметр -nopad указывает build-firmware.sh НЕ дополнять прошивку до исходного размера.
Необязательный параметр -min использует максимальный размер блока squashfs в 1 МБ. Это уменьшит размер образа прошивки ценой увеличения загрузки ЦП и оперативной памяти на целевом устройстве. Не используйте этот параметр без необходимости. Это очень большой размер блока для встраиваемых систем. Исходный размер блока squashfs прошивки сохраняется при пересборке, и следует использовать исходный размер блока, если вы не уверены в том, что делаете. Слишком большой размер блока может работать нормально, но производительность прошивки во время выполнения может снизиться как при всех, так и при некоторых нагрузках.
Одной из уникальных особенностей Firmware Mod Kit является возможность извлекать и пересобирать файлы из веб-интерфейса DD-WRT. Это автоматизируется скриптами ddwrt-gui-extract.sh и ddwrt-gui-restore.sh.
После того как вы извлекли образ прошивки DD-WRT с помощью extract-firmware.sh, вы можете извлечь веб-файлы, выполнив:
./ddwrt-gui-extract.sh
Это создаст каталог с именем «www» и извлечёт туда веб-файлы. Вы можете изменять файлы любым способом, но не можете добавлять или удалять файлы.
Когда вы закончите редактирование, вы можете пересобрать веб-файлы, выполнив:
./ddwrt-gui-rebuild.sh