Как редактировать прошивку bin
Как редактировать прошивку bin
1. Создаем папку MstarDumpSplitter
2. В папку кидаем прогу MstarDumpSplitter.exe
3. В эту же папку кидаем файл который нужно разобрать (EMMC.BIN)
4. Нажимаем кнопку Shift на папке MstarDumpSplitter и правой кнопкой миши открываем окно команд
5. Вводим команду MstarDumpSplitter.exe EMMC.BIN
6. Будет создана папка splitted с раcпакованными в ней файлами EMMC.BIN
Пример. Путь для программы установленной на диске D в папке Program
D:\Program\MstarDumpSplitter>MstarDumpSplitter.exe EMMC.BIN
| Просмотр и скачивание файлов доступно только зарегистрированным участникам.! |
Добавлено спустя 59 секунд:
Как добавить русский язык в шасси CV338H-T42
| Просмотр и скачивание файлов доступно только зарегистрированным участникам.! |
Бан выдал admin (03 Дек 2021, 10:27, действует до: 28 Ноя 2022, 10:27)
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы не можете скачивать файлы
Официальный сайт AMCV, AKAI, Asano, Akira, lliew, Aiwa, Artel, BBK, BOE, Bravis, Digma, Dexp, Denn, DEX, Daewoo, Dyon, Doffer, Erisson, Elenberg, Ergo, Engalon, Hyundai, HOLLEBER, Satelit, Sumato, Soundmax, Starwind, Supra, Saturn, Sony, Shivaki, Samsung, Sharp, Strong, SHOWNIC, SkyLine, PRESTIGIO, Yuno, Rolsen, HI, JVC, Mystery, Telefunken, HiKeen, HELIX, Hisense, Hamber, Herenthal, Harper, Hartens, Hisense, Hoffson, HELIX, Kivi, LG, Liberton, Liberty, Loview, Lentel, Leben, Loview, LEFF, Lumus, Mirta, Mystery, Manta,OzoneHD,Panasonic, Philips, Pioneer, Reca, Rotex, Rainford, Rolsen, RUIMATECH, TCL, Thomson, Toshiba, Tevion, Nesons, Neko, NEI, Novex, Prime Technics, Vinga, Comer, Grunkel, Quarton, KROHLER, YASIN, Vesta, Xiaomi,Terris, Trony, Irbis, Fusion, xiaomi mi, TDLex, Gazer, Grunhelm, Glofiish, Kruger&Matz, VILGRAND, ORFEY, AVEX, NEONIX, Blaсkton, TopDevice, HIBERG, QUARTON, Olto
Реверс-инжиниринг домашнего роутера с помощью binwalk. Доверяете софту своего роутера?
Несколько дней назад, я решил провести реверс-инжиниринг прошивки своего роутера используя binwalk.
Я купил себе TP-Link Archer C7 home router. Не самый лучший роутер, но для моих нужд вполне хватает.
Каждый раз когда я покупаю новый роутер, я устанавливаю OpenWRT. Зачем? Как правило производители не сильно заботятся о поддержке своих роутеров и со временем софт устаревает, появляются уязвимости и так далее, в общем вы поняли. Поэтому я предпочитаю хорошо поддерживаемую сообществом open-source прошивку OpenWRT.
Скачав себе OpenWRT, я так же скачал последний образ прошивки под мой новый Archer C7 с официального сайта и решил проанализировать его. Чисто ради фана и рассказать о binwalk.
Что такое binwalk?
Binwalk — это инструмент с открытым исходным кодом для анализа, реверс-инжиниринга и извлечения образов прошивок.
Созданный в 2010 году Крейгом Хеффнером, binwalk может сканировать образы прошивок и находить файлы, идентифицировать и извлекать образы файловой системы, исполняемый код, сжатые архивы, загрузчики и ядра, форматы файлов, такие как JPEG и PDF, и многое другое.
Вы можете использовать binwalk для реверс-инжиниринга прошивки для того, что бы понять как она устроена. Искать в бинарных файлах уязвимости, извлекать файлы и искать бекдоры или цифровые сертификаты. Можно так же найти opcodes для кучи разных CPU.
Вы можете распаковать образы файловой системы для поиска определенных файлов паролей (passwd, shadow и т.д.) И попытаться сломать хэши паролей. Вы можете выполнить двоичный анализ между двумя или более файлами. Вы можете выполнить анализ энтропии данных для поиска сжатых данных или закодированных ключей шифрования. Все это без необходимости доступа к исходному коду.
В общем все, что необходимо, есть 🙂
Как работает binwalk?
Основной особенностью binwalk является его сигнатурное сканирование. Binwalk может сканировать образ прошивки для поиска различных встроенных типов файлов и файловых систем.
Binwalk работает так же. Но вместо того, чтобы искать подписи только в начале файла, binwalk будет сканировать весь файл. Кроме того, binwalk может извлечь файлы, найденные в образе.
Инструменты file и binwalk используют библиотеку libmagic для идентификации подписей файлов. Но binwalk дополнительно поддерживает список пользовательских магических сигнатур для поиска сжатых / заархивированных файлов, заголовков прошивок, ядер Linux, загрузчиков, файловых систем и так далее.
Установка binwalk
Binwalk поддерживается на нескольких платформах, включая Linux, OSX, FreeBSD и Windows.
Чтобы установить последнюю версию binwalk, вы можете загрузить исходный код и следовать инструкции установки или краткому руководству, доступному на веб-сайте проекта.
У Binwalk много разных параметров:
Сканирования образов
Начнем с поиска сигнатур файлов внутри образа (образ с сайта TP-Link).
Теперь у нас много информации об этом образе.
Давайте теперь распакуем загрузчик (U-Boot) с помощью команды dd :
Поскольку образ сжат с помощью LZMA, нам нужно распаковать его:
Теперь у нас есть образ U-Boot:
Переменная окружения U-Boot bootargs используется для передачи параметров ядру Linux. И из вышеприведенного мы лучше понимаем флэш-память устройства.
Как насчет извлечения образа ядра Linux?
Мы можем проверить, что образ был успешно извлечен с помощью команды file :
Формат файла uImage — это в основном образ ядра Linux с дополнительным заголовком. Давайте удалим этот заголовок, чтобы получить окончательный образ ядра Linux:
Образ сжат, поэтому давайте распакуем его:
Теперь у нас есть образ ядра Linux:
Что мы можем сделать с образом ядра? Мы могли бы, например, сделать поиск по строкам в образе и найти версию ядра Linux и узнать об окружающей среде, используемой для сборки ядра:
Несмотря на то, что прошивка была выпущена в прошлом году (2019 г.), когда я пишу эту статью, она использует старую версию ядра Linux (3.3.8), выпущенную в 2012 г., скомпилированную с очень старой версией GCC (4.6) также с 2012 г.!
(прим. перев. еще доверяете своим роутерам в офисе и дома?)
Полная корневая файловая система будет извлечена в подкаталог:
Теперь мы можем сделать много разного.
Мы можем искать файлы конфигурации, хэши паролей, криптографические ключи и цифровые сертификаты. Мы можем проанализировать бинарные файлы для поиска ошибок и уязвимостей.
С помощью qemu и chroot мы можем даже запустить (эмулировать) исполняемый файл из образа:
Здорово! Но обратите внимание, что версия BusyBox — 1.19.4. Это очень старая версия BusyBox, выпущенная в апреле 2012 года.
Таким образом, TP-Link выпускает образ прошивки в 2019 году с использованием программного обеспечения (GCC toolchain, kernel, BusyBox и т. Д.) 2012 года!
Теперь вы понимаете, почему я всегда устанавливаю OpenWRT на свои роутеры?
Это еще не все
Binwalk также может выполнять энтропийный анализ, печатать необработанные энтропийные данные и генерировать энтропийные графики. Обычно большая энтропия наблюдается, когда байты в образе случайны. Это может означать, что образ содержит зашифрованный, сжатый или обфусцированный файл. Хардкорно прописанный ключ шифрования? Почему бы и нет.
Вы можете найти больше информации о binwalk в официальной документации.
Расширение binwalk
Существует API-интерфейс binwalk, реализованный в виде модуля Python, который может использоваться любым скриптом Python для программного выполнения сканирования binwalk, а утилита командной строки binwalk может быть почти полностью продублирована всего двумя строками кода Python!
С помощью Python API вы также можете создавать плагины под Python для настройки и расширения binwalk.
Также существует плагин IDA и облачная версия Binwalk Pro.
Так почему бы вам не скачать образ прошивки из Интернета и не попробовать binwalk? Обещаю, вам будет очень весело 🙂
Как редактировать прошивку bin
Мною разработаны средства под различные типы чипов (микроконтроллеров), имеющих различие в строении образов. По мере поступления информации я буду выкладывать ее Вам в соответствующем разделе. В разделе «Дополнительная информация» будут находиться ссылки на заметки (статьи), ОБЩИЕ для всех чипов.
Используйте ее для общего ознакомления со средством, т.к. такая же находится в общем архиве.
Для варианта Pro: 
или в pdf формате 
Для стандартного варианта: 
Вариант Pro: 
Стандартный вариант: 
Программа редактирования параметров файла Parameter перенесена в тему Разметка памяти мобильных устройств. Теория и практика.
Свежая версия для Win 7 
Свежая версия для ХР ( благодаря пользователю ANT__)
Инструкция пользователя (такая же имеется и в архиве со средством):
Для запуска используется командная строка вида:
AppImageMaker Как редактировать прошивку bin [sourceFile] [destPath], где
AppImageMaker d:\app\SR_APP_Update.app f:\qwerty
то файл SR_APP_Update.app из папки d:\app будет распакован в папку f:\qwerty.
Если не введен путь к конечной папке (папке назначения), то она создается в той же папке, где находится приложение AppImageMaker, с именем «update» по-умолчанию. Например, строка вида:
распакует указанный файл в папку с именем update, созданную рядом с приложением AppImageMaker.
Если не указать также путь и имя файла прошивки, то по-умолчанию для прошивки будет использоваться имя «Update.app». Например, если ввести строку вида:
то приложение будет искать файл с именем «Update.app» в папке рядом с ним. При наличии такого файла он будет распакован в тут же созданную папку «update».
Для особо любознательных есть еще один ключ «/crc». По нему в папку назначения параллельно с распакованными файлами прошивки будут записываться контрольные суммы этих файлов, найденные в прошивке в заголовках этих файлов, с расширением «.crc».
У средства появились последователи, которые выпускают «модифицированные» под свои нужды варианты: And_pda
Распаковывает все (и симлинки тоже). Консольный вариант.
Об ImgExtractor

