عندما تنظر إلى أي جهاز مضمّن داخل شبكة مستهدفة، فأنت لا تنظر فقط إلى نظام تشغيل أو خدمة تعمل في الخلفية. أمامك سطح هجوم كامل يمكن الوصول إليه من أكثر من اتجاه، ومن أكثر المسارات فاعلية أحيانًا تقنيات الاستغلال على مستوى العتاد نفسه.
هذا النوع من الاختبارات يصبح مثيرًا للاهتمام لأن كثيرًا من الأجهزة التي نتعامل معها يوميًا لا تُبنى بحماية قوية حول الجانب الفيزيائي. قد يكون التطبيق محميًا، وقد تكون الواجهة مقيدة، لكن اللوحة الموجودة داخل الجهاز قد تكشف تفاصيل لم يكن من المفترض أن تصل إليها بهذه السهولة.
#عندما يصبح الجهاز نفسه سطح هجوم
في Hardware Hacking أنت لا تتعامل مع عنوان IP فقط. الجهاز الفيزيائي نفسه يتحول إلى Attack Surface، واللوحة الإلكترونية والمنافذ والشرائح تصبح نقاطًا تستحق الفحص.
البداية عادة ليست معقدة. تفتح الجهاز، تتعرف على ما بداخله، ثم تبدأ عملية Enumeration بسيطة باستخدام مجموعة من الأدوات التي سنمر عليها لاحقًا.
بعد إزالة الغطاء ستجد اللوحة الرئيسية أمامك، وهناك تبدأ الصورة في الوضوح. أسماء الشرائح، أرقام المكونات، نقاط الاختبار، والمنافذ غير المعلّمة قد تخبرك الكثير عن طريقة عمل الجهاز قبل أن تشغل أي أداة هجومية.
إذا عرفت اسم الـ IC المستخدم، ابحث عن الـ Datasheet الخاصة به. هذه الورقة قد تعطيك Pinout الشريحة، وظائف الأرجل، بروتوكولات الاتصال، الجهد المستخدم، وأحيانًا تفاصيل تكفي لتحديد الخطوة التالية في التحليل.
أحيانًا تكون الطريق إلى Shell أقصر مما تتوقع. كثير من الأجهزة تكشف نقاط RXD وTXD الخاصة بـ UART على اللوحة، وإذا كانت الواجهة مفعّلة ومهيأة بشكل مناسب فقد تتمكن من الوصول إلى Serial Console من خلالها.
لكن قبل كل شيء تحتاج إلى الوصول الفعلي إلى إلكترونيات الجهاز. وهنا تبدأ المشكلة لأن بعض الشركات تصمم الغلاف ليكون مزعجًا في الفتح، باستخدام بلاستيك صلب، مسامير مخفية، أو رؤوس براغي تحتاج أدوات غير شائعة.
بعد الوصول إلى اللوحة تبدأ مرحلة أكثر فائدة. باستخدام الأدوات المناسبة يمكنك تحديد Debug Ports، التعرف على واجهات الاتصال التسلسلية، استخراج Firmware، ثم الانتقال إلى Reverse Engineering للجهاز والبرمجيات التي تعمل داخله.
هذه الأدوات تتيح لك التحدث مع الجهاز عبر Serial Bus Interfaces مختلفة، أو قراءة شريحة التخزين واستخراج Firmware Image لتحليلها لاحقًا. صورة الـ Firmware قد تحتوي على نظام التشغيل وملفاته، وقد تجد بداخلها واجهة الويب، ملفات الإعدادات، سكربتات، مكتبات، أو أجزاء من المنطق الذي يعتمد عليه الجهاز.
بعد استخراج المحتوى يمكنك تحليل الملفات مباشرة، وفي بعض الحالات تشغيل أجزاء من البيئة داخل Emulator مثل QEMU لمراقبة السلوك بعيدًا عن الجهاز الحقيقي. QEMU

