Это может или не может быть серой темой, хотя мои намерения, конечно, не так, поэтому я не намерен вызывать этические дебаты на тему обратного инжиниринга.
Я диабетик 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.