这可能是也可能不是一个灰色地带的主题,尽管我的意图肯定不是,所以我的意图不是激起关于逆向工程主题的道德辩论。
我是一名 1 型糖尿病患者,目前正在接受泵治疗。我是OmniPod用户,它是一种一次性豆荚,可以贴在我的身体上并分配 3 天的胰岛素。它由个人糖尿病经理 [PDM](见下文)控制,该经理控制在用餐期间分配多少胰岛素、血糖读数,并且它包含一个食物指数,用于在旅途中计算碳水化合物。
(来源:myomnipod.com)
新的 PDM 有一个用于下载数据的 USB 端口。该软件对 Windows 用户免费(名为 CoPilot 的软件包),但不支持 Mac。
将 PDM 插入我的 Mac 后,它像任何其他 USB 设备一样安装,并为我提供了一个可读的卷,上面有一个带有 IBF 扩展名的文件。它的重量为 16KB。
我的第一个直觉是通过文本编辑器传递它,并得到一个看起来非常二进制的文件。然后我通过字符串传递它(见下文)并用十六进制编辑器打开它。尽管除了下面的字符串之外我无法获得太多信息;没有压缩格式细节或任何东西。
$ strings omnipoddata.ibf
Insulet
OmniPod
basal 1
Post-meal
e-meal
Pre-meal
e-bedtime
Pre-bedtime
.(@P
.(@P
.(@P
我在这个过程中的下一步应该是什么?我是一个动态语言专家,所以任何 Ruby 或 Python 的资源都会很棒。是否有任何测试驱动的逆向工程流程?
就我希望获得的数据而言,我想将这些信息绘制成图表以获得有关我的进度的更多信息(胰岛素摄入量、血糖读数、时间戳);所有这些都可以在 Windows 软件包中实现。