الهندسة العكسية لبرامج الأجهزة الإلكترونية و Microcontroller ( الجزء الثاني )

عام 0 geek4arab
Spread the love

 

تكملة لما بدئنا حول موضوع ( جرائم الكمبيوتر و التجسس الإلكتروني الدولي والشخصي للمعلومات )
* جميع الحقوق محفوظة للباحث: جمعان عبدالله البريكي ( JAAS )
الجزء الأول تجده هنا

عندما انتهيت من الجزء الثاني وجدته طويل نوع ما يحتوي على صور كثيرة ولذلك سأقوم بنشر بعض
منه وسيصدر البحث كامل في كتاب الكتروني كامل وشامل ,, حتى الجزء الاول اختصرت فيه الكثير لأضعه في صفحه واحده

2- إختراق الأنظمة والشبكات والوصول الغير مخول للبيانات
لو راجعت المواضيع في الصفحه التاليه
لوجدت اننا تحدثنا كثير عن اختراق المواقع والشبكات وتحدثنا عن الفايروسات وانظمة التشغيل واختراقها
ولكن بقي شيء غامض للبعض وهو هل هذه المواضيع تقتصر فقط على جهاز الكمبيوتر الشخصي؟ ماذا
عن الانظمة الاخرى المستخدمة في الاجهزة الالكترونية وهل امن المعلومات يقتصر على امن جهاز الكمبيوتر

ماذا عن الانظمة التي تستخدم في الموبايل مثلاً هل هي نفسها التي نتحدث عنها,, ماذا عن انظمة البنوك و الطائرات
هل تستخدم نظام وندوز وماذا عن الانظمة التي تستخدم في المجال العسكر وماهي الانظمة السرية ؟ الله اعلم ,,,

هذا الموضوع سيحل لك اغلب الالغاز التي تدور في ذهنك,,,,,

2-1 الهندسة العكسية للأجهزة الالكترونية و Microcontroller
اذا كنت متابع للمواضيع السابقة فإنك بالتأكيد تعرف مفهوم الهندسة العكسية وهو المفهوم الشائع في الكمبيوتر
وتندرج تحته تخصصات كثيرة مثل كسر حماية البرامج وصناعه الكراك والتخصص الثاني اكتشاف الثغرات الامنيه
في انظمة التشغيل وتخصصات كثيرة في الحماية وتحليل الفايروسات وغيرها.

ولآن هل تريدنا ان ندخل الى القسم الثاني من مفهوم الهندسة العكسية للإلكترونيات و المعالجات المصغرة والدارات
قد تستغرب من الموضع؟ عندما كنا نتحدث عن الهندسه العكسية في السابق كنا نتكلم عن معالج واحد وداخل جهاز
الكمبيوتر هذه النقطتين الاساسيه يمكن ان تنساها الآن , لأننا سندخل في مجال جديد قد يكون نادر جداً ولكنه عباره
عن حرب اذا صح التعبير بين الشركات العالميه والحكومات ايضا وخاصة في المجال العسكري كلة هندسة عكسية!!!!

مجال الهندسة الالكترونيه مجال كبير يدخل ضمنه كل البرامج الالكترونيه التي تراها في حياتك من الساعه التي في يدك
الى السيارة التي تركبها الى اجهزة الراديو والتلفون والريسيفر واجهزة التحكم وحتى انظمة البنوك والبطاقات الذكية
مثل الفيزا وغيرها وانظمة الاقمار الصناعية والطائرات والمجال العسكري له نصيب الاسد وكل شيء الكتروني في الدنيا.

والسؤال الذي يطرح نفسه , هل يمكن كسر هذه الانظمة الالكترونيه مثل الكراك ؟ الجواب نعم
وهل يمكن اكتشاف ثغرات امنيه مثل انظمة الكمبيوتر واختراقها ؟ الجواب بالتأكيد نعم
وستتأكدون بأنفسكم انها اسهل من انظمة الكمبيوتر بكثير في الكسر والتحليل لأننا في انظمة الكمبيوتر مثل وندوز
نتعامل مع ملايين الاكواد والملفات والتعليمات بينما في الاجهزة الالكترونيه نتعامل مع ملف واحد ضمن مسار لايخرج
عنه التنفيذ ابدا.

