1 pontos por GN⁺ 2025-11-13 | 1 comentários | Compartilhar no WhatsApp
  • Depois de colocar o medidor de pressão arterial Microlife WatchBP O3 na farmácia, ao tentar verificar os dados diretamente, foi descoberta a porta micro-USB do aparelho
  • O software WatchBP Analyzer foi executado em ambiente Linux, mas o dispositivo não foi reconhecido; depois, o download dos dados foi concluído com sucesso por meio de uma máquina virtual Windows
  • Usando Wireshark e usbmon, a comunicação USB foi capturada, e foi identificada nos pacotes de dados uma estrutura de bytes contendo pressão sistólica, diastólica e frequência cardíaca
  • Também foram rastreados a OPP (pressão máxima oscilométrica) e os timestamps, mas a estrutura dos dados de tempo não pôde ser interpretada com clareza
  • A tentativa de engenharia reversa foi interrompida por causa do prazo, mas serviu para adquirir experiência na análise da estrutura dos dados e aprender o conceito de hipertensão do avental branco

O medidor de pressão e as tentativas iniciais

  • Depois de tomar a vacina da gripe na farmácia, o resultado da medição de pressão arterial saiu alto, então foi usado um dispositivo de monitoramento de pressão arterial por 24 horas
    • O aparelho mede automaticamente a cada 30 minutos (durante o dia) e 60 minutos (à noite)
    • Ao encontrar a porta micro-USB na lateral do dispositivo, foi feita uma tentativa de acessar os dados
  • O modelo do aparelho era o Microlife WatchBP O3, e foi baixado o software WatchBP Analyzer para Windows correspondente
    • A execução em ambiente Linux com Bottles falhou no reconhecimento do dispositivo
    • Ele aparecia como um dispositivo hidraw, confirmando o uso de uma interface USB HID
  • Depois, ao instalar uma máquina virtual Windows (Gnome Boxes) e conectar o dispositivo USB, o download dos dados foi concluído com sucesso
    • No WatchBP Analyzer, foi possível verificar as três primeiras medições

Análise do tráfego USB

  • Aproveitando o ambiente da máquina virtual, a comunicação USB foi capturada com o Wireshark
    • O fluxo de dados entre o dispositivo e o host foi registrado pela interface usbmon3
  • Nos pacotes capturados, foi encontrada uma sequência de bytes que parecia conter os valores de pressão arterial
    • Exemplo: 05 0a 89 71 43 9b
    • Supõe-se que o 3º byte seja a pressão sistólica (SYS), o 4º a pressão diastólica (DIA) e o 5º a frequência cardíaca (HR)
  • Comparando várias medições, foi organizado um padrão dos dados
    • Ex.: 137/113/67, 132/86/68, 126/84/82 etc.
    • Cada pacote é composto em unidades de 32 bytes, e o primeiro byte indica o comprimento dos dados válidos (SIGNIFICANT BITS)

Exploração adicional da estrutura dos dados

  • Foram analisados bytes adicionais incluindo a OPP (pressão máxima oscilométrica) e os timestamps
    • Os dados de OPP existem no pacote após cada medição, mas sua posição não é constante
    • Presumiu-se que os 4 bytes após SYS, DIA e HR fossem um timestamp de 32 bits, mas eles não correspondiam ao horário real das medições
  • Foi observado um padrão em que o valor da 6ª coluna mudava de 82 para 83 na transição de AM para PM, e a 7ª coluna era reinicializada
    • Alguns valores pareciam ter tendência semelhante aos minutos do horário da medição, mas nenhuma regra clara foi confirmada

Experimentos com IA e código

  • Os dados foram inseridos em vários modelos de IA por meio da plataforma Kagi para tentar analisá-los
    • Alguns apresentaram resultados inválidos, mas ajudaram na direção da análise com conceitos como endianness
  • Também houve tentativa de reproduzir com Python o handshake inicial do dispositivo e o download dos dados, mas o código fornecido pela IA estava em sua maior parte incorreto
    • Nesse processo, foi descoberta a biblioteca pyhidapi

Encerramento e lições aprendidas

  • O trabalho de engenharia reversa foi interrompido porque era preciso devolver o aparelho
    • Ainda assim, o processo trouxe experiência prática em análise de estrutura de dados USB e engenharia reversa
  • Entre os novos termos aprendidos, foram citados “Normotension” e “White Coat Hypertension”
    • A pressão arterial pode aparecer temporariamente mais alta quando medida logo após uma injeção
  • Em conclusão, não é recomendável medir a pressão arterial logo após a vacinação

