Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
carminat-tomtom-live-re — Renaultに搭載されたNavCore 9.884(コードネーム beaumont)のリバースエンジニアリング | Kitploit
ツール/GitHubGitHub/andronedev/carminat-tomtom-live-re
組み込みシステムセキュリティ静的分析動的分析 (サンドボックス)リバースエンジニアリングハードウェアとIoTセキュリティバイナリ解析論文と研究ファームウェア解析
GitHubandronedev/carminat-tomtom-live-re

carminat-tomtom-live-re

Renaultに搭載されたNavCore 9.884(コードネーム beaumont)のリバースエンジニアリング

リポジトリを見る
116ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Carminat TomTom LIVE: リバースエンジニアリング

Renault搭載のNavCore 9.884のリバースエンジニアリング(コードネーム beaumont)
テスト済み:Renault Laguna 3 GT Monaco GP 2012(ちなみに、素晴らしい車です)

flowchart TD
    A[Carminat TomTom LIVE] --> B[Samsung S5P6440<br/>Linux 2.6.28 verrouillé]
    
    B --> C[NAND interne]
    B --> D[Carte SD externe]
    
    C --> E[Verrouillé]
    D --> F[Modifiable]
    
    E -.->|UART| G[shell root théorique ?]
    F -.->|fichiers SD| H[Personnalisations<br/>splash · menus · POI]
    
    style A fill:#5B4FBE,color:#fff
    style E fill:#A32D2D,color:#fff
    style F fill:#3B6D11,color:#fff
    style G fill:#EF9F27,color:#000
    style H fill:#1D9E75,color:#fff

目次

  1. 背景と目的
  2. システムの識別
  3. ハードウェア
  4. ファームウェアの抽出
  5. ファイルシステムのアーキテクチャ
  6. ブートチェーン
  7. プロセスとサービス
  8. ttnバイナリの解析
  9. GPRSモデムと接続性
  10. SDカードからの攻撃対象領域
  11. UART rootアクセス
  12. UARTを使わないカスタマイズ
  13. ツールとリソース
  14. 本プロジェクトにおけるAIの活用
  15. 法的免責事項

1. 背景と目的

Carminat TomTom LIVE は、2009~2014年モデル(Laguna 3、Mégane 3、Scénic 3、Espace 4、Fluence、Latitude、Koleos…)に搭載されたルノーの車載ナビゲーションシステムです。非Live版のCarminat TomTomとは以下の点で異なります:

  • ファームウェアが(SDカードではなく)内部NANDに保存されている
  • リアルタイムサービス(交通情報、天気、速度取締機)用の内蔵GPRSモデムを備えている
  • RSA署名されたロック済みブートローダーを採用している
  • コミュニティの報告によれば、カーネルモジュール signedloop がMerkle木によってrootfsの完全性を検証するとされる(本解析では未確認、§3参照)

本リポジトリは、NavCore 9.884 beaumontファームウェアの解析を文書化したもので、ファイルシステムのマッピング、NavCoreバイナリの静的解析、およびQEMU/straceによるランタイム解析を含みます。

使用した手法:

  • 車両から取り出したSDカードによるシステムの識別(ttgo.bif、loopdir/ext3_loopback ファイルの読み取り)
  • TomTom公式CDNからのファームウェア取得(ファームウェアの抽出セクション参照)
  • CABから抽出したrootfsの静的解析
  • QEMUエミュレータの構築による、ユニットのARM/Linux環境の再現。これにより ttn バイナリの動的解析(システムコールのstrace、開かれるファイルの観察、ランタイム挙動)が可能となった

車両の物理的なユニットには一切変更を加えていません。すべての解析は、SDカードのファイルのコピーおよびダウンロードしたファームウェアに対して実施しました。

ここに文書化された作業はすべて、個人所有のSDカード(解析のために車両から取り出したもの)と、TomTom CDNからダウンロードした公式ファームウェアに基づいて行われました。

