Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Analyzing IQOS BLE communication and capturing ...
Search
V V V
May 05, 2026
Technology
100
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Analyzing IQOS BLE communication and capturing BLE traffic on macOS | 129th Yurui Security Conference
V V V
May 05, 2026
Other Decks in Technology
See All in Technology
オントロジーって 結局なにもの? AI エージェントに「意味」を渡す知識設計の話
greenmidori
0
130
Snapshot Testing in Practice: Predictable and Reliable SwiftUI Views
fespinoza
0
220
Optunaの最新リリースv5.0について
pfn
PRO
0
110
サブエージェントと Claude Mods で作る独自 Advisor ツールの話
kenichiodo
2
160
Rust で関数型ドメインモデリング
takonda
0
130
Code for Security プロジェクト紹介 2026年10月
yu23ki14
0
100
Active Record Connection Adaptersにおける長年の課題に再び取り組む
yahonda
0
130
WasmをRustにする
sansantech
PRO
0
250
M5Stackで作る BLEマウス GPSログの世界
tomokusaba
0
400
QA4AI 2026-Oct 生成AI時代の品質保証
tokuty
1
840
会社説明資料
persolserverworks
0
9.8k
Webの常識が通じないHTMLメールのダークモード
teamlab
PRO
0
120
Featured
See All Featured
Are puppies a ranking factor?
jonoalderson
2
4k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
360
So, you think you're a good person
axbom
PRO
2
2.2k
Rails Girls Zürich Keynote
gr2m
96
14k
Navigating Team Friction
lara
192
16k
Code Review Best Practice
trishagee
74
20k
A Tale of Four Properties
chriscoyier
163
24k
Become a Pro
speakerdeck
PRO
31
6.3k
The Curse of the Amulet
leimatthew05
3
15k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.9k
Transcript
電子タバコ IQOSのReverse Engineering および macOSにおけるBLE Packetの解析手法 2026/03/27 Hikaru (@nonnil)
[email protected]
IQOS CLI
Agenda • Profile ◦ Daily Driver • IQOSの主な機能 ◦ IQOSアプリの問題点
• • 2
Profile Hikaru • Age ◦ 2002/06/07 23歳 • 所属 ◦
慶應義塾大学環境情報学部 ◦ 早應AI株式会社 シニアエンジニア • Handle ◦ nil, nonnil, John Paul, 0day.is, VVX Supp, B0b Supp, 炒炒, mel0n • すき ◦ お酒、たばこ、ポーカー、コンピュータ、セキュリティ 3 @nonnil @nilpotent_ @unittype
Daily Driver • Linux Distribution ◦ Fedora Workstation • Browser
◦ Orion Browser, Helium • Text Editor ◦ VSCode, Helix • Lang ◦ Rust, Go, Nim • Terminal ◦ Ghostty • keyboard ◦ HHKB Studio • Keyboard layout ◦ UK • VPN ◦ Mullvad 4
IQOSの主な機能 • IQOS公式Webアプリで各種設定のカスタマイズが可能 ◦ Webアプリと IQOSはBluetoothもしくは USB経由で接続 5
IQOSアプリの問題 • Sessionのlifetimeが短い ◦ そのため頻繁に Signinをする必要がある • IQOSアカウントが必要 ◦ アカウント作成にあたって身分証明書による年齢確認を問われるが、
オンラインだと認証プロセスが不安定でアカウントを作成できない事例が 多数観測される ↑ぼくはアカウント作成のために IQOS Shop横浜店まで行った • 接続時のloadが長い ◦ 設定をカスタムするまでに時間がかかりすぎる • 当然Internet接続がないと使えない 6
IQOSを便利にして 喫煙体験を最大化したいな〜 7 Bluetoothはどのように通信しているのだろう?
BLE(Bluetooth Low Energy) Packet 解析の準備 (macOS篇) 事前準備 • Mac •
Xcode 1. Apple Developerのダウンロードページから Additional Tools for Xcodeをダウンロードして Install時にPacket Loggerを選択 2. Apple DeveloperのProfiles and Logsから該当するデバイスの Profileをダウンロード 3. System Settings.appの”VPNとデバイス管理 ”でProfileをInstall 4. Packet Loggerを起動 8 簡単だね
BLEの通信方法 9 Central(Client) Peripheral(Server) ここにおるよー Advertise どこにいる? Scan Connect •
接続を開始する側 • データ要求(Read, Write, Subscribe)を送る • 接続を待ち受ける側 • データ(Service / Characteristic)を提供する
BLEのデータ 10 Service • 機能単位のグループ • 複数のCharacteristicをまとめる Characteristic • 実際のデータを持つ最小単位
• Value + Propertiesなどで構成される Connect/PairingしたあとにCentralはこれらを PeripheralからDiscoverする ServiceとCharacteristicはUUIDで識別される
BLEにおけるデータアクセス 11 CharacteristicにRequestを送ることで実現 Requestの種類 • Read(値の取得) • Write(値の更新、応答あり) ◦ Write
Without Response(応答なし) • Notify(非同期通知、ACKなし) • Indicate(非同期通知、ACKあり)
Bluetooth Protocol Stack GAP(Generic Access Profile) • Advertise / Scan
/ Connectのrole管理 GATT(Generic Attribute Profile) • Service / Characteristicベースのデータモデル定義 • ATTを包含する ATT(Attribute Protocol) • GATTの通信手法 (Read/Write/Notify) • GATTに包含される 12
IQOSのデータを見ていくぞ〜 13
Characteristicの設計パターン 14 TX/RX Characteristic • 1つまたは少数の Characteristicにコマンドや データを多重化 • vendor-specific実装でよく見
られる Discrete Characteristic • 1 Characteristic = 1機能 • Bluetooth SIG標準Profileでよく見られる
IQOS: TX/RX Characteristic 15
LIXIL Ohea Lock(おへやろっく ): Discrete Characteristic 16
IQOSへどのように書き込みを行うか 17 Offset 0 1 2 3 4 5 6
7 8 Hex 0x00 0xC0 0x46 0x23 0x64 0x00 0x00 0x00 0x4F Padding Padding Padding Checksum フレーム 開始固定値 Target Sub Cmd ID 輝度値 Cmd ID C0: Stick C9: Holder 64: 100% 1E: 30% Char ID: e16c6e20-b041-11e4-a4c3-0002a5d5c51b
IQOS CLI 18 • IQOSアプリの機能をほとんどSupport • PacketのOverheadがないため高速 • Telemetry dataを閲覧可能
• Find My IQOSが有効
スターください! 19 • Firmware updateに対応させたい • USB接続のSupport ◦ IQOSからBluetooth廃止の予兆を感じてる •
IQOSのFirmwareをReverse Engineeringしたい IQOS CLI https://github.com/V-VX/iqos_cli
20