Инструкция для пользователя Ext4Extractor

Примечание. Так как тема посвящена средствам, работающим исключительно под Windows, все посты, рекламирующие обработку Linux-средствами, будут безжалостно удаляться как несоответствующие основной теме и мешающие работе. Это не означает что я противник Linux, но для него существует море других тем.
В теме нет куратора. По вопросам наполнения шапки обращайтесь к модераторам раздела через кнопку 
Инструкция по добавлению пути в переменные среды Windows
ВНИМАНИЕ. Внесенные изменения начнут действовать без перезагрузки компьютера при следующем вызове командной строки или запуске файлового менеджера.
Итак,
Операционная система Windows XP x86.
На рабочем столе выбираем ярлык «Мой компьютер», кликнув на нем правой кнопкой мыши, вызываем контекстное меню и выбираем в нем команду «Свойства». Откроется окно «Свойства системы».
Выбираем вкладку «Дополнительно».
Внизу слева нажимаем кнопку «Переменные среды». Откроется окно «Переменные среды».
В области «Системные переменные» находим переменную «Path» и, выделив ее, нажимаем на кнопку «Изменить».
В поле «Значение переменной:» в конце дописываем путь к необходимой папке, отделяя его от существующего значения «точкой с запятой». Например, «;D:\Cygwin».
Нажимаем «ОК» для записи пути и последовательно закрываем все открытые окна.
Для начала я посмотрю устройство образа, а потом посмотрим, что нужно и можно сделать.
Автору респект и уважуха и +
writing boot image config in cfg/boot.cfg
extracting kernel in kernel/zImage.img
extracting ramdisk in ramdisk/initrd.cpio.gz
gzip: initrd.cpio.gz: not in gzip format
Не удается найти указанный файл.
Не удается найти C:\RKwinTools\Unpack\Boot\ramdisk\*.cpio
Если можете, посмотрите можно-ли с этим что-то сделать.
прикладываю boot.img и stackdump.

