【笔记/逆向】开始自己维护已经倒闭的“医管家“设备

自己维护医管家的桌面软件

自从看过《气的乐章》,也就开始了脉诊的兴趣研究。也看过各种脉诊的现代分类,还有脉搏波等价电路的仿真模拟。想要研究脉诊本身,还是得有设备。现在的电子科技这么发达,传感器手到擎来。十几年前缠着爸爸妈妈买的玩具就是这个医管家设备了;它可以测量脉搏波、血压、穴道电阻、心电图等数据。简简单单的小盒子,当时玩得不亦乐乎。

当时还要注册码才能运行医管家的程序;因为呆过看雪学院这样的到处大神的论坛,耳濡目染,多少有点逆向能力;第一次通过发票要过注册码以后,琢磨了OllyDBG调试个15min,程序没有加壳,注册码明文比较,注册机dump一下内存代码片就出来了,自此就和医管家平台失去了联系。没想到多年以后,再次访问医管家的官方网站,已人去楼空;物非人是,多少还是有些失落的。今年又是疫情,诸多感慨。

医管家官方已经没有了,今后设备的维护还得靠自己。医管家有个问题,就是配备的程序是windows的;我现在离windows是越来越远了;所以在想,能不能全平台通用呢?随手看了看医管家的driver,发现竟然是silicon labs的,这不是usb转串口常用组件嘛。想着多少年前在学校里搞机器人的时候,厂家的机器人控制ui实在是难以使用,直接干掉用VB重写了一波;那时候是有厂家给的串口指令。没有现成的document,秉着所有client软件皆开源的原则,打开IDA开始看医管家程序的代码。

首先,看代码需要了解在windows上如何操作串口。百度谷歌一下,微软msdn上到处都是文档。不管它是不是有library wrap,总有些API逃不掉。比如操作串口需要SetupComm。在IDA里搜索这个函数的调用,就离COM的各种操作不远了。查了一些资料,除了SetupComm,我们知道COM是通过文件操作的,所以要用到CreateFile、ReadFile和WriteFile;而打开串口需要传递类似于 COM1, COM2 这样的字符,搜索COM找到了 COM%d 这个字符串,好了这附近一定有sprintf把一个数字拼接进去了。同样的,拼接完COM的名字,一定会开始CreateFile了。找到CreateFile再找SetupComm,这个很关键,要和串口设备通信,baud rate很重要。

拿到了基本参数,打开visual studio,创建一个C#项目,抄一抄网上C#打开COM的代码,一切准备就绪。下面就是怎么控制这个设备呢,发送什么指令?发送指令当然是WriteFile啦,搜索,得到的WriteFile也就十几个;一个一个看过去,有得是把数据存成png图片,有的是生成raw数据存在硬盘上的,剩下的基本都是COM的写了,它的参数里传了个buffer指针,指针在附近的地方存了一下fixed的数据 0xC00C 0xC003 0xC005 0xC009 0xC004 … 稍微试验了一下,医管家的设备有4个不同的传感器插口,其中有一个插口有两个用途,大概应该有5种指令,对比一下刚才搜索到的WriteFile,差不多也是5种。于是试着发送0C给设备,设备开始响应脉搏波的收集,数据刷地就来了,画成图像,验证正确。再发送00,设备停止返回数据。发送其他指令,就跳到其他传感器上了。

为了让所有平台都可以用,如果没有安装silicon lab的driver怎么办呢?以前在想怎么做一个设备能和android通信,那时候刚好看过一个lib可以手动实现driver:Cp21xxSerialDriver.java 照猫画虎,各种版本就都能写了,只要识别了usb设备,然后按照规矩发usb指令给设备就可以啦。

至此,抛开了医管家的软件体系,拿着数据可以做很多事情啦。没准哪天兴趣来了,就拆了设备,改进下工艺,弄个更便携一些的设备。最近,也关注了一下刚融资了天使轮的脉之语公司。看来前赴后继,一直都有人在给社会服务着。那么,有了这些数据,我也得继续好好研究下脉诊了。

J.Y.Liu
2020.09.22

自己开发医管家的手机端

我用Mac,医管家配套软件是个windows程序,这测个数据还得开个虚拟机多麻烦。于是先在windows上用C#写了一套医管家可以收集脉搏波和测电阻的配套程序,发现没什么问题;那接下去就把这些移植到Android上去吧,反正driver上一个章节都已经提到了。简单的开发,OTG线一连接,数据都显示在手机上啦。

https://github.com/dna2ee/YiGuanJia

在这里插入图片描述

自己摸索制作脉搏波测量仪

但是转眼一想,医管家已经人去楼空了,要是仪器坏了,我后面还拿什么测数据?买现有的手环,然后交智商税拿到SDK?除了脉搏波,测肌肤电阻怎么办,换成万用表读读数么……于是要想着自给自足,去网上查了一圈,光电式传感器1分钱1个,组装起来也不贵:
在这里插入图片描述而且市面上有现成的pulse sensor可以用,省了不少事情。先Raspberry搭起来demo吧~
TODO: (补齐开发过程)

J.Y.Liu
2021.04.23

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值