- Setelah memakai alat pengukur tekanan darah Microlife WatchBP O3 di apotek, penulis menemukan port micro-USB pada perangkat dan mencoba melihat datanya secara langsung
- Perangkat lunak WatchBP Analyzer dijalankan di lingkungan Linux, tetapi gagal mengenali perangkat; setelah itu unduhan data berhasil melalui mesin virtual Windows
- Dengan Wireshark dan usbmon, komunikasi USB ditangkap, dan dari paket data teridentifikasi struktur byte yang memuat tekanan darah sistolik·diastolik serta denyut jantung
- Penulis juga melacak OPP (oscillometric peak pressure) dan stempel waktu, tetapi struktur data waktunya tidak berhasil diinterpretasikan dengan jelas
- Upaya rekayasa balik dihentikan karena tenggat, tetapi ini menjadi pengalaman baru dalam analisis struktur data serta konsep ‘white coat hypertension’
Alat pengukur tekanan darah dan percobaan awal
- Setelah mendapat vaksin flu di apotek, hasil pengukuran tekanan darah menunjukkan angka tinggi sehingga penulis memakai alat pemantau tekanan darah 24 jam
- Perangkat mengukur secara otomatis setiap 30 menit (siang) dan 60 menit (malam)
- Penulis menemukan port micro-USB di sisi perangkat dan mencoba mengakses datanya
- Model perangkat adalah Microlife WatchBP O3, lalu penulis mengunduh perangkat lunak WatchBP Analyzer untuk Windows
- Dicoba dijalankan di Linux menggunakan Bottles, tetapi perangkat tidak terdeteksi
- Perangkat muncul sebagai
hidraw, yang menunjukkan bahwa ia menggunakan antarmuka USB HID
- Setelah itu penulis memasang mesin virtual Windows (Gnome Boxes) dan menghubungkan perangkat USB, lalu unduhan data berhasil
- Di WatchBP Analyzer, penulis dapat melihat tiga hasil pengukuran pertama
Analisis lalu lintas USB
- Dengan memanfaatkan lingkungan mesin virtual, penulis menangkap komunikasi USB menggunakan Wireshark
- Aliran data antara perangkat dan host direkam melalui antarmuka
usbmon3
- Dari paket yang ditangkap, ditemukan urutan byte yang tampaknya berisi nilai tekanan darah
- Contoh:
05 0a 89 71 43 9b
- Byte ke-3 diperkirakan sebagai tekanan darah sistolik (SYS), byte ke-4 sebagai tekanan darah diastolik (DIA), dan byte ke-5 sebagai denyut jantung (HR)
- Dengan membandingkan beberapa hasil pengukuran, penulis merangkum pola data
- Contoh:
137/113/67, 132/86/68, 126/84/82 dan sebagainya
- Setiap paket terdiri dari unit 32 byte, dan byte pertama menunjukkan panjang data yang valid (SIGNIFICANT BITS)
Menelusuri struktur data tambahan
- Byte tambahan yang mencakup OPP (oscillometric peak pressure) dan stempel waktu juga dianalisis
- Data OPP ada pada paket setelah setiap pengukuran, tetapi posisinya tidak tetap
- Penulis mengasumsikan 4 byte setelah SYS, DIA, HR sebagai stempel waktu 32-bit, tetapi nilainya tidak cocok dengan waktu pengukuran yang sebenarnya
- Diamati bahwa nilai pada kolom ke-6 berubah dari
82 ke 83 saat pergantian AM/PM, sementara kolom ke-7 menunjukkan pola reset
- Beberapa nilai tampak mirip dengan satuan menit pada waktu pengukuran, tetapi tidak ditemukan aturan yang jelas
Eksperimen AI dan kode
- Penulis mencoba menganalisis data dengan memasukkannya ke beberapa model AI melalui platform Kagi
- Sebagian menghasilkan jawaban yang tidak valid, tetapi tetap membantu memberi arah analisis, misalnya tentang konsep endianness
- Penulis juga mencoba meniru handshake awal perangkat dan unduhan data menggunakan Python, tetapi kode dari AI sebagian besar tidak akurat
- Dalam proses ini, penulis jadi mengenal pustaka pyhidapi
Penutup dan pelajaran
- Karena ada jadwal untuk mengembalikan perangkat, pekerjaan rekayasa balik pun dihentikan
- Meski begitu, penulis memperoleh pengalaman praktik dalam analisis struktur data USB dan rekayasa balik
- Istilah baru yang dipelajari antara lain ‘Normotension’ (tekanan darah normal) dan ‘White Coat Hypertension’ (hipertensi jas putih)
- Tekanan darah dapat naik sementara jika diukur tepat setelah suntikan
- Kesimpulannya, mengukur tekanan darah segera setelah vaksinasi tidak disarankan
Belum ada komentar.