1 comentários

 
GN⁺ 2025-11-13
Comentários do Hacker News
  • Tenho problemas de pressão alta e comprei um dispositivo da Hilo
    Depois de fazer a calibração com uma braçadeira no braço, você usa um pequeno aparelho no pulso, que mede a pressão automaticamente de dia e de noite quando você está parado
    Os dados são sincronizados e salvos no app do smartphone, evitando o incômodo de colocar a braçadeira toda vez e a hipertensão do avental branco (white coat hypertension)
    Mas é preciso recalibrar com a braçadeira mais ou menos uma vez por mês, e o recurso do app que mede o dedo pela câmera dá resultados inconsistentes

    • Fico curioso sobre o nível de precisão
  • Em um texto sobre IA havia a expressão “stupid in ways that made me think”, e isso parece resumir muito bem por que a IA é útil para rubber duck debugging
    Faz você pensar mais profundamente do que ao conversar com um colega

  • Usei um monitor de frequência cardíaca e analisei os dados, e descobri que só havia dois casos em que minha frequência disparava — quando eu dirigia e quando conversava com minha esposa

    • Brinca que, em nome da ciência, também faltam dados de quando dirige enquanto conversa com a esposa
    • Às vezes o Oura interpreta exercícios na academia como estresse, mas também há quem diga que exercício realmente impõe estresse ao corpo
      Um nadador diz que não usa dispositivo nenhum e apenas escuta os próprios batimentos
    • Diz de forma bem-humorada que talvez seja porque ama tanto o carro quanto a esposa
  • A hipertensão do avental branco não acontece necessariamente por causa de injeções ou do ambiente hospitalar, mas pode ser simplesmente pela tensão da situação de medição

    • Um amigo teve a pressão medida por uma enfermeira bonita no hospital, deu muito alta, e quando o médico mediu de novo ainda continuava alta
      No fim, acabou recebendo uma prescrição de remédio
    • Corri para não me atrasar para a consulta e, quando medi a pressão, deu altíssima, então o médico recomendou medir de novo em casa, em silêncio
    • Minha esposa vai muito ao hospital por causa de uma doença autoimune, e certa vez um medidor automático de pressão deu defeito e ficou apertando o braço sem parar, o que foi assustador
      Depois disso, toda vez que ela mede a pressão eu também fico tenso
    • Tenho tanto medo de dentista que, se usasse um monitor contínuo, minha pressão certamente dispararia durante a consulta
    • Eu meço a pressão todos os dias por causa do ajuste da medicação para TDAH, e mesmo nas mesmas condições os números variam de 115/75 a 135/90
      Por isso só levo em conta a média. Tanto o A&D UA-611 Plus de casa quanto os aparelhos do hospital mostram variações parecidas
  • Ao analisar o formato dos dados, estimaram em nível de bits o ano, mês, dia, hora e minuto, mas ainda não sabem por que é necessário fazer reverse nos bits nem o significado dos trechos vazios

  • A piada de que “se eu fizer a engenharia reversa disso minha pressão vai melhorar” foi tão identificável que, depois de ler, eu realmente me senti mais saudável

  • Depois de tomar suco de laranja e comer banana duas vezes por dia, minha pressão caiu de 142/90 → 125/80
    Isso dá cerca de 2000 mg de potássio por dia

    • Fica a dúvida se a pessoa começou a consumir suco de laranja e banana para baixar a pressão ou se parou de consumir
  • A frase “stupid in ways that made me think” parece resumir muito bem ao mesmo tempo as vantagens e as limitações da IA

    • A IA é um rubber duck razoável e um mecanismo de busca mais ou menos útil
  • Eu também comecei a tentar gerenciar meus próprios dados de saúde
    Acho que vai crescer essa tendência de desenvolvedores mais velhos perceberem problemas no próprio corpo e adotarem um cuidado de saúde mais autônomo
    Organizei a documentação relacionada em mikado-aktiia.readthedocs.io

    • A versão mais recente do app consegue exportar médias diárias para o Apple Health
      Eu uso o BPExtract para ler PDFs e exportar automaticamente todas as medições para o Apple Health, e acho a automação muito melhor do que fazer isso manualmente
    • Sugerem que talvez seja mais fácil sniffar diretamente o tráfego Bluetooth do que ler PDFs
    • Hoje em dia parece ser uma era em que todo mundo precisa cuidar da própria saúde, independentemente da idade
      No fim, o clínico geral só serve como sinalizador para encaminhar ao especialista, e o tempo de espera é longo demais
      Mas é preciso sempre partir do princípio de que seu próprio julgamento pode estar errado
    • Aponta de leve que faltou um parêntese
  • Ao ver o dump de tráfego, dá vontade de analisar o protocolo offline
    Recentemente também passei meio dia fazendo engenharia reversa (reverse engineering) de um driver de impressora virtual do Windows, e tive que me forçar a parar mesmo querendo continuar

    • (Comentário irrelevante em espanhol omitido)