الهندسة العكسية: ما هي وكيف تعمل؟

الهندسة العكسية: ما هي وكيف تعمل؟
(اخر تعديل 2023-06-26 07:00:19 )

تعتبر الهندسة العكسية من طرق معرفة آلية عمل الأشياء وتحليلها، فما هي؟ كيف تعمل؟ ما هي أهميتها والأمثلة عليها؟

المحتويات:

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

2. ما هي أهدافها ؟

3. كيف تعمل؟

4. أمثلة تطبيقية.

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

الهندسة العكسية هي عملية تفكيك كائن ما لمعرفة آلية عمله. يتم إجراء الهندسة العكسية في المقام الأول لتحليل واكتساب المعرفة حول الطريقة التي يعمل بها شيء ما ولكن غالباً ما يتم استخدامها لتكرار أو نسخ الكائن أو تحسينه.[1]

يمكن إجراء هندسة عكسية للعديد من الأشياء، بما في ذلك البرامج والآلات المادية والتكنولوجيا العسكرية وحتى الوظائف البيولوجية المتعلقة بكيفية عمل الجينات. إن ممارسة الهندسة العكسية كما هي مطبقة على أجهزة وبرامج الحاسوب مأخوذة من الصناعات القديمة. أما بالنسبة للبرامج, فهي تقوم بالتركيز على كود آلة البرنامج، أي سلسلة 0 و 1 التي يتم إرسالها إلى المعالج المنطقي. تُستخدم عبارات لغة البرنامج لإعادة رمز الآلة إلى الكود المصدري الأصلي.[1]

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

إقرأ أيضاً… ما هي البيانات النوعية والكمية؟ مع أمثلة على كل منهما.

2. ما هي أهدافها؟

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

غالباً ما يكون هدف برامج أو أجهزة الهندسة العكسية هو إيجاد طريقة لإنشاء منتج مشابه بتكلفة أقل أو بسبب أن المنتج الأصلي لم يعد متوفراً. وهي تُستخدم في تكنولوجيا المعلومات أيضاً لمعالجة مشكلات التوافق وجعل الأجهزة أو البرامج متوافقة مع أجهزة أو برامج أو أنظمة تشغيل أخرى لم تكن متوافقة معها في الأصل.[1]

3. كيف تعمل؟

تعتبر عملية الهندسة العكسية خاصة بالكائن الذي يتم تنفيذها عليه. ومع ذلك، يوجد هناك 3 خطوات عامة مشتركة لجميع عملياتها. وهذه الخطوات هي:[2]

  • استخراج المعلومات.

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

  • النمذجة.

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

  • المراجعة.

تتضمن هذه الخطوة مراجعة النموذج واختباره في سيناريوهات مختلفة للتأكد من أنه تجريد واقعي للكائن أو النظام الأصلي. في هندسة البرمجيات، قد يأخذ هذا شكل اختبار البرمجيات. وبمجرد اختباره، يمكن تنفيذ النموذج لإعادة هندسته.

4. أمثلة تطبيقية.

تختلف الهندسة العكسية بالاعتماد على ما يتم تطبيقها عليه وبناء على الفائدة التي تقدمها للتكنولوجيا. تشمل الأمثلة الشائعة على الهندسة العكسية ما يلي:[3]

  • البرمجيات.

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

  • قِطَع الحاسوب.

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

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

  • تقييم أمن الشبكات.

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

المصادر:

[1] What Is Reverse Engineering and How Does It Work – AstroMachineWorks.com

[2] How Does Reverse Engineering Work – Insights.GlobalSpec.com

[3] Reverse Engineering – ComputerWorld.com