Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
binbloom — Программное обеспечение для анализа сырых бинарных прошивок | Kitploit
Инструменты/GitHubGitHub/quarkslab/binbloom
Безопасность встроенных системОбратная инженерияАнализ Бинарных ФайловАнализ Прошивок
GitHubquarkslab/binbloom

binbloom

Программное обеспечение для анализа сырых бинарных прошивок

Репозиторий
5836143 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Сайт

О проекте

Цель этого проекта — анализировать сырую двоичную прошивку и автоматически определять некоторые её характеристики. Этот инструмент совместим со всеми архитектурами, поскольку, по сути, он просто выполняет простые статистические операции.

Основные возможности:

  • Адрес загрузки: binbloom может анализировать сырую двоичную прошивку и определять её адрес загрузки.
  • Порядок байтов (endianness): binbloom может использовать эвристики для определения порядка байтов прошивки.
  • База данных UDS: binbloom может анализировать сырую двоичную прошивку и проверять, содержит ли она массив с идентификаторами команд UDS.

Загрузка / Установка

Сначала клонируйте git-репозиторий:

root@kitploit:~
git clone https://github.com/quarkslab/binbloom.git
cd binbloom

Для сборки последней версии (только Linux):

root@kitploit:~
autoreconf -i
./configure
make
sudo make install

Начало работы

Определение порядка байтов и базового адреса прошивки

root@kitploit:~
binbloom firmware.bin

Эта команда должна выдать вывод, похожий на этот:

root@kitploit:~
[i] 32-bit architecture selected.
[i] File read (20480 bytes)
[i] Endianness is LE                                
[i] 6 strings indexed                                    
[i] Found 3 base addresses to test                    
[i] Base address seems to be 0x60000000 (not sure)
 More base addresses to consider (just in case):
  0x005b5000 (0)
  0x0bcd0000 (0)

В этом выводе третья строка отображает предполагаемый порядок байтов (LE, little-endian), а шестая строка даёт предполагаемый адрес (0x60000000). Было идентифицировано 6 текстовых строк и 3 возможных базовых адреса. Если архитектура не указана, по умолчанию предполагается 32-битная архитектура.

Значение в скобках после каждого адреса-кандидата — это соответствующий балл. Чем выше балл, тем более вероятен адрес.

Определение порядка байтов и базового адреса 64-битной прошивки

root@kitploit:~
binbloom -a 64 firmware.bin
root@kitploit:~
[i] 64-bit architecture selected.
[i] File read (327680 bytes)
[i] Endianness is LE                                
[i] 717 strings indexed                                  
[i] Found 7535 base addresses to test                 
[i] Base address found: 0x0000000000010000.                          
 More base addresses to consider (just in case):
  0x000000000000e000 (276)
  0x000000000000f000 (242)
  0x0000000000011000 (175)
  0x000000000000d000 (167)
  0x000000000000b000 (121)
  0x0000000000013000 (107)
  0x0000000000012000 (100)
  [...]

Опция -a указывает binbloom рассматривать 64-битную прошивку; приведённый выше вывод показывает предполагаемый базовый адрес 0x10000.

Принудительное задание порядка байтов, если binbloom не определяет его верно

При работе с маленькими прошивками (размер < 10 Кбайт) определение порядка байтов binbloom может быть ненадёжным и давать ложные результаты, что приводит к неожиданным базовым адресам. В этом случае можно использовать опцию -e, чтобы указать порядок байтов:

root@kitploit:~
binbloom -e be firmware.bin

Затем он выдаёт следующий вывод:

root@kitploit:~
[i] Selected big-endian architecture.
[i] File read (1048576 bytes)
[i] Endianness is BE
[i] 764 strings indexed                                  
[i] Found 18615 base addresses to test                
[i] Base address seems to be 0x00000000 (not sure).
 More base addresses to consider (just in case):
  0x3f740000 (121043)
  0x7ff48000 (61345)
  0x41140000 (59552)
  [...]

Затем порядок байтов принудительно задаётся (в данном случае big-endian), и binbloom опирается на эту конфигурацию для угадывания базового адреса.

Поиск базы данных UDS (для прошивки ЭБУ)

root@kitploit:~
binbloom -a 32 -e be -b 0x0 firmware.bin
root@kitploit:~
[i] 32-bit architecture selected.
[i] Selected big-endian architecture.
[i] Base address 0x0000000000000000 provided.
[i] 764 strings indexed                                  
Most probable UDS DB is located at @000ee8c8, found 7 different UDS RID
Identified structure:
struct {
	code *p_field_0;
	code *p_field_1;
	uint32_t dw_2;
}

Этот анализ основан на эвристиках, поэтому он может давать ложные срабатывания. Вам нужно просмотреть список потенциальных баз данных UDS, найденных binbloom, и проверить, какая из них верна, если таковая имеется. Binbloom предоставляет идентифицированную структуру в своём выводе, что позволяет некоторым дизассемблерам анализировать память в соответствии с объявлением структуры.

Расширенные опции

Вы можете ускорить процесс поиска базового адреса, включив многопоточность с помощью опции -t. По умолчанию используется один поток.

root@kitploit:~
binbloom -t 8 firmware.bin

Также реализован режим глубокого поиска, включаемый опцией -d, но он всё ещё экспериментальный. Этот режим может быть полезен в очень редких случаях, так как он может найти действительный базовый адрес, когда другие методы не работают, но он медленнее и может занять некоторое время.

Если вы хотите, чтобы инструмент отображал больше информации, используйте одну или несколько опций -v.

О проекте

Авторы

  • Guillaume Heilles (@PapaZours)
  • Damien Cauquil (@virtualabs)

Лицензия

binbloom предоставляется под лицензией Apache 2.0.

Скачать инструмент