Ruby 从我的胰岛素泵控制器反向工程统计数据文件
这可能是也可能不是一个灰色地带的主题,尽管我的意图肯定不是,所以我的意图不是要激起一场关于逆向工程主题的道德辩论 我是1型糖尿病患者,目前正在接受泵治疗。我是一个使用者,它是一个一次性的豆荚,粘在我的身体上,并分配胰岛素3天。它由个人糖尿病管理者[PDM](见下文)控制,该管理者控制在进餐期间分配多少胰岛素、血糖或糖分读数,并且它包含一个计算运动中碳水化合物的食物指数Ruby 从我的胰岛素泵控制器反向工程统计数据文件,ruby,reverse-engineering,binary-data,Ruby,Reverse Engineering,Binary Data,这可能是也可能不是一个灰色地带的主题,尽管我的意图肯定不是,所以我的意图不是要激起一场关于逆向工程主题的道德辩论 我是1型糖尿病患者,目前正在接受泵治疗。我是一个使用者,它是一个一次性的豆荚,粘在我的身体上,并分配胰岛素3天。它由个人糖尿病管理者[PDM](见下文)控制,该管理者控制在进餐期间分配多少胰岛素、血糖或糖分读数,并且它包含一个计算运动中碳水化合物的食物指数 (来源:) 新PDM具有用于下载数据的USB端口。该软件对Windows用户是免费的(一个名为CoPilot的软件包),但不支
(来源:) 新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软件包中实现。我开始寻找已知值的十六进制表示形式。该设备(如图所示)是否有屏幕,或者您是否可以在windows中查看 比如说,如果你能找到在Windows版本中找到的一系列十六进制数字,你也许能找到“记录”格式。看看它,它似乎包含某种头/版本信息,以及一系列带有十六进制编码数值的记录
这应该给你一个很好的起点。我接下来要做的就是试着找出一些数字。数字的编码方式有很多种:
- 整数(1、2、4字节,各种尾数)
- 浮点(各种大小)
- 固定点或其他一些奇怪的格式
您可以使用十六进制编辑器手工完成所有这些操作,或者编写一个小脚本。一旦你开始获取一些数据,寻找模式。这将有助于找到更多有趣的领域。祝你好运 我只需要为windows版本运行一个VM,然后使用ollydbg对其进行反向组装。这是最好的选择,而不是盯着二进制文件猜测哪些变量与什么偏移量相关
不过,搞乱自己的胰岛素泵可能不是最聪明的主意。假设该文件操纵泵。该数据文件不在我的PDM中,仅供统计使用。我不会将文件传输回PDM,也不会干扰PDM的功能。至于虚拟机,是的,我可以,但是,我不打算为此购买Windows许可证。我的女朋友也是糖尿病患者,你解决了吗,因为我也想对文件进行反向工程