#الواجهات التي ستقابلها كثيرًا
قبل شراء الأدوات أو توصيل أي Probe عشوائيًا، من المهم أن تفهم البروتوكولات التي قد تكون موجودة أمامك. معرفة شكل الإشارة وطريقة الاتصال توفر عليك وقتًا كبيرًا أثناء تحليل الجهاز.
من أشهر الواجهات التي ستتعامل معها:
- JTAG JTAG
- UART http://jcjc-dev.com/2016/04/08/reversing-huawei-router-1-find-uart/
- I2C https://hackaday.com/tag/i2c-bus/
- SPI http://hackaday.com/2016/07/01/what-could-go-wrong-spi/
البحث في هذه الواجهات وفهم البروتوكولات الخاصة بها سيجعلك تستخدم أدوات Hardware Hacking بوعي أكبر. الهدف ليس مجرد توصيل أسلاك، بل أن تعرف ما الذي تتوقع رؤيته، وما الذي يعنيه كل Pin أو Signal أمامك.
قائمة أدوات Hardware Hacking
#USB To TTL Converter
هذه الفئة من المحولات تستخدم لربط جهازك بواجهات TTL Serial الموجودة على اللوحات الإلكترونية. الفكرة ببساطة هي تحويل الاتصال القادم من USB إلى مستويات إشارات يمكن للواجهة التسلسلية في الجهاز التعامل معها.
النموذج المذكور في النص الأصلي يجمع بين USB to RS232 Adapter من نوع USB-232-2 يعتمد على FTDI، وبين RS232 to 5V TTL Converter من نوع TTL-232-5P. يحصل المحول على الطاقة من منفذ USB ولا يحتاج إلى مصدر طاقة خارجي في هذا السيناريو.
عمليًا هذه من الأدوات التي ستعود إليها كثيرًا عند التعامل مع UART. لكن قبل التوصيل تأكد دائمًا من مستوى الجهد المستخدم على الجهاز لأن الخطأ هنا قد يضر بالمكوّن الذي تحاول تحليله.
#Logic Analyzer

الـ Logic Analyzer أداة تلتقط أكثر من إشارة رقمية في الوقت نفسه وتعرضها بطريقة تساعدك على فهم ما يحدث داخل الدائرة. بدل أن ترى مجرد High وLow، يمكنك تحويل البيانات الملتقطة إلى Timing Diagrams أو Protocol Decodes تجعل حركة البيانات أسهل في القراءة.
في بعض البيئات يمكن للأداة أيضًا إظهار State Machine Traces أو ربط بعض الإشارات بتعليمات Assembly أو بمستوى أعلى من الكود. فائدتها الحقيقية تظهر عندما تعرف أن هناك اتصالًا يحدث على خط ما، لكنك لا تعرف البروتوكول أو التوقيت المستخدم.
#Shikra
![]()
الـ Shikra من الأدوات المعروفة في Hardware Hacking، ويُنظر إليه لدى بعض الممارسين كخيار ثابت وموثوق عند التعامل مع UART وJTAG وSPI. ليس بالضرورة أن يكون أول اسم تسمعه مثل Bus Pirate، لكنه حاضر بقوة في بعض تدريبات Software Exploitation via Hardware Exploitation.
ظهر الجهاز أيضًا ضمن تدريب SEXviaHEX على الرابط التالي:
إذا كان هدفك سحب Firmware Image من جهاز IoT لتحليله برمجيًا، فالـ Shikra مناسب لهذا النوع من العمل. يمكن توصيله بشريحة SPI الموجودة على الجهاز، وقد تحتاج إلى 8-pin SOIC Clip للوصول إلى الشريحة من دون فكها من اللوحة.
للمزيد:
بحسب الدليل المشار إليه في النص الأصلي، استغرق Bus Pirate قرابة 30 دقيقة لاستخراج Firmware بحجم 4MB، بينما أنهى Shikra المهمة نفسها في أقل من دقيقة. هذه مقارنة مرتبطة ببيئة وتجربة محددة، لكنها توضح لماذا يفضله البعض عندما تكون السرعة والثبات عاملين مهمين.
#Bus Pirate

الـ Bus Pirate من أشهر الأدوات في هذا المجال، والسبب أنه يجمع أكثر من بروتوكول في أداة واحدة ويملك مجتمعًا كبيرًا من المستخدمين. لذلك ستجد حوله شروحات وتجارب وحلولًا لمشكلات كثيرة قد تواجهك أثناء الاستخدام.
النص الأصلي يشير إلى أن تطوير الـ Official Firmware للإصدار 4 كان يبدو متوقفًا وقت كتابة التدوينة، وهو ما سبب مشكلات لبعض المستخدمين مقارنة بالإصدار 3. من الأمثلة المذكورة صعوبة تشغيل دعم JTAG بالشكل المتوقع على بعض إعدادات Version 4.
في المقابل كان Version 3 يعتمد على دعم مجتمعي قوي. وجود مجتمع نشط حول الأداة يعني عادة أن فرص العثور على حلول وتعديلات وتجارب عملية ستكون أعلى، ولهذا بقي Bus Pirate خيارًا مرنًا في كثير من مختبرات Hardware Hacking.
#JTAGulator

