-2

Кто-нибудь знает, в каком типе файла или файловой системе обычно сохраняется Rom-файл маршрутизатора (загружаемый из интерфейса маршрутизатора)? Есть ли инструмент (мы не говорим об инструменте архивирования, например, zip/7z/rar), который я мог бы использовать для распаковки /правильной перепаковки файла прошивки? Причина, по которой я спрашиваю, заключается в том, что я хочу поиграться, возможно, добавлю в них некоторые изменения, и мой маршрутизатор будет сброшен с измененной прошивкой. Маршрутизатор не поддерживает нестандартные и модные прошивки сторонних производителей, поэтому мне нужно модифицировать стоковую прошивку производителя.

1 ответ1

2

Инструмент с именем binwalk может быть хорошей отправной точкой для анализа встроенного программного обеспечения. Он выдаст список, который точно содержит файл прошивки. Он также способен извлекать идентифицированные блоки, но вместо этого я использую dd .

Несмотря на то, что binwalk очень полезен, он не совсем точен. Я на самом деле борюсь с прошивкой ZynOS, и binwalk говорит, что это сжатый архив LZMA, но ни один из инструментов LZMA не может его распаковать. Это выглядит как большой пакет данных без какой-либо известной файловой структуры.

Это может быть плохой информацией для вас, но иногда невозможно просто распаковать его, что-то изменить и снова упаковать (например, мой Linksys, где прошивка представляет собой просто раздел SquashFS с типичной файловой системой Linux). Я буду заниматься дальнейшими исследованиями, и если мне удастся найти что-то интересное, я обновлю свой пост.

Вы должны получить аналогичный вывод из binwalk.

    DECIMAL         HEX             DESCRIPTION
-------------------------------------------------------------------------------------------------------------------
65790           0x100FE         LZMA compressed data, properties: 0x7E, dictionary size: 4194304 bytes, uncompressed size: 65536 bytes
84992           0x14C00         ZynOS header, header size: 48 bytes, rom image type: ROMBIN, uncompressed size: 66696, compressed size: 16847, uncompressed checksum: 0xCB32, compressed checksum: 0xD5A5, flags: 0xE0, uncompressed checksum is valid, the binary is compressed, compressed checksum is valid, memory map table address: 0x0
85043           0x14C33         LZMA compressed data, properties: 0x5D, dictionary size: 8388608 bytes, uncompressed size: 66696 bytes
128002          0x1F402         GIF image data, version "89a", 200 x 50
136194          0x21402         GIF image data, version "89a", 560 x 50
328486          0x50326         Copyright string: " (c) 2001 - 2012 TP-LINK TECHNOLOGIES CO., LTD.LOGIES CO., LTD."
350208          0x55800         ZynOS header, header size: 48 bytes, rom image type: ROMBIN, uncompressed size: 5077932, compressed size: 1121804, uncompressed checksum: 0xB4F9, compressed checksum: 0x84CA, flags: 0xE0, uncompressed checksum is valid, the binary is compressed, compressed checksum is valid, memory map table address: 0x0
350259          0x55833         LZMA compressed data, properties: 0x5D, dictionary size: 8388608 bytes, uncompressed size: 5077932 bytes

Колонки:

  1. Позиция в целевом файле (десятичное число)
  2. Положение в целевом файле (шестнадцатеричное)
  3. Краткое описание блока

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .