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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
sony-vp-extract — Sony WH-1000XM4 암호화 음성 팩에서 음성 안내 MP3 프롬프트를 복호화 및 추출합니다. AES 키는 Airoha MT2811 SoC의 블루투스 펌웨어 덤프를 통해 추출되었습니다. | Kitploit
도구/GitHubGitHub/helgesverre/sony-vp-extract
Embedded Systems SecurityBluetooth SecurityEncryption/Decryption ToolsReverse EngineeringWireless SecurityCryptographyHardware SecurityFirmware Analysis
GitHubhelgesverre/sony-vp-extract

sony-vp-extract

Sony WH-1000XM4 암호화 음성 팩에서 음성 안내 MP3 프롬프트를 복호화 및 추출합니다. AES 키는 Airoha MT2811 SoC의 블루투스 펌웨어 덤프를 통해 추출되었습니다.

저장소 보기
2521개월 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Sony WH-1000XM4 음성 팩 추출기

Sony WH-1000XM4 Voice Pack Extractor RACE Protocol Amp License: MIT

Sony WH-1000XM4 암호화된 펌웨어 파일에서 음성 안내 MP3 프롬프트를 복호화하고 추출합니다.

AES-128-CBC 키는 RACE 프로토콜을 사용하여 Bluetooth Low Energy를 통해 헤드폰의 Airoha MT2811 펌웨어를 덤프한 후 ARM Cortex-M4 FOTA 복호화 루틴을 디스어셈블하여 추출되었습니다. 전체 기술 문서: docs/WRITEUP.md

빠른 시작

root@kitploit:~
# Install Bun (if not already installed)
curl -fsSL https://bun.sh/install | bash

git clone https://github.com/HelgeSverre/sony-vp-extract.git
cd sony-vp-extract
bun install

# Downloads from Sony CDN automatically, then extracts
bun run cli/extract.ts --all

사용법

root@kitploit:~
# Extract all — auto-downloads from Sony CDN if voice-packs/ is empty
bun run cli/extract.ts --all [input-dir] [output-dir]

# Extract a single voice pack
bun run cli/extract.ts voice-packs/VP_english_UPG_03.bin extracted/

# Show voice pack info
bun run cli/extract.ts --info voice-packs/VP_english_UPG_03.bin

# Download only (no extraction)
bun run cli/extract.ts --download [output-dir]

Python 대안

root@kitploit:~
uv run extract_all.py

Sony CDN에서 다운로드 + 복호화 + 추출을 한 번에 수행합니다. 종속성은 인라인으로 선언되며 (PEP 723), uv run이 자동으로 처리합니다.

사용 가능한 언어

음성 팩 형식

root@kitploit:~
┌───────────────────────────────────────┐
│  Header (4096 bytes)                  │
│  ├── 0x000  Random nonce (32 bytes)   │
│  └── 0x100  TLV metadata             │
│       ├── compression_type = 2        │
│       ├── body_size                   │
│       ├── decompressed_size (1 MB)    │
│       └── SHA-256 of decompressed     │
├───────────────────────────────────────┤
│  Body (offset 0x1000+)               │
│  AES-128-CBC encrypted               │
│  └── LZMA1 compressed                │
│       └── Voice guidance image (1MB)  │
│            ├── Header (version+count) │
│            ├── Entry table (54 × 8B)  │
│            │   (size, abs_offset)     │
│            └── MP3 files (48kHz mono) │
└───────────────────────────────────────┘

키

root@kitploit:~
AES-128-CBC Key: eibohjeCh6uegahf
AES-128-CBC IV:  miefeinuShu9eilo

MT2811 CM4 펌웨어의 .rodata 섹션에서 플래시 오프셋 0xD53A(키)와 0xD529(IV)에 ASCII 문자열로 하드코딩되어 있습니다. 동일한 키가 모든 WH-1000XM4 기기와 모든 언어 팩에서 사용됩니다.