بعيدًا عن شكله الذي يبدو وكأنه خرج من حقيبة Hardware Hacker فعلية، وظيفة JTAGulator عملية جدًا. عندما تفتح جهازًا للمرة الأولى لن تكون نقاط UART أو JTAG واضحة دائمًا، وقد تجد مجموعة Pins من دون أي Labels تساعدك.
هنا يأتي دور JTAGulator. الأداة تساعدك على اختبار نقاط التوصيل وتحديد أيها يرتبط بواجهات مثل UART وJTAG وغيرها، بدل أن تعتمد على التخمين طوال الوقت.
هذه الخطوة مهمة خصوصًا عندما لا تجد Datasheet واضحة للوحة أو عندما تخفي الشركة المصنعة معلومات الـ Debug Interface. كل Pin تعرف وظيفته يقلل مساحة الغموض أمامك.
#Facedancer21

ليست كل أجهزة IoT مزودة بمنفذ USB، لكن عندما يكون المنفذ موجودًا فقد يصبح Facedancer أداة مثيرة للاهتمام. الفكرة الأساسية أنه يسمح لجهاز الكمبيوتر بمحاكاة USB Device والتواصل مع الهدف عبر USB Bus.
باستخدام Python يمكنك التحكم في سلوك الجهاز المحاكى واختبار الطريقة التي يتعامل بها الهدف مع أنواع مختلفة من أجهزة USB. ويمكن أن يشمل ذلك محاكاة فئات أجهزة يثق بها النظام أو يتوقع التعامل معها بشكل طبيعي.
هذه الزاوية مفيدة لأن بعض المنتجات تتعامل مع USB باعتباره قناة موثوقة أو أقل خطورة من الشبكة. لذلك قد تكشف لك هذه الواجهة سلوكًا لا يظهر عند اختبار الجهاز من الخارج فقط.
#Oscilloscope

الـ Oscilloscope يسمح لك بمراقبة تغير الجهد بين نقطتين في الدائرة مع مرور الوقت. إذا قست إشارة جيبية مثلًا فستشاهد شكل الموجة على الشاشة، وهذا يعطيك صورة مباشرة عن السلوك الكهربائي للإشارة.
من أكثر الأنواع انتشارًا اليوم Digital Storage Oscilloscope أو DSO. ميزته أنه لا يريك فقط وجود إشارة من عدمه، بل يساعدك على فهم شكلها وتوقيتها ومستوى الجهد والتغيرات التي تحدث عليها.
هذه الأداة ليست رخيصة عادة، وليست ضرورية لكل مختبر مبتدئ. لكنها تصبح مفيدة جدًا عندما تحتاج إلى النزول من مستوى البروتوكول إلى المستوى الكهربائي نفسه وفهم ما يحدث فعليًا على الخط.
#أدوات بسيطة لا تقل أهمية
لا تحتاج كل خطوة إلى جهاز متخصص. أحيانًا الأدوات اليدوية البسيطة هي التي تسمح لك بالوصول إلى اللوحة أصلًا أو إجراء القياسات والتوصيلات بأمان.
- مجموعة مفكات مناسبة
- Probes وJumper Wires
- سكين حاد للاستخدام الفني بحذر
- كماشة وأداة تعرية الأسلاك
#الخلاصة
Hardware Hacking لا يبدأ من أداة غالية ولا من محاولة عشوائية للحصول على Shell. البداية الحقيقية هي أن تفهم اللوحة التي أمامك، تحدد مكوناتها، تعرف البروتوكولات التي تتحدث بها، ثم تختار الأداة التي تجيب عن السؤال الذي لديك.
أحيانًا تكون الإجابة على UART، وأحيانًا داخل SPI Flash، وأحيانًا تحتاج Logic Analyzer لترى ما لا يظهر في الـ Terminal. كل طبقة تفتحها في الجهاز تقربك من فهم التصميم الحقيقي بدل الاكتفاء بالواجهة التي أراد المصنع أن تراها.



