القائمة الرئيسية

الصفحات

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

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

الهندسة العكسية (Reverse Engineering)  في عالم الكمبيوتر والبرمجيات معناها بِشَكْل مختصر، فن تحليل البرمجيات المغلقة المصدر للتعديل عليها، مثلاً البرامج والتطبيقات المدفوعة مثل الفوتوشوب وغيره من البرامج المدفوعة يتم التعديل عليها لتصبح مجانية من خلال ترقيعها بعمل باتش  Patch لها أو كراك Crack او سيريال نمبر Serial Number. . . إلخ لتعمل بشكل مجاني.

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

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

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

متطلبات الهندسة العكسية

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

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

تستخدم أدوات وبرامج منها ما هو لمعرفة اللغة البرمجية المستخدمة في صنع التطبيق أو البرنامج، وأدوات لإظهار الكود بلغة الاسمبلي، وأدوات لصنع الكراك وللباتش إلخ.
من أشهر البرامج المستخدمة في الهندسة العكسية 
  • برنامج ollydbg لإظهار أكواد البرامج والتطبيقات بلغة الاسمبلي. 
  • برنامج pied لمعرفة اللغة البرمجية المستخدمة في صنع البرنامج أو التطبيقات.
  •  برنامج hexeditor للتعديل على كود البرنامج الأصلي بالاسمبلي.

من الكتب الجيدة لتوضيح الفكرة كتاب سلسلة دروس الهندسه العكسيه الترقيع البسيط، عدد الصفحات 17 صفحه ، عباره عن شرح مبسط على نموذج برنامج يطلب كلمة مرور  ليعمل وطريقة كسرهذا البرنامج، (من هنا).


الي هنا نكون قد انتهينا، نراكم في موضوع آخر، فلا تنسونا من نشر المقال لتعم الفائدة.