سندخل في الموضوع,,, اولاً كل جهاز الكتروني تراه يحتوي على قطعه اساسية بداخله تسمى المايكروكونترول
او Microcontroller هذه القطعه هي مركز التحكم وتقدر تشبها بالكمبيوتر الذي امامك ولكنه مصغر جدا , هذه القطعه
لها عده اشكال واحجام , وهذه الصوره تبين شكل Microcontroller وانواعه

تحتوي هذه القطعه على معالج مثل المعالج الذي في الكمبيوتر ينفذ التعليمات والبرامج وتحتوي ايضا على ذاكرة
لتخزين البرامج وتحتوي على منافذ للإتصال بالاجهزة الالكترونيه ,,, هل ترى كل هذه الاجزاء لاتهمنا ابدا
ما يهمنا شيء اساسي وهو البرنامج المخزن في ذاكرة ال Microcontroller وهو الذي يتحكم في الجهاز الالكتروني
هذا البرنامج مثل البرامج التي في الكمبيوتر مكتوب بلغة الآله 01 ويمكن تحويله لترميز الهكس ويمكن فك تجميعه
للغه الاسمبلي تماماً مثل الهندسة العكسية في الكمبيوتر لأن البرنامج الذي بداخل Microcontroller اصلا مكتوب
بالاسمبلي او لغه السي او حتى البيسك وتجد مترجمات كثيرة في هذا المجال مايهمنا ان الفكرة متشابهه الى الآن
وهنا سؤال خطر على بالي دائما اسمعه ماهي لغة برمجة الاقمار الصناعية؟ صدقوني هي نفسها اللغات التي بين
ايديكم تبرمج بها ادق الاجزاء في Microcontroller , وفي موقع ناسا نفسة تجد المعلومات القمر الصناعي الذي
تم ارساله لإلتقاط صور في المريخ كتب بلغة C للتحكم اما حول كود التقاط الصور ومعالجتها فوجدو لغة الجافا افضل
اذا لم تقتنع شاهد الاعمال في الصفحه التاليه

نرجع للموضوع:
الخطوة الأولى في الهندسة العكسية للأجهزة الالكترونيه:
اول خطوة هي الحصول على البرنامج بداخل Microcontroller وقد تكون هذه الخطوة جديدة في مجال الهندسة العكسية
ولكنها بسيطة ,, توجد اجهزة الكترونيه تسمى ” مبرمجات المايكروكونترول” هذه القطع عباره عن هاردوير تركب بها
المايكروكونترول لتقوم بعد ذلك بكتابة البرنامج في جهاز الكمبيوتر ونقلة الى المايكرو بإستخدام هذه القطعه والعمليه بسيطة
نحن سنقوم بالعكس وسنقوم بقرائة البرنامج الذي يوجد في Microcontroller وسنقوم بتخزينه في جهاز الكمبيوتر لكي نبدأ
بالتجارب,, المهم هذا شكل قطعه برمجة المايكروكونترول, وتوجد اشكال كثيرة وانواع

ملاحظة يمكن صناعة هذه القطعة في المنزل واضافة خصائص تهم المجال الذي تعمل به والموضوع بسيط وهو عبارة عن
شراء قطع الكترونية وتجميعها وهذا شرح كامل وبالعربي

اذا رجعت للصوره الاولى ستجد ان هنالك انواع ل Microcontroller بعضها ب 8 ارجل وبعضها 20 او 40 او 60 بكل بساطه
المايكروكونترول يأتي من المصنع بهذا الشكل له ارجل انت تقوم بسحبه فينزل وتتوجه للقطعه البرمجه وتقوم بإدخال الارجل
في الفتح المبينه وتلاحظ ان قطعه البرمجه في الصورة الثانيه تدعم كل الانواع وستلاحظ الاشكال باللون البني
بعد ذلك ستجد فتحه USB في قطعه البرمجه لوصلها بالكمبيوتر ,, توجد قطع كثيرة بعضها يوصل بالطابعه وبعضها بمنفذ تسلسلي
كله واحد

في ملاحظة هنا وهي ان بعض الاجهزة تقوم بلحام ال Microcontroller في اللوحه الالكترونيه ,, فلاتخف من ذلك اقتلع المايكرو
من الجذر مافي مشكلة لأن ارجاعه ولحامه عمليه بسيطة وهذه صورة لCracker المستقبل

