ما هي الهندسة العكسية في البرمجيات، ابرز 5 ادوات مجانية

ما هي الهندسة العكسية في البرمجيات، ابرز 5 ادوات مجانية

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

مع التقدّم التكنولوجي وكثرة المنتجات التي تتوالى كل عام، ربما قد تفقد طرق الصناعة وتندثر مع الزمن، في تلك اللحظات يوجد علم يتطوّر على أنقاضه، فما هي الهندسة العكسية؟، وما هي أبرز ادواتها؟

ما هي الهندسة العكسية؟

المصطلح بالإنجليزية Reverse Engineering وتدعى أحيانًا Back Engineering، وبشكل عام تعني العملية التي تجرى على البرنامج أو أي منتج آخر مثل الآلات  المعدات والمركبات والطائرات والأسلحة وغيرها حيث يتم استخلاص وفهم كيفية عملة وجلب معلومات عن التصميم من خلال المنتج نفسه وبدون الاستعانة بأي مراجع من الصانع.

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

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

من أشهر الأمثلة على الهندسة العكسية هي ما فعلته شركة فينيكس التكنولوجية والتي مقرها في سان خوسيه، حيث أرادت الشركة إنتاج البايوس لحواسيبها، لذا بدلًا من الدخول في مشاكل قانونية بسبب نسخ كود BIOS  من شركة IBM، عملت حيلة بسيطة وهي جلب فريق من المهندسين لدراسة الكود الذي حجمه 8 كيلو بايتات، وبعد فهمهم لطريقة عمله، جلبوا فريق آخر من المبرمجين لا يعرفون كود البايوس، شرح لهم المهندسون ما يجب أن يفعلوه.

بعد ذلك طوّر ذلك الفريق كود BIOS جديد يختلف تمامًا عن السابق ويعمل المطلوب بالضبط.

“اقرأ أيضًا عن: ما هو تطبيق termux؟“

أهمية الهندسة العكسية

توجد الكثير من الفوائد للهندسة العكسية أبرزها:

  1. استكشاف التصاميم: إن الهندسة العكسية تسمح باستخلاص أشياء جديدة بالنسبة لنا بالتالي فهو يشجع على الابتكار.
  2. الكشف عن نقاط الضعف: عند استخدامها ستظهر نقاط الضعف في المنتجات وهذا سيضمن حماية إضافية للمستخدمين.
  3. خفض تكاليف الإنتاج: التوصّل إلى منتجات أسهل من ناحية التصميم وأرخص من ناحية الموارد.
  4. الهندسة العكسية تفكّ قيود العقول للإبداع والابتكار فقد يكتشف المهندس نظامًا آخر يصلح لمشروع مختلف لهذا السبب يرتبط هذا المفهوم بهندسة المشاريع.
  5. تكون هي الوسيلة الوحيدة لصناعة المنتجات بعد تضييع طريقة صناعتها.

هل تعلم بأن بعض المعدات مثل طائرات الدرون تدمر نفسها في حال سقوطها لكي لا تصل التقنية إلى أرض العدو!

المخاطر والقضايا الأخلاقية

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

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

“اطلع أيضًا على: جوجل بودكاست، كيفية استخدام Google Podcasts“

أهم ادوات الهندسة العكسية

تعمل هذه الأدوات بتحليل عمل الكود في شكله الثنائي مثل ملفات exe أو apk إلى لغات أقرب إلى الهاردوير مثل الاسيمبلي.

  • أداة Apktool، هي أحد أفضل ادوات الهندسة العكسية مفتوحة المصدر لتطبيقات الاندرويد يتم فيها فك ملفات APK إلى برمجة اسيمبلي وملفات بصيغة smali، ما يميز هذه الأداة هي إمكانية فك الكود إلى المسارات الأصلية وإعادة البناء بعد التعديل وتصحيح أخطاء smali.

    أيقونة برنامج ApkTool على Kali Linux

  • برنامج IDA Pro، يعد أشهر برنامج Reverse Engineering لنظام التشغيل ويندوز يتميز بأنه تفاعلي أكثر ويمتلك واجهة مستخدم رسومية بعكس ApkTool.
  • أداة JavaSnoop، وهي أداة اختراق خاصة بتطبيقات الجافا.
  • محرر WinHex السداسي العشري الذي يوفر مجموعة واسعة من الأدوات لتطوير نظام ويندوز.
  • برنامج Dex2jar، وهو أحد ادوات الهندسة العكسية الأساسية في توزيعة كالي لينكس، حيث يسمح بالتحويل من ملفات apk إلى JAR ثم عرض كودها المصدري.

    برنامج Dex2jar على Kali Linux

يمكن استخدام هذه الأدوات في تطوير برامجك من خلال اقتباس الأفكار وطريقة العمل التي توفرها البرامج.

685 مشاهدة
فهرس على قوقل نيوز

تابعنا الآن

إنضم لقناتنا على تيليجرام