هندسة عكسية ملف بيانات الإحصاءات من تحكم مضخة الأنسولين

StackOverflow https://stackoverflow.com/questions/978270

سؤال

قد يكون هذا أو لا يكون موضوعا رمادي، على الرغم من أن نواياي ليست بالتأكيد، لذلك فإن نيتي لا تثير مناقشة أخلاقية حول موضوع الهندسة العكسية.

أنا من النوع 1 مرض السكري الذي يخضع حاليا لعلاج المضخة. أنا Omnipod. المستخدم، إنه جراب يمكن التخلص منه يلتزم بجسدي ويؤذي الأنسولين لمدة 3 أيام. يتم التحكم فيه من قبل مدير مرض السكري الشخصي [PDM] (ينظر أدناه) والتي تتحكم في مقدار الأنسولين المتمثل في الوجبات، وقراءات السكر بلور، وتحتوي على مؤشر غذائي لعسل الكربوهيدرات أثناء التنقل.

alt text
(مصدر: 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 ستكون رائعة، أو بيثون. هل هناك أي عمليات اختبار عكسية مدفوعة؟

فيما يتعلق بالبيانات التي أتطلع إليها، إنها معلومات أود أن أرسمها للحصول على مزيد من المعلومات حول تقدمي (تناول الأنسولين، قراءات السكر في الدم، الطوابع الزمنية)؛ كل ما هو ممكن في حزمة برامج Windows.

هل كانت مفيدة؟

المحلول

ما سأفعله التالي هو محاولة العثور على بعض الأرقام. هناك مجموعة من الطرق يمكن تشفير الأرقام:

  • Ints (1، 2، 4 بايت، نبيذ مختلف)
  • النقطة العائمة (من مختلف الأحجام)
  • نقطة ثابتة أو بعض التنسيق الغريب الآخر

لديك ميزة معرفة بعض الأرقام التي ستكون هناك، حيث يمكنك رؤية البيانات على الشاشة. لذلك أنا أنظر إلى هذه الأرقام في الملف (في التنسيقات المختلفة أعلاه). هذا يجب أن يمنحك بعض البيانات، على الأقل.

بعد ذلك، تذكر الطوابع الزمنية. عادة ما تكون الطوابع الزمنية سهلة للغاية، لأنها Ints Ints غير موقعة 32 بت، ولديك نطاق Ballpark جيد (وقت () +/- عدد قليل من 100000). لذلك ابحث عن INTS بالقرب من هناك.

يمكنك أن تفعل كل هذا باليد مع محرر HEX أو كتابة سيناريو صغير. بمجرد البدء في الحصول على بعض البيانات، ابحث عن أنماط. هذا يجب أن يساعد كثيرا مع العثور على مجالات أكثر إثارة للاهتمام. حظا طيبا وفقك الله!

نصائح أخرى

سأبدأ في البحث عن تمثيل HEX للقيم المعروفة. هل يحتوي الجهاز (كما في الصورة) على شاشة، أو يمكنك أن تنظر في ويندوز؟

إذا كنت تستطيع، فاقول، ابحث عن سلسلة من الأرقام في Hex التي وجدت داخل إصدار Windows، قد تكون قادرا على معرفة تنسيق "السجل". ينظر إليها، يبدو أنه يحتوي على نوع من معلومات الرأس / الإصدار، وسلسلة من السجلات ذات القيم الرقمية المشفرة من سداسي عشر.

يجب أن تعطيك نقطة انطلاق جيدة.

أود فقط تشغيل VM لإصدار Windows واستخدم OllyDBG للعكس تجميعه. هذا هو أفضل رهان لك بدلا من التحديق في ملف ثنائي وتخمين المتغيرات التي ترتبط مع ما تعويضه.

ربما لا يكون العبث بمضخة الأنسولين الخاصة بك هو أذكى الفكرة. على افتراض أن الملف يعالج المضخة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top