المهم بعد الحصول على Microcontroller وإدخال في جهاز البرمجة ووصل جهاز البرمجة للكمبيوتر بعد ذلك نبدأ الشغل
في الحقيقة توجد هنالك طريقتين
الأولى:- قرائة البرنامج الذي بداخل ال Microcontroller وحفظة في جهاز الكمبيوتر بلغة الآلة بعد ذلك تشغيلة بواسطة debugger
الثانية:- وهي برامج متطورة تقوم بتشغيل البرنامج ومراقبة وتعديلة بداخل Microcontroller نفسة
وسنأخذ الطريقتين

الطريقة الأولى
توجد برامج كثيرة لقرائة البرنامج الموجود في Microcontroller لنوع واحد او انواع مختلفة
ومثال على ذلك برنامج PICkit , وهذه صوره لعمليه قرائه برنامج , وتوجد برامج لكل نوع من المايكروكونترول

بعد عمليه القرائة نخزنه في ملف بإمتداد bin وبهذا نكون حصلنا على البرنامج وبعد هذه النقطة يأتي التعقيد ؟ ولكن توجد حلول كثيره
اول خطوة هي اختيار نوع الديبغر ويحدد النوع على حسب نوع Microcontroller او بالاحرى نوع المعالج
ولذلك يجب ان نأخذ بعض المعلومات عن انواع معالجات Microcontroller وهي
– أنواع المعالجات في المايكرو كونترول Microcontroller
1- اشهراها معالجات انتل 8051 والمعالجات الاخرى التي تبدأ ب80 ومعالج ARM الموجود في الموبايل مثلاً
2- معالجات Microchip وهي التي تبدأ بأحرف PIC مثل PIC16F84
3- معالجات موتورولا وهي التي تبدأ ب 68 ومعالجات Atmel وهي التي تبدأ ب AT
4- وتوجد أنواع أخرى نادرة وهي الخاصة بشركات الالكترونيات نفسها

ولكن لاتقلق توجد انواع من الديبغر تدعم انواع متعددة من المعالجات وتقريبا البرنامج المعروف IDA pro
يدعمها كلها, ويمكن ان تتأكد من هنا
http://www.datarescue.com/idabase/idaproc.htm

ولكن انا افضل التخصص في اختيار ديبغر , فمثلا قبل فترة كنت احاول احلل برنامج بداخل المايكروكونترول
وهو من نوع معالج انتل 8051 وكان عبارة عن برنامج استقبال للفاكس والرد التلقائي , بصراحه بعد هذه
التجربة تأكدت انه يوجد ثغرات امنيه بنفس انواع الثغرات الموجودة في أنظمة الكمبيوتر ,, لماذا ؟ لأن بنية معالجات
ال Microcontroller هي نفسها , سنوضح اكثر
هذه لمحه عن بنية معالجات المايكروكونترول ,, لاحظ التطابق
المسجلات العامة R0 R1 R2 R3 R4 R5 R6 R7
مسجل دليل قسم الكود PC
مسجل دليل قسم البيانات DPTR
مسجل دليل المكدس SP
مسجل الحالة PSW
مسجل المقاطعات IE

بمعنى انه تحدث ثغرات مثل الوندوز ,, المهم انا لم اصدق في البدايه وقلت اجرب ,, رحت وجبت برنامج ديبغر
ودخلت برنامج الفاكس والرد التلقائي بداخله وقمت احلل ولقيت شيء مهم في برنامج ارسال الفاكس كل 3000 حرف
تقريبا يضع بعدها رموز الهكس 0xFF 0x0F 0x00 وتدل على نهاية ارسال صفحه للفاكس ,, رحت لبرنامج الاستقبال
وبالفعل يبحث عن هذه الرموز ليبدأ يطبع كل صفحه,, طبعا هذه من اسهل انواع الثغرات ماذا لو ارسلنا 10000 او الاف الحروف
بدون توقيع نهاية الصفحه صدقوني بيبند الفاكس ولعد يشتغل ,, وجربتها دخلت البرنامج في مرحله اختبار بواسطة no$x51
وهو برنامج ديبغر خاص بمعالجات 8051 وجربت تتوقعون شو هي النتيجه ,, شاهد

بالتأكيد ثغرة فيض في المكدس ,,, اعتقد اني بدأت ادخل في الموضع بدون تسلسل ,,,, نرجع خطوه لورى
قبل ان نبدأ في الثغرات والاستغلالات واختراقات الانظمة الالكترونيه الدولية؟؟؟ خلونا نأخذ اشياء نعرفها
لنقرب الصورة ,,


