Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
binbloom — 원시 바이너리 펌웨어 분석 소프트웨어 | Kitploit
도구/GitHubGitHub/quarkslab/binbloom
Embedded Systems SecurityReverse EngineeringBinary AnalysisFirmware Analysis
GitHubquarkslab/binbloom

binbloom

원시 바이너리 펌웨어 분석 소프트웨어

저장소 보기웹사이트
5836143년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

소개

이 프로젝트의 목적은 원시 바이너리 펌웨어를 분석하여 일부 특징을 자동으로 결정하는 것입니다. 이 도구는 기본적으로 단순한 통계를 수행하므로 모든 아키텍처와 호환됩니다.

주요 기능:

  • 로딩 주소(Loading address): binbloom은 원시 바이너리 펌웨어를 구문 분석하여 로딩 주소를 결정할 수 있습니다.
  • 엔디언(Endianness): binbloom은 휴리스틱을 사용하여 펌웨어의 엔디언을 결정할 수 있습니다.
  • UDS 데이터베이스: binbloom은 원시 바이너리 펌웨어를 구문 분석하여 UDS 명령 ID가 포함된 배열이 있는지 확인할 수 있습니다.

다운로드 / 설치

먼저, git 저장소를 클론합니다:

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

최신 버전(리눅스 전용)을 빌드하려면:

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, 리틀 엔디언)을 표시하고, 여섯 번째 줄은 추정된 주소(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이 올바르게 찾지 못할 경우 엔디언 강제 지정

작은 펌웨어(크기 < 10KB)를 다룰 때 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)
  [...]

그러면 엔디언이 강제로 지정되고(이 경우 빅 엔디언) binbloom은 이 설정을 기반으로 기본 주소를 추정합니다.

UDS 데이터베이스 찾기 (ECU 펌웨어의 경우)

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;
}

이 분석은 휴리스틱에 기반하므로 위양성(false positive)이 발생할 수 있습니다. binbloom이 찾은 잠재적 UDS 데이터베이스 목록을 읽고, 정확한 것이 있는지 확인해야 합니다. binbloom은 출력에서 식별된 구조를 제공하여, 일부 디스어셈블러가 구조체 선언 다음의 메모리를 구문 분석할 수 있게 합니다.

고급 옵션

-t 옵션으로 멀티스레딩을 활성화하여 기본 주소 검색 과정을 가속화할 수 있습니다. 기본적으로 단일 스레드가 사용됩니다.

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

-d 옵션으로 활성화되는 깊은 검색 모드도 구현되어 있지만 아직 실험적입니다. 이 모드는 다른 방법이 작동하지 않을 때 유효한 기본 주소를 찾을 수 있지만, 느린 모드이므로 완료하는 데 시간이 걸릴 수 있는 매우 드문 경우에 유용할 수 있습니다.

도구가 더 많은 정보를 표시하도록 하려면 -v 옵션을 한 번 이상 사용하십시오.

정보

저자

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

라이선스

binbloom은 Apache 2.0 라이선스에 따라 제공됩니다.

도구 다운로드