발견 방법

  1. 연결: Bluetooth를 통해 WH-1000XM4에 연결 (헤드폰은 전화기와 페어링되어 있음)
  2. 발견: RACE (Airoha Command Extensions) BLE GATT 서비스 발견
  3. 덤프: RACE_STORAGE_PAGE_READ (cmd 0x0403)를 사용하여 CM4 펌웨어 59KB를 플래시에서 덤프
  4. 위치 확인: 펌웨어 오프셋 0x81F4에서 AES S-box 발견
  5. 베이스 주소 확인: ARM 벡터 테이블 리터럴 풀에서 런타임 베이스 주소 0x04200000 확인
  6. 디스어셈블: FOTA 복호화 함수를 디스어셈블하고 리터럴 풀에서 키 로딩 경로 추적

전체 기술 세부 정보: docs/WRITEUP.md

사전 요구 사항

  • Bun ≥ 1.0 — TypeScript CLI용
  • uv — Python 스크립트용 (인라인 메타데이터를 통해 종속성이 자동으로 해결됨)

직접 키 추출하기

키를 직접 확인하려면 자신의 페어링된 WH-1000XM4 헤드폰에서 펌웨어를 덤프하고 그로부터 키를 추출할 수 있습니다.

root@kitploit:~
# Dump firmware over BLE and extract key
uv run cli/extract_key.py

# Or if you already have a firmware dump:
uv run cli/extract_key.py --firmware your_dump.bin

# Bun alternative (firmware dump required):
bun run cli/extract.ts --extract-key your_dump.bin

이 도구는 펌웨어 바이너리에서 AES S-box를 검색하고, 인접한 널 종료 16바이트 ASCII 문자열을 찾은 다음, 각 후보 쌍에 대해 음성 팩 복호화를 시도하고 유효한 LZMA 헤더를 확인하여 검증합니다.

프로젝트 구조

root@kitploit:~
├── cli/
│   ├── extract.ts          # Bun CLI tool (extract + key finder)
│   └── extract_key.py      # Python BLE firmware dumper + key finder
├── docs/
│   └── WRITEUP.md          # Full technical writeup
├── voice-packs/            # Downloaded .bin files (gitignored)
├── extracted/              # Extracted MP3 prompts (gitignored)
├── extract_all.py          # Python alternative extractor
├── package.json
└── README.md

고지 사항

이 프로젝트는 개인 소유 하드웨어에 대해 교육 목적으로 수행된 보안 연구를 문서화합니다. 분석된 헤드폰은 정상적으로 페어링 및 연결되었으며 — 무단 액세스는 포함되지 않았습니다.

음성 팩 .bin 파일 및 추출된 MP3 프롬프트는 Sony Corporation의 저작권이 있으며 이 저장소에 포함되지 않습니다. CLI 도구는 런타임에 Sony의 공개 CDN에서 직접 다운로드합니다. 복호화된 음성 팩이나 추출된 MP3 파일을 재배포하지 마십시오. 이 도구는 연구 및 상호 운용성 목적으로만 제공됩니다.

라이선스

MIT

도구 다운로드
언어파일프롬프트 수CDN
🇬🇧 영어VP_english_UPG_03.bin54다운로드
🇫🇷 프랑스어VP_french_UPG_03.bin54다운로드
🇩🇪 독일어VP_german_UPG_03.bin54다운로드
🇪🇸 스페인어VP_spanish_UPG_03.bin54다운로드
🇮🇹 이탈리아어VP_italian_UPG_03.bin54다운로드
🇵🇹 포르투갈어VP_portuguese_UPG_03.bin54다운로드
🇳🇱 네덜란드어VP_dutch_UPG_03.bin54다운로드
🇸🇪 스웨덴어VP_swedish_UPG_03.bin54다운로드
🇫🇮 핀란드어VP_finnish_UPG_03.bin54다운로드
🇹🇷 터키어VP_turkish_UPG_03.bin54다운로드