موضوع التحايل او كسر برامج Microcontroller
هذا الموضوع هو جزء من البحث وأعتقد ان كثير منكم مر عليهم ولكن لم ننتبه الى الموضوع ,, لو جينا لجهاز
الريسيفر الي يستقبل قنوات فضائية بعض القنوات مشفرة وتتطلب كود التشغيل هذه العمليه عباره عن تحقق
مثل البرامج الي تطلب كود التسجيل , بعض محلات الالكترونيات تقدم ريسيفر يفتح القنوات المشفرة مجانا
هذا الريسيفر اجريت علية هندسة عكسية لتجاوز كود التحقق وإعادة كتابة البرنامج في Microcontroller

ظهرت انواع من الريسفرات بنوع من Microcontroller يحتوي على ذاكرة ROM للقرائة فقط لايمكن اعادة
الكتابة للتعديل على البرنامج فكان الحل بسيط جدا وهو شراء قطعه من نفس Microcontroller وقرائة البرنامج
السابق والتعديل عليه وعادة كتابتها في Microcontroller الجديد وتركيبة في جهاز الريسيفر وكان الحل 100%

وظهرت اختصاصات جديدة خاصة في اجهزة الموبايل ؟ وهو كسر كود التحقق PIN ويكون في برنامج في بطاقة الجوال
وهذا شيء موجود وتقدمه بعض الشركات , بمعنى ان فكرة الهندسة العكسية للاجهزة الالكترونية موجودة

الحين بناخذ مثال على هذا الجزء بالتحديد لتقريب الصورة
سنأخذ برنامج جديد وهو NoICE يذكرنا بالسوفت آيس , هذا البرنامج نقدر نوصل للبرنامج بداخل Microcontroller
ونختبرة ونشغلة ونكسر حمايته بعد, وهو سهل الاستخدام
بعد الحصول على Microcontroller حدد نوعه وتجده مكتوب عليه وبعد ذلك ثبت برنامج NoICE وسيطلب منك اختيار
بيئة الاختبار اي نواع وتظهر لك انواع مختلفة , وبعد وصل جهاز برمجة المايكروكونترول بالكمبيوتر شغل NoICE
وستظهر لك نافذة الاختبار والهندسة العكسية ,, تتبع البرنامج الى ان تجد كود المقارنة مثل عملية كسر البرامج
وستجده مشابه للتالي:-

بعدها نغير التعليمة من قائمة Memory اما عن طريق الهكس او الاسمبلي وبعد ذلك نحفظ البرنامج الجديد في ملف bin
من قائمة file ونقوم بكتابته في المايكروكونترول ,,, هذه بإختصار الفكرة الاساسية
وبعد هذه المقدمه نكون قد اخذنا فكرة اكثر عن الموضوع ,,,,

الحين:
2-2 الثغرات الامنية للأجهزة الالكترونية و Microcontroller
في الجزء الاول من الموضع اكيد قرأت التجسس على شبكات GSM وفك تشفير A5 هل سألت نفسك كيف توصول
الى كود الارسال في الموبايل لكي يتمكنو من فك التشفير ,, بالتأكيد الهندسة العكسية للأجهزة الالكترونية !!

الثغرات الامنية في الاجهزة االالكترونية تحدث كثير وأمثلة على ذلك ما حدث في فرنسا
http://www.parodie.com/english/smartcard.htm

فقد تمكن الهكر من التغيير في برنامج البطاقة الذكية وتم تغيير بعض اكود التحقق ليدخل صاحب البطاقة
لرصيد البنك بالكامل ,, وعند شرح الموضوع قام الهكر بنشر الكود المصدري لبرنامج الذي بداخل البطاقة
ومكتوب بالجافا والثغرة كانت بالتحقق من رقم العميل اذا لم يعثر عليه يأخذ رقم حساب جديد في البنك
برصيد البنك بالكامل ,, على فكرة كود برنامج البطاقة قبل التعديل وبعده موجود في الانترنت
نفس الموضوع حدث وهو إيجاد ثغرة في البرنامج او النظام الذي بداخل بطاقة الرصيد للإتصالات
وتحدث الكثير من الاختراقات في موضوع البطاقات الذكية وسرقة بطاقات الهوية والتزييف بشكل عام

