الهندسة العكسية (بالإنجليزية: Reverse Engineering) هي آلية تعنى باكتشاف المبادئ التقنية لآلة أو نظام من خلال تحليل بنيته، ووظيفته وطريقة عمله. غالبا ما تتم هذه العملية بتحليل نظام ما (آلة ميكانيكية، برنامج حاسوبي، قطعة إلكترونية) إلى أجزاء أو محاولة إعادة تصنيع نظام مشابه له يقوم بنفس الوظيفة التي يقوم بها النظام الأصلي.
الهندسة العكسية "Reverse Engineering" :
هي آلية تعنى باكتشاف المبادئ التقنية لآلة أو نظام من خلال تحليل بنيته، ووظيفته وطريقة عمله. غالبا ما تتم هذه العملية بتحليل نظام ما (آلة ميكانيكية، برنامج حاسوبي، قطعة إلكترونية) إلى أجزاء أو محاولة إعادة تصنيع نظام مشابه له يقوم بنفس الوظيفة التي يقوم بها النظام الأصلي.
هل يقتصر هذا العلم على البرمجة فقط؟
قطعا لا, فالهندسة العكسية تستخدم في علم الميكانيكا, كان اليابانيون قديما يشترون المحركات الانجليزية و يقومون بفكها و فهم و دراسة اجزائها بانفسهم, ثم يعيدوا تجميعها و صنع محركات محلية مشابهة لنظيراتها الاوروبية.
كما تستخدم ايضا في علم الالكترونيات, و في هذا العلم بالذات, معظم المهندسين يستخدمون الهندسة العكسية لفهم آلية بنية متحكم ما ليقوموا بالاتصال و البرمجة عليه, كما تستخدم في التعرف على الاجزاء الغير معلومة من دائرة كهربائية او الكترونية و معظم استخداماتها هنا تكمن في فهم ارجل الدوائر المتكاملة, لان كثيرا من الشركات لا تقوم بنشر وثيقة تقنية لتلك الدائرة المتكالمة, فتأتي هنا الحاجة للهندسة العكسية لفك غموض تلك الدائرة و التعرف على سبل للتخاطب معها.
الهندسة العكسية في البرمجيات :
هي فرع من فروع هندسة البرمجيات، وتتمثل في مجموع التقنيات والأدوات المستعملة للانطلاق من برنامج قيد العمل والوصول إلى نموذج أو مخطط يسمح بفهم التركيب التكويني للبرنامج والتصرف وطريقة العمل.
الهدف الأساسي يرمي إلى فهم البرنامج من الجانب التكويني وكيفية تصرف البرنامج وذلك ما يسهل على المبرمجين عملية تطوير وصيانة البرامج القديمة و كسر حماية البرامج التي تحتاج إلي ترخيص وأيضا إعادة استعمال بعض الأجزاء في برامج جديدة.
تحتاج إلى خبرة في التعامل مع الذاكرة والمسجلات ووحدة المعالجة المركزية.
هل الهندسة العكسية أمر قانوني أم لا؟
حقيقة, لا أحد يستطيع الجزم بأنه أمر قانوني أو لا, لأن هذا يعتمد على ماذا ستفعل بعد أن تقوم بفهم البرنامج أو التمكن من كسر حمايته. فبعض الناس يمكن أن تستخدم تلك المعلومات في صناعة برنامج آخر يملك نفس المواصفات و المميزات, و غيرهم سيقوم بأخذ الجزء الذي كان مهتم بفهمه ليقوم بتحسينه و وضع النسخة المحسنة في برنامجه, و البعض الاخر يمكن ان يستفيد بتلك المعلومات لاكتشاف ثغرة امنية تمكنه من اختراق مستخدمي البرنامج بدون ابلاغ الشركة المبرمجة للبرنامج. الامثلة كثيرة و النوايا غير معلومة, فلهذا الموضوع يحوي الكثير من الجدال, و لكن اختصارا كل شئ يتوقف على استخدامك للمعلومات التي قمت بمعرفتها بعد كسرك لحماية البرنامج و دراسته.
أذكر هنا واحدة من أشهر القضايا في الهندسة العكسية, بين شركتي سيجا اليابانية المشهورة بصناعة أجهزة الالعاب و ألعاب الفيديو, و شركة أكولاد الأمريكية المبرمجة للألعاب. في عام 1990 قامت شركة سيجا بصناعة جهاز ألعاب الفيديو الحديث حينئذ (جينسيس) و لم تفصح عن أي وثيقة تقنية عن معالج هذا الجهاز حتى لا يمكن لأي شركة أخرى برمجة ألعاب للجهاز الا هي. فقامت شركة أكولاد بعمل هندسة عكسية على معالج الجهاز الحديث جينسيس و قامت بفهم بل و طباعة اول وثيقة تقنية تتحدث عن آلية البرمجة على هذا المعالج, و بدأت بصناعة و بيع ألعاب خاصة بها تعمل على جهاز جينسيس, ولكن سرعان ما أكتشفت سيجا ذلك و قامت برفع قضية دولية على شركة أكولاد, بسبب نشرها وثيقة تفصح فيها عن اسرار و تفاصيل تقنية من شأنها أن تتسبب في خسائر كبيرة للشركة, فأنتهت القضية لصالح شركة أكولاد الامريكية بحجة أن أكولاد لم تهتك أي قانون دولي, بل قامت ببرمجة ربحية للمعالج جينسيس و انتهى الأمر على ذلك.
سأكتفي بهذا القدر, لعل القارئ قد لاحظ اننا لم نركز على اي نقطة تقنية في هذا المقال, بل تطرقنا لفهم الهندسة العكسية بشكل سريع و بسيط, و بأذن الله سأبدأ بكتابة مقال عن الادوات التي استعملها في علم الهندسة العكسية و شرح بسيط لكل أداة, كما سأحاول بأذن الله في المستقبل كتابة مقالات تقنية عن الهندسة العكسية لأوضح أكثر أهمية هذا العلم, حسن أستثماره.
ليست هناك تعليقات:
إرسال تعليق