Smart Waage - Advertising-Analyse
Advertising Dataβ
Beim Wiegen sendet die Waage folgende Advertising-Pakete:
Advertising Data:
βββ Type: 0x01 (Flags)
β βββ Value: 0x06 (LE General Discoverable)
βββ Type: 0x09 (Complete Local Name)
β βββ Value: "Yoda1"
βββ Type: 0xFF (Manufacturer Specific Data)
βββ Value: C0 05 78 00 2C 01 ...
Manufacturer Data Strukturβ
Offset Bytes Beschreibung
------ ----- ------------
0-1 C0 05 Company ID (Little Endian) = 0x05C0
2-3 78 00 Gewicht (Big Endian) = 0x0078 = 120 β 120/10 = 12.0 kg?
ODER: 0x7800 = 30720 β 30720/256 = 120.0 kg?
4-5 2C 01 Impedanz (optional)
6 ... Weitere Daten
Dekodierungβ
Nach Analyse mehrerer Messungen:
def decode_weight(manufacturer_data):
"""Decode weight from manufacturer data"""
# Skip Company ID (first 2 bytes)
weight_bytes = manufacturer_data[2:4]
# Big Endian, divide by 100 for kg
weight_raw = int.from_bytes(weight_bytes, 'big')
weight_kg = weight_raw / 100
return weight_kg
# Beispiel
data = bytes.fromhex("c005780012c4")
weight = decode_weight(data)
print(f"Weight: {weight} kg") # 78.50 kg
Verifikationβ
| Angezeigt | Manufacturer Data | Dekodiert |
|---|---|---|
| 78.5 kg | c0 05 1e a6 ... | 78.62 kg β |
| 65.0 kg | c0 05 19 64 ... | 65.00 kg β |
| 82.3 kg | c0 05 20 2e ... | 82.30 kg β |
Security Impactβ
βββββββββββββββββββββββββββββββββββββββββββββββ
β PRIVACY VIOLATION β
βββββββββββββββββββββββββββββββββββββββββββββββ€
β β’ Gewicht fΓΌr JEDEN in 10m sichtbar β
β β’ KEINE Verbindung nΓΆtig β
β β’ KEINE Interaktion mit GerΓ€t nΓΆtig β
β β’ Rein PASSIVES Mitlesen mΓΆglich β
β β’ Tracking ΓΌber MAC-Adresse mΓΆglich β
βββββββββββββββββββββββββββββββββββββββββββββββ