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

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

هذه ليس اول لمحة من لمحات الهندسة العكسية علي غرار البرمجيات ايضا كان اليابانيون قديما يشترون المحركات الانجليزية و يقومون بفكها و فهم و دراسة اجزائها بانفسهم, ثم يعيدوا تجميعها و صنع محركات محلية مشابهة لنظيراتها الاوروبية.

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

ادوات الهندسة العكسية :
يبدأ القيام بهندسة الكود العكسي بفهم معنى كل بت وكل بايت و تطورت الهندسة العكسية مع الأدوات التي
يتم تحديثها باستمرار عند مواجهة تقنية برمجية جديدة وتم تصنيف هذه الأدوات إلى أدوات تحليل ثنائية (binary analysis) ، ومفككات (decompilers)، ومصححات (debuggers)، وأدوات مراقبة (monitoring).

Binary analysis tools :
الكود الثنائي (binary) هو الشكل الأساسي لبيانات البرمجة التي يتم تفسيرها مباشرة بواسطة الكمبيوتر. وهي تتألف من سلسلة من 0 و 1 ، ومرتبة ومنظمة بطريقة يمكن قراءتها وتنفيذها كجزء من برنامج كمبيوتر أكبر. إنه نتاج عملية تجميع متعددة ولا يتم استخدامها من قبل المبرمجين هذه الايام ويتم استخدام لغات عالية المستوي بدلا منها مثل java وهنا يأتي دور ال compiler وهو المترجم الذي يقوم بتحويل لغة java او اي لغة برمجية اخري الي لغة الاله بدون تدخل منك .

Debuggers :
هو برنامج يستخدم لتتبع عمل البرامج و كيفية تنفيذ التعليمات و الأوامر من جهة المعالج. و من هذا المنطلق احتاجه اصحاب البحث عن ثغرات البرامج لمعرفة تنفيذ و سيل البرنامج للتلاعب في هذه الجزئية تحديدا.

ادوات المراقبة Monitoring :
تُستخدم لمراقبة سلوكيات النظام فيما يتعلق بالملف والتسجيل والتغير الذي يحدث في الذاكرة والشبكة، ثم يتم إنشاء معلومات تسجيل الدخول مثل العمليات التي تم إنشاؤها حديثًا والملفات المحدثة وإدخالات التسجيل الجديدة وجمعها في مجلد للفحص .

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

المشاركات المتشابهة

الردود
0
المشاهدات
9
الردود
0
المشاهدات
20
الردود
0
المشاهدات
12
الردود
0
المشاهدات
9
الردود
0
المشاهدات
29
الوسوم : الوسوم
reverse engineering الهندسة العكسية
عودة
أعلى