معلومات حول الفكرة السابقة ,, عندما يتم اكتشاف ثغرة في نظام بنكي مثلا فبتأكيد لا تملك بنك داخل بيتك
للتجربة في هذة الحالة يتم استخدام ادوات جديدة تسمى المحاكي Emulation في مثالنا يستخدم SmartCard Emulation
وتوجد آلاف من المحاكيات في الانترنت لأغلب الانظمة حتى الطائرات توجد لها محاكيات لكي تتمكن شركات التطوير
من كتابة برامج لها بنفس فكرة برمجة العاب XBOX و PS2 وغيرها.

وتوجد أنواع أخرى من الثغرات للتشويش على الاتصالات الاسلكية والرادارات وغيرها تكتشف بواسطة مجال
الهندسة العكسية للأجهزة الالكترونية , ومثال على ذلك في بعض مواقع الهكر تجد شخص يقول انه اكتشف ثغرة
في نظام اتصالات معين ويقوم بإرفاق الاستغلال عبارة عن ملف صوت wave هل تعرف ما هذا النوع من الاستغلال
هذا الملف يمثل تردد الموجة الاسلكية للتشويش على نظام معين او حتى اغلاقة ونشاهد هذا النوع من الثغرات يحدث
في اوربا وبواسطة موبايل او لاب توب في سيارة تستطيع اغلاق او تشويش كل الراداارت التي في الطريق
وبنفس المبدأ ولكن بموضوع متقدم شوي تستخدم هذه الامور في المجال العسكري للتشويش على رادارات الطائرات

بعطيك مثال اذا اردت الدخول في الموضوع ,,, هذا مشروع بسيط لبرمجة جهاز تحكم غريب وعجيب
عبارة عن برمجة مايكروكونترول بسيط يوضع في مقدمة سيارة لاسلكية لعبة ,, هذا البرنامج يحس بترددات الاصوات
ليتبعها , كما انك تستطيع التحكم به عبر موبايل , تستطيع رؤية المثال coolerbot

وهذه اكواد المشروع بلغة C ,,
الكود في مايكروكونترول السيارة تجدة هنا
الكود الذي في مايكروكونترول الموبايل تجدة هنا
المشروع كامل مع الشرح تجده هنا

والآن هل رأيت المثال والاكواد,, هل تعرف ان بها ثغرة؟؟ ويمكن اصدار موجات وترددات من خلال اجهزة اخرى
لتظليل السيارة او حتى وقف البرنامج عن التحسس لأي ترددات
هذه الفكرة البسيطة قد تضحك منها ولكن اقولك شيء الصواريخ الي يسموها صواريخ ذكية تعمل بنفس المفهوم
تردد + حرارة او قد تكون اشعه ولهذا ظهرت طرق للتشويش عليها ,, هل تعتقد اني اخبص من عندي !!
شوف هذا البحث عن انظمة الصواريخ
http://www.packetstormsecurity.org/docs/infosec/emwmd/apjemp.html
او تابع صفحه Carlo دكتور في الامن العسكري
http://www.csse.monash.edu.au/~carlo/
وفي النهاية نحن لانريد ان ندخل في هذه المواضيع مره واحده!! لأن هنالك امور كثيرة جدا لم نذكرها وهي انواع
الحماية لبرامج Microcontroller وطرق كسرها ومصادر اخرى لانستطيع الوصول اليها ولكن بالتجارب مافي شيء
مستحيل , على فكرة ظهر اول انواع الحماية لبرامج Microcontroller في زمن الحرب الباردة بين امريكا والاتحاد
السوفيتي وكانت الفكرة هي منع اي جهة من الوصول لبرامج الطائرات الحربية بعد اصقاطها او الصواريخ اذا لم
تنفجر وتظهر كل يوم حادثة لا نفهما ونكون دائما آخر من يعلم !!! وبالتوفيق للجميع ,,,

في مراجع هنا:
http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects
http://www.digital-laboratory.de
http://bit.kuas.edu.tw/~8051
http://www.cl.cam.ac.uk/~sps32/mcu_lock.html
والكثير تجدها في GoOgle.com و االلقاء في الجزء التالي…

الكاتب geek4arab

geek4arab

مواضيع متعلقة

التعليقات مغلقة