Это может быть, а может и не быть темой серой зоны, хотя в мои намерения, конечно же, нет, поэтому я не намерен разжигать этические дебаты по теме реверс-инжиниринга.
Я диабетик 1 типа, сейчас прохожу помповую терапию. Я пользуюсь OmniPod. Это одноразовая капсула, которая прикрепляется к моему телу и выдает инсулин на 3 дня. Он контролируется личным диабетическим менеджером [PDM] (см. Ниже), который контролирует, сколько инсулина выдавать во время еды, показания сахара в крови и содержит пищевой индекс для подсчета углеводов на ходу.
(источник: myomnipod .com)
Новый PDM имеет порт USB для загрузки данных. Программное обеспечение бесплатно для пользователей Windows (пакет под названием CoPilot), но не поддерживает Mac.
После подключения PDM к моему Mac он смонтировался, как и любое другое USB-устройство, и предоставил мне читаемый том с одним файлом на нем с расширением IBF. Он весит 16 КБ.
Моим первым побуждением было пропустить его через текстовый редактор, и мне представился очень двоичный файл. Затем я пропустил его через строки (см. ниже) и открыл его с помощью шестнадцатеричного редактора. Хотя я не мог получить много информации, кроме строк ниже; никаких подробностей о формате сжатия или чего-то еще.
$ strings omnipoddata.ibf
Insulet
OmniPod
basal 1
Post-meal
e-meal
Pre-meal
e-bedtime
Pre-bedtime
.(@P
.(@P
.(@P
Каким должен быть мой следующий шаг в этом процессе? Я специалист по динамическим языкам, поэтому любые ресурсы для Ruby или Python будут отличным вариантом. Существуют ли какие-либо процессы обратного проектирования, основанные на тестировании?
Что касается данных, которые я хочу получить, это информация, которую я хотел бы нанести на карту, чтобы получить больше информации о моем прогрессе (прием инсулина, показания сахара в крови, временные метки); все это возможно в программном пакете Windows.