📌 進化する文書: 本レポートは、この解析から得られた現時点の知見の状態を表しています。今後の発見、コミュニティからの貢献、実機での実証的検証に応じて、改善・修正・加筆される可能性があります。貢献、修正、フィードバックを歓迎します。


2. システムの識別

フィールド値
DeviceNameTomTom Carminat LIVE
ハードウェアコードネームbeaumont (rev 11)
NavCoreバージョン9.884、ビルド 9.884.1609031
公式リリースNFA2.8-RC06、2014年6月27日にDieppeでコンパイル
Linuxカーネル2.6.28.10-tt1574740
ツールチェーンgcc 4.3.3 TomTom CipherWizardry 2009q1_203-474426
LibcuClibc
InitシステムUpstart(シェルスクリプト /sbin/init → exec /sbin/upstart 経由)

これらの情報は、SDカードの loopdir/ext3_loopback イメージから抽出した ttgo.bif、および TomTom-Cfg/release.nfo ファイルに由来します。

# Extrait ttgo.bif
[TomTomGo]
DeviceName=TomTom Carminat LIVE
DeviceVersionHW=beaumont
ApplicationVersionVersionNumber=9884
ApplicationVersion=1609031.550
RamDiskVersion=20140626
BootLoaderVersion=839378
LinuxVersion=1574740

3. ハードウェア

コンポーネント識別情報
SoCSamsung S5P6440 (/etc/udev/rules.d/20_local-s5p6440.rules により確認済み)
CPUARM1176JZF-S · ARMv6 · リトルエンディアン · EABI
RAM静的解析では特定できず
内部ストレージNAND フラッシュ · eMMC (/dev/mmcblk0)
ユーザー SD カード/dev/mmcblk1 (アクセス可能なスロット)
画面Samsung LCD LTA058B3L0F (DTB による) · 480×272
フレームバッファ/dev/fb0 · RGB16/24
GPSSiRF3 PRIMA · /dev/ttySAC2
GSM/GPRS モデムWavecom WISMO218 · /dev/ttyS0
RDS-TMC チューナーBCM4750 · bcm4750_spi
Bluetooth内蔵 · hci_uart · HFP + PBAP のみ (A2DP 非対応)
タッチスクリーンlibts · /dev/input/event0

読み込まれたカーネルモジュール (/etc/modules からの抜粋)

unionfs · ppp_async · ppp_generic · slhc · hidp · hid · rfcomm
sco · hci_uart · l2cap · bluetooth · bcm4750_spi · vfat · msdos
fat · evdev

⚠️ モジュール signedloop は、コミュニティ(gpspower.net)によって、rootfs.img の整合性を検証していると報告されている。抽出された rootfs では確認されていない(/etc/modules にも /lib/modules/2.6.28.10-tt1574740/ にも存在しない)。要確認。


4. ファームウェアの抽出

4.1 公式 CAB のダウンロード

ファームウェアは TomTom の Akamai CDN から認証なしでダウンロード可能である:

curl -A "TomTom HOME/2.24.11.8" -O \
  "http://download.tomtom.com/sweet/navcore/9.884.1609031_RC06.CAB-Dieppe.cab"

# SHA256 de référence
a4d32daae2cdd6bc23a0660285c4e32e3a098034731eb257172ed7aaef9052d5

利用可能な他のバージョン(HTTP 200 で確認済み):

バージョンURL
9.844http://download.tomtom.com/sweet/navcore/9844.634510.Carminat_TomTom.cab
9.845 RC10http://download.tomtom.com/sweet/navcore/9.845_1115399_RC10.CAB-Camiron-RC10.cab
9.846 RC12http://download.tomtom.com/sweet/navcore/9.846_1165624_RC12.CAB-Camiron-RC12.cab
9.847 RC14http://download.tomtom.com/sweet/navcore/9.847.1302316_RC14.CAB-Camiron-RC14.cab
9.884 RC06http://download.tomtom.com/sweet/navcore/9.884.1609031_RC06.CAB-Dieppe.cab

