تعرف الهندسة العكسية بأنها فعل تحويل الشيء إلى أجزاء لمعرفة كيفية عمله. ويتم ذلك في المقام الأول لتحليل واكتساب المعرفة حول الطريقة التي يعمل بها شيء ما.

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

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


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

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

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

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

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

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

الهندسة العكسية هي عملية أو طريقة يحاول فيها محلل النظم ومهندس الأنظمة من خلالها أن يفهم من خلال التفكير الاستنتاجي كيف ينجز جهاز أو عملية أو نظام أو قطعة من البرامج أو المعدات التي تم إنشاؤها مسبقًا قيامها بوظائفها.

وهناك العديد من الأسباب لإجراء الهندسة العكسية في مختلف المجالات. فالهندسة العكسية لها أصولها في تحليل الأجهزة لتحقيق التقدم النوعي والتكنولوجي والتقني.

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

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

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

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

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

أما في النمذجة والمحاكاة، يتم تجريد المعلومات التي تم جمعها في نموذج مفاهيمي، مع كل جزء من النموذج يشرح وظيفته في الهيكل العام.

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

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

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

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

تستخدم الهندسة العكسية في مجموعة متنوعة من المجالات، ولها أصولها في تحليل الأجهزة والأنظمة لتحقيق ميزة تجارية أو عسكرية.

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

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