Пользуйтесь в свое удовольствие.
Как редактировать прошивку bin
В этом FAQ’е содержится информация для новичков, которые хотят сделать собственную прошивку.
Внимание: разделы данного FAQ взамосвязаны, для понимания всего процесса, рекомендуется прочтение всего материала.
Если вы желаете добавить информацию в FAQ, просьба написать в этой теме
—-
Вся информация и материалы, представленные в данном FAQ’е, являются неофициальными. Авторы и Администрация сайта ответственности за них не несут! Все действия производятся только на Ваш страх и риск!
Часть первая: разбор прошивки
Итак, у нас есть файл прошивки, для первичной его разборки обычно необходима утилита, рассмотрим самые распространенные.
Рассматриваемые утилиты: OSNbTool, NBwork.
Чаще всего одного OSNbtool хватает, чтобы разобрать прошивку до imgfs и xip.
Переименовываем прошивку в flash.bin, кладем в папку с OSnbtool и выполняем серию команд (записываются в bat-файл) :
выполнение этой команды гарантированно разобьет OS на компоненты.
Выполнение этой команды гарантированно разобьет OS на компоненты.
Рассматриваемые утилиты:
OSNbTool, NBwork
Чаще всего одного OSNbtool хватает, чтобы разобрать прошивку до imgfs и xip.
Переименовываем прошивку в удобное короткое имя, кладем в папку с OSnbtool и выполняем серию команд (записываются в bat-файл) :
Выполнение этой команды гарантированно разобьет OS на компоненты.
Рассматриваемая утилита: KVA kitchen/DX900tools(KVA by Ravik)
Предупреждение: для работы утилиты необходимы Visual J# redistributable, Java Runtime Environment.
KVA-подходит для девайсов ETEN и некоторых Acer, DX900tools подходит для большинства девайсов Acer.
Разобрать с помощью нее довольно просто, необходимо лишь переименовать файл прошивки в temp.dat, скопировать его в корень кухни и запустить extract.bat, кухня сама разложит прошивку на составляющие.
В состав папки ROM, которая создастся в результате работы кухни входят файлы os.dat header.bin boot.dat ipl.dat knight.dat usbdl.dat и папка OS, красным выделены компоненты бутлоадера, которые нужно удалить при готовке кастомной прошивки.
В папке OS/Fat вы найдете необходимые в дальнейшем компоненты прошивки, а именно билд(imgfs.bin) и ядро(xip.bin) системы. В папке OS/EXTROM находятся cab-файлы, которые ставятся в систему при загрузке.
ВНИМАНИЕ: xip.bin, полученный при разборке может быть поврежден. В таком случае нужно пересоздать все DSM в нем, предварительно «разжав» его утилитой srpx2xip. После данной процедуры xip обретет запускаемый вид. Подробнее о DSM и способах его создания смотрите раздел Редактирование прошивки.
Нестандартные форматы (DIP, KDZ, TMP и другие)
Рассматриваемые утилиты: OSNbTool, NBwork, специальные утилиты
Переименовываем прошивку в flash.bin, кладем в папку с OSnbtool и выполняем серию команд (записываются в bat-файл) :
Выполнение этой команды гарантированно разобьет OS на компоненты.
Если же подобный метод не помогает, наверняка в теме по перепрошивке девайса найдется необходимая утилита.
После разборки увидим папку Dump, это и есть наш билд, но чтобы его можно было полноценно редактировать, нам нужно отправить его на обработку утилите PKG Tool, запускаем ее, выбираем load, в открывшемся меню выбираем место где лежит наш дамп (саму папку нужно открыть), после вышеописанной процедуры, в папке dump должны появиться папки OEM и SYS с пакетами OS внутри.
Способ разборки дампа на пакеты OSBuilder-ом:
-Запускаем OSBuilder
-переключаем в режим Dump Tool(верхний правый угол->Режим OS Builder)
-файл-открыть папку, указываем путь до папки dump(саму папку нужно открыть)
-увидим основополагающую информацию о билде: разрешение, язык, версию билда, Framework и пакетов, а так же сертификаты.
-нажимаем «разложить дамп на пакеты» (четвертая слева кнопка с квадратиками)
-в папке dump увидим разложенный на ОЕМ и SYS дамп ОС.
Часть вторая: редактирование OS
Внимание: данный раздел обязателен к прочтению полностью вне зависимости от выбранного метода редактирования.
Итак, вот мы подошли к самому творческому этапу создания прошивки. Следуя определенным правилам, можно создавать яркую, индивидуальную ОС с красочными иконками или своим набором программ, или вообще супер лайт!
Список пакетов SYS с описанием (поможет при очистке прошивки от лишнего)
Важные ОЕМ-пакеты (которые нельзя удалять)
Создание собственного ОЕМ-пакета
Если есть Cab-файл с программой:
Рассматриваемая утилита: package creator by ervius и ей подобные
Здесь все просто: открываем утилиту, указываем ей Cab-Файл(open cab) и рядом с ним получаем пакет, при этом галочку про remodule лучше убрать.
Конечно не без нюансов:
-initflashfiles создается в любом случае с тегом end package(даже если указаний на правку файловой системы не заложено)
-нужно проверить пакет на наличие всех необходимых файлов, бывало и такое, что файлы при преобразовании терялись
-нужно переписать дсм, потому что программы сборки посчитают его несоответсвующим
-поскольку cab часто при установке записывает программу в какую-то папку, отличную от windows, при встраивании программы вы получите дубликат в папке windows(В связи с вышеописанными особенностями алгоритма initflashfiles), поэтому протестируйте программу на корректный запуск из папки windows, если запуск происходит некорректно или программа не запускается, подумайте, «а действительно ли вам настолько нужна данная программа, что вы готовы выделить для нее удвоенное количество внутренней памяти?».
Если есть готовый пакет, просто перенесите его в ОЕМ или EXT кухни.
Практическое применение пакетов
Замена иконок в меню пуск:
Пакет с иконками лучше создавать с нуля. Допустим мы выкачали пак иконок. Вам повезло, если модифицированные иконки имеют те же имена, что и их оригиналы в windows, в противном случае, имена иконок необходимо брать из папки Base_dpi_[ваш dpi], там же их и нужно сверить. Как только все иконки-заменители приведены в порядок, создаем пакет с ними по вышеуказанным правилам и вшиваем его в прошивку. Если необходимо заменить иконку стороннего приложения(или ОЕМ-приложения) или применить иконку из имеющихся в wm к не предназначенному для нее приложению, используется пакет с реестровыми правками вида
Вшивание твиков реестра/редактирование реестра:
Мы знаем, что файл ргу в пакете отвечает за реестр. Чтобы внести реестровую правку, просто добавьте в ргу необходимые твики и задайте файлу соответствующее порядку сборки имя. Список твиков реестра можно найти в соответствующей теме из шапки.
Теперь отредактированный файл необходимо привести к исходному виду(т.е. превратить в модуль), для этого проведем его RecMod.
Примеры редактирования модулей:
Хотите, чтобы в сведениях о системе гордо красовался ваш ник?
открывайте shellres.dll.0419.mui и редактируйте диалог 14368 в файле, подобным образом:
XIP и способы работы с ним
Рекомендуемые размеры в зависимости от связки кол-во рам-разрешение экрана
64-QVGA 4мб
64-VGA 2мб
128 и выше-[не важно какое] 0мб
Ограничение/отключение програмными средствами
Умельцами написано множество программ, которые меняют размер pagepool автоматически, необходимо только указать им размер, не важно в командной строке или с помощью графического интерфейса.
Ярким примером являются кухни и утилиты от ERvius(EVK), где с помощью простых графических интерфейсов легко и просто изменить PP В прошивке.
Не менее ярким представителем является программа OSBuilder, не самая простая в плане совершения простых действий но самая функциональная. Рассмотрим на его примере изменение pagepool:
Внимание: выбор этого метода привязывает вас к пользованию программой OSBuilder, ибо только она может дальше работать с выданным шаблоном.
-Кнопка с шестеренкой->создать шаблон
-выбираем Nb-файл(или nb0), если прошивка имеет не такой формат, его легко добиться с помощью разборки утилитами класса osnbtool(см. 1 часть)
-в появившемся окне выбираем размер PP в соотв. графе в левом нижнем углу(или ставим нулевой)
-сохраняем шаблон.
Как редактировать прошивку bin
Обработка (распаковка и сборка) прошивок и образов (*.img, *.bin) строго под WINDOWS
Эта тема создана для продолжения обсуждения и помощи в обработке различных образов под Windows.
Полезное
(Примеры, варианты, утилиты, кухни, скрипты, обработки разных образов)
AndImgTool (Android Image Tool)
AndImgTool версия 1.3.0 Обновлено: 30.12.2014 релиз и подробности тут
— Добавлена поддержка распаковки\запаковки x86 загрузочных образов (функционал перенесен из утилиты xImgTool)
— основная утилита для распаковки образов файловых систем типа system, userdata, cache, secro (расширение может быть любое, например img или ext4).
Поддерживаются следующие форматы файловых систем: EXT2\EXT3\EXT4\YAFFS2\CRAMFS, форматы структуры образов (обертки) SPARSE\SIN( 1, 2 и 3 версии)\MOTO, поддерживается конвертация образа файловой системы формата EXT4 из обертки SIN или SPARSE непосредственно в EXT4, реализован вывод информации о суперблоке для образов файловых систем, дальше будет развиваться именно эта утилита.
ImgExtractor версия 1.3.7 Обновлено: 13.02.2015 релиз и подробности тут
— добавлена поддержка распаковки образов SPARSE-Marvell для MOTO
— исправлено падение утилиты при распаковке образов содержащих файлы с символами «?»
— добавлена идентификация формата UBIFS и обертки MOTO внутри SPARSE формата
— добавлена конвертация образов из EXT3\EXT4 в SPARSE с разбиением на файлы меньшего размера
— утилита для распаковки\запаковки загрузочных образов (IMG, BIN) и контейнеров (INB, SZB, QSB ) для устройств на базе x86 Android Platform (Lenovo K900, Ramos i9, Asus ZenFone 4,5,6, ZTE Geek)
xImgTool версия 1.3.32
ОБНОВЛЕНО: 06.11.2014
— поддержка нового размера блока bootstub
— сохранение новых атрибутов в блоке размеров
— при распаковке контейнера QSB части, участвующие при объединении в один файл, сохраняются в отдельной папке в оригинальном виде (особенно касается образов system и userdata)
В связи с тем, что основной функционал кухни перешел в единую утилиту AndImgTool, не требующую для своей работы никаких дополнительных CYGWIN DLL, настоятельно рекомендую использовать для работы с загрузочными образами именно AndImgTool (для образов файловых систем есть единая утилита ImgExtractor), поскольку пересборок кухни больше не планируется.
24.02.2014 Обновлено
Утилита ImgExtractor
13.02.2014 ОБНОВЛЕНО
— Обновлена утилита ImgExtractor (текущая версия 1.3.1), использующаяся для распаковки system.img в форматах EXT2\EXT3\EXT4\SPARSE\YAFFS2\CRAMFS
— Исправлена проблема с правами (владельцем и группами) при сборке образов в формате YAFFS2 ( про обнаруженные проблемы и их решение можно прочитать тут и тут)
RKwinToolsMod версия 2.6 