4.2 CAB の抽出

brew install cabextract  # macOS
mkdir extracted && cabextract 9.884.1609031_RC06.CAB-Dieppe.cab -d extracted/
ls extracted/
# → splashw.bmp  ttsystem  TomTom-Cfg/release.nfo

ttsystem は ext2 イメージ(TTBL ではない)であり、非 Live 版とは異なります。

4.3 完全な rootfs の抽出

cd extracted/
mkdir rootfs && 7z x ttsystem -o rootfs/

# Le rootfs réel est dans userfs_partition.tar.gz
cd rootfs/
tar xzf userfs_partition.tar.gz

# Contenu :
# _zImage       → Linux kernel ARM zImage
# rootfs.img    → filesystem Linux complet (ext2, 67 MB)
# WISMO218_*.cla → firmwares modem

mkdir rootfs_mnt
# Sur Linux :
sudo mount -o loop rootfs.img rootfs_mnt/
# Sur macOS (lecture seule) :
7z x rootfs.img -o rootfs_mnt/

4.4 抽出されたファームウェアの構造

rootfs_mnt/
├── bin/
│   ├── ttn          ← NavCore principal (11.7 MB, ELF ARM dynamique)
│   ├── telttn       ← wrapper IPC vers ttn
│   ├── fakettn      ← fallback si ttn absent
│   └── gprscomd     ← daemon GPRS
├── etc/
│   ├── inittab
│   ├── fstab
│   ├── passwd       ← root:Twu6z6F/voF0Q (DES crypt)
│   ├── init/jobs.d/ ← 20+ jobs Upstart
│   └── udev/
├── lib/
│   ├── libosal.so.0 ← TomTom OS Abstraction Layer
│   ├── libhal.so.0  ← Hardware Abstraction (pilote fb0)
│   ├── libttmp.so.0 ← TomTom Multimedia
│   └── LoquendoTTS/ ← moteur TTS Loquendo
├── sbin/
│   ├── init         ← script shell → exec /sbin/upstart
│   ├── mount_sd_loopback
│   ├── mount_sd
│   ├── run_gprscomd
│   └── ttsystem_present
└── (sur partition userfs au runtime)
    └── /mnt/sdcard/script/
        ├── TTTaskList.lua  ← liste complète des TASK_* (300+)
        └── liblua.so       ← VM Lua chargée par ttn via dlopen

5. ファイルシステムのアーキテクチャ

5.1 eMMC パーティションテーブル (mmcblk0)

パーティションマウントポイントタイプオプション
mmcblk0p3/mnt/flashext3defaults,sync,noauto
mmcblk0p5/contentext3defaults,sync,noauto
(fstab 外)/mnt/sdcardext3正確なメカニズムは未検証

/mnt/sdcard は内部 NAND であり、外部 SD ではありません。これは TomTom の命名規則の名残で、"sdcard" が組み込みストレージを指していました。正確なマウントメカニズム(おそらくシェル /sbin/init より前段のブートローダー/initramfs によるもの)は本分析では検証されていません。これは /content に対する mount_internal の remount,rw が事前のマウントを前提としていることから示唆されるものです。

5.2 外部 SD カード (mmcblk1)

SD は unionfs を介して /mnt/movi にマウントされ、設定は以下のとおりです:

# Script /sbin/mount_sd_loopback (simplifié)
sd_mount="/media/sdcard"        # FAT32, RO
loop_mount="/media/loopback"    # ext3_loopback, RW upper
union_mount="/mnt/movi"         # unionfs des deux

mount -t vfat /dev/mmcblk1p1 $sd_mount \
  -o rw,noatime,nodiratime,nosuid,nodev,noexec,sync

mount -o loop $sd_mount/loopdir/ext3_loopback $loop_mount \
  -o rw,noexec,data=journal,commit=3600,async
ツールをダウンロード