1 Punkte von GN⁺ 2025-11-13 | 1 Kommentare | Auf WhatsApp teilen
  • Nach dem Anlegen des Microlife WatchBP O3-Blutdruckmessgeräts in der Apotheke wurde beim Versuch, die Daten direkt einzusehen, der micro-USB-Port des Geräts entdeckt
  • Die WatchBP Analyzer-Software wurde in einer Linux-Umgebung ausgeführt, erkannte das Gerät jedoch nicht; anschließend gelang der Daten-Download über eine Windows-virtuelle Maschine
  • Mit Wireshark und usbmon wurde die USB-Kommunikation aufgezeichnet, und in den Datenpaketen wurde eine Byte-Struktur identifiziert, die systolischen und diastolischen Blutdruck sowie die Herzfrequenz enthält
  • Zusätzlich wurden OPP (oszillatorischer Spitzendruck) und Zeitstempel verfolgt, doch die Struktur der Zeitdaten ließ sich nicht eindeutig interpretieren
  • Der Versuch des Reverse Engineerings wurde wegen einer Frist abgebrochen, lieferte aber neue Erfahrungen bei der Analyse von Datenstrukturen und mit dem Konzept der Weißkittelhypertonie

Das Blutdruckmessgerät und die ersten Versuche

  • Nach einer Grippeimpfung in der Apotheke war der gemessene Blutdruck erhöht, woraufhin ein 24-Stunden-Blutdruckmessgerät angelegt wurde
    • Das Gerät misst automatisch im Abstand von 30 Minuten (tagsüber) bzw. 60 Minuten (nachts)
    • An der Seite des Geräts wurde ein micro-USB-Port entdeckt, und es wurde versucht, auf die Daten zuzugreifen
  • Das Gerätemodell war Microlife WatchBP O3, und die zugehörige WatchBP Analyzer-Software für Windows wurde heruntergeladen
    • Der Start unter Linux mit Bottles gelang, aber das Gerät wurde nicht erkannt
    • Es erschien als hidraw-Gerät, was auf die Nutzung einer USB-HID-Schnittstelle hindeutete
  • Danach wurde eine Windows-virtuelle Maschine (Gnome Boxes) eingerichtet; nach dem Verbinden des USB-Geräts gelang der Daten-Download
    • Im WatchBP Analyzer konnten die ersten drei Messwerte eingesehen werden

Analyse des USB-Traffics

  • In der VM-Umgebung wurde die USB-Kommunikation mit Wireshark aufgezeichnet
    • Über die Schnittstelle usbmon3 wurde der Datenfluss zwischen Gerät und Host protokolliert
  • In den aufgezeichneten Paketen wurde eine Byte-Sequenz gefunden, die offenbar Blutdruckwerte enthält
    • Beispiel: 05 0a 89 71 43 9b
    • Das 3. Byte wurde als systolischer Blutdruck (SYS), das 4. als diastolischer Blutdruck (DIA) und das 5. als Herzfrequenz (HR) interpretiert
  • Durch den Vergleich mehrerer Messwerte wurden Datenmuster zusammengestellt
    • Beispiele: 137/113/67, 132/86/68, 126/84/82 usw.
    • Jedes Paket besteht aus 32 Byte; das erste Byte gibt die Länge der gültigen Daten (SIGNIFICANT BITS) an

Weitere Erkundung der Datenstruktur

  • Zusätzliche Bytes mit OPP (oszillatorischer Spitzendruck) und Zeitstempeln wurden analysiert
    • OPP-Daten sind in den Paketen nach jeder Messung vorhanden, ihre Position ist jedoch nicht konstant
    • Die 4 Bytes nach SYS, DIA und HR wurden als 32-Bit-Zeitstempel vermutet, stimmten aber nicht mit den tatsächlichen Messzeiten überein
  • Es wurde beobachtet, dass sich der Wert in der 6. Spalte beim Wechsel von Vormittag zu Nachmittag von 82 auf 83 änderte und die 7. Spalte zurückgesetzt wurde
    • Einige Werte zeigten eine Tendenz, den Minutenanteilen der Messzeit zu ähneln, eine klare Regel ließ sich jedoch nicht erkennen

KI- und Code-Experimente

  • Über die Plattform Kagi wurden Daten in mehrere KI-Modelle eingespeist, um sie analysieren zu lassen
    • Einige lieferten ungültige Ergebnisse, halfen aber bei der Richtung der Analyse, etwa beim Konzept der Endianness
  • Mit Python wurde versucht, den initialen Handshake des Geräts und den Daten-Download nachzubilden, doch der von der KI gelieferte Code war größtenteils ungenau
    • Dabei wurde auch die Bibliothek pyhidapi neu entdeckt

Fazit und Erkenntnisse

  • Wegen der anstehenden Rückgabe des Geräts musste die Reverse-Engineering-Arbeit abgebrochen werden
    • Der Prozess brachte praktische Erfahrung bei der Analyse von USB-Datenstrukturen und Reverse Engineering
  • Als neu gelernte Begriffe wurden „Normotension“ und „White Coat Hypertension“ (Weißkittelhypertonie) genannt
    • Direkt nach einer Injektion gemessener Blutdruck kann vorübergehend erhöht sein
  • Daraus folgt: Eine Blutdruckmessung direkt nach einer Impfung ist nicht empfehlenswert

1 Kommentare

 
GN⁺ 2025-11-13
Hacker-News-Kommentare
  • Wegen Bluthochdruck habe ich ein Gerät von Hilo gekauft.
    Nach der Kalibrierung mit einer Manschette am Oberarm trägt man ein kleines Gerät am Handgelenk, das tagsüber und nachts automatisch den Blutdruck misst, wenn man sich nicht bewegt.
    Die Daten werden mit einer Smartphone-App synchronisiert und gespeichert, wodurch man sich das ständige Anlegen der Manschette spart und Weißkittelhypertonie vermeiden kann.
    Allerdings muss etwa einmal im Monat mit der Manschette neu kalibriert werden, und die Funktion der App, mit der Kamera den Finger zu messen, liefert schwankende Ergebnisse.

    • Ich frage mich, wie genau das Ganze ist.
  • In einem AI-bezogenen Artikel gab es den Ausdruck „stupid in ways that made me think“, und das fasst wohl sehr gut zusammen, warum AI für Rubber-Duck-Debugging nützlich ist.
    Sie bringt mich dazu, tiefer nachzudenken als Gespräche mit Kolleg:innen.

  • Nachdem ich einen Herzfrequenzmonitor getragen und die Daten ausgewertet hatte, stellte ich fest, dass meine Herzfrequenz nur in zwei Fällen stark anstieg — beim Fahren und beim Gespräch mit meiner Frau.

    • Als Witz hieß es, für die Wissenschaft brauche man auch Daten vom Fahren während eines Gesprächs mit der Frau.
    • Manchmal erkennt Oura Training im Fitnessstudio als Stress, aber es gibt auch die Meinung, dass Sport den Körper tatsächlich stresst.
      Ein Schwimmer sagte, er benutze gar kein Gerät und höre nur auf seinen eigenen Puls.
    • Vielleicht liegt es einfach daran, dass ich sowohl Autos als auch meine Frau liebe.
  • Weißkittelhypertonie muss nicht unbedingt nur an Spritzen oder der Krankenhausumgebung liegen, sondern kann einfach durch die Anspannung der Messsituation entstehen.

    • Ein Freund ließ im Krankenhaus von einer hübschen Krankenschwester seinen Blutdruck messen, und der Wert war viel zu hoch; als der Arzt noch einmal maß, war er immer noch hoch.
      Am Ende bekam er ein Rezept für Medikamente.
    • Ich bin einmal ins Krankenhaus gerannt, weil ich zu spät zu kommen drohte, und mein Blutdruck war viel zu hoch; der Arzt empfahl mir, zu Hause in Ruhe noch einmal zu messen.
    • Meine Frau muss wegen einer Autoimmunerkrankung oft ins Krankenhaus, und einmal war das automatische Blutdruckmessgerät defekt und zog den Arm immer weiter zusammen, was ziemlich beängstigend war.
      Seitdem werde sogar ich nervös, wenn bei ihr der Blutdruck gemessen wird.
    • Ich habe große Angst vor dem Zahnarzt, daher würde mein Blutdruck dort mit einem Dauer-Monitor vermutlich sicher nach oben schießen.
    • Wegen der Einstellung meiner ADHS-Medikamente messe ich meinen Blutdruck täglich, und selbst unter denselben Bedingungen schwanken die Werte von 115/75 bis 135/90.
      Deshalb beachte ich nur den Durchschnitt. Sowohl mein A&D UA-611 Plus zu Hause als auch die Geräte im Krankenhaus zeigen ähnliche Schwankungen.
  • Beim Analysieren des Datenformats habe ich Jahr, Monat, Tag, Stunde und Minute bitweise geschätzt, aber ich verstehe noch nicht, warum eine Bit-Umkehrung (reverse) nötig ist oder was die leeren Bereiche bedeuten.

  • Der Witz „Wenn ich das reverse engineere, wird mein Blutdruck bestimmt besser“ war so nachvollziehbar, dass ich mich nach dem Lesen tatsächlich gesünder fühlte.

  • Nachdem ich zweimal täglich Orangensaft und Bananen konsumiert hatte, sank mein Blutdruck von 142/90 → 125/80.
    Dadurch nahm ich etwa 2000 mg Kalium pro Tag zu mir.

    • Ich frage mich, ob damit gemeint ist, dass zur Senkung des Blutdrucks neu mit Orangensaft und Bananen begonnen wurde oder dass damit aufgehört wurde.
  • Der Satz „stupid in ways that made me think“ scheint die Stärken und Grenzen von AI gleichzeitig gut zusammenzufassen.

    • AI ist eine brauchbare Rubber Duck und eine einigermaßen nützliche Suchmaschine.
  • Ich habe ebenfalls angefangen, meine Gesundheitsdaten selbst zu verwalten.
    Ich denke, dass es mehr ältere Entwickler geben wird, die Veränderungen ihres Körpers wahrnehmen und selbstbestimmtes Gesundheitsmanagement betreiben.
    Die zugehörigen Dokumente habe ich unter mikado-aktiia.readthedocs.io zusammengestellt.

    • Die neueste App-Version kann Tagesdurchschnittswerte nach Apple Health exportieren.
      Ich lese PDFs mit BPExtract aus und exportiere alle Messwerte automatisch nach Apple Health; im Vergleich zur manuellen Methode finde ich Automatisierung deutlich besser.
    • Es wurde vorgeschlagen, dass es vielleicht einfacher wäre, Bluetooth-Traffic direkt mitzuschneiden, statt PDFs auszulesen.
    • Heutzutage habe ich das Gefühl, dass man unabhängig vom Alter selbst auf seine Gesundheit achten muss.
      Hausärzte fungieren letztlich nur als Signalgeber für den Weg zum Facharzt, und die Wartezeiten sind viel zu lang.
      Man muss allerdings immer davon ausgehen, dass die eigene Einschätzung falsch sein kann.
    • Es wurde leicht darauf hingewiesen, dass eine Klammer fehlt.
  • Beim Traffic-Dump denkt man sofort daran, das Protokoll offline analysieren zu wollen.
    Erst kürzlich habe ich einen halben Tag damit verbracht, einen virtuellen Windows-Druckertreiber zu reverse engineeren, und musste mich zwingen aufzuhören, obwohl ich weitermachen wollte.

    • (Ein irrelevanter Kommentar auf Spanisch wurde ausgelassen.)