تقييم الموضوع :
  • 1 أصوات - بمعدل 5
  • 1
  • 2
  • 3
  • 4
  • 5
دورة الهندسة العكسية من الصفر حتى الاحتراف
#3
الدرس الثاني - ب

ما هو الفرق بين Decompiler و Disassembler ؟

يخلط الكثيرين بين كلمة decompiler و disassembler ويستخدم البعض الكلمتين بالتبادل رغم ان هناك فروق بينهما كما سنبين.
  • Disassembler: يحول الكود البرمجي من لغة الآلة binary الى لغة Assembly والكود يكون اطول واصعب في القراءة من الكود المكتوب باللغات العالية المستوى، لان الاسمبلي لغة من الجيل الثاني ولكنها اسهل وأقصر من لغة الآلة (الجيل الاول) ويستخدم الديسمبلر لتحليل التعليمات البرمجية بشكل تابث (static) يعني بدون تشغيل البرنامج ومن امثلتها اداة: Cutter و hopper و Mocha.
باختصار Disassembler يقوم بعكس ما قام به الـ Assembler.
  • Decompiler: يحول الكود البرمجي من لغة الآلة binary الى (source code) مكتوب بأحدى اللغات العالية المستوى (الجيل الثالث) يستطيع الانسان فهمها مثل: JAVA او C++ او Delphi. ومن امثلة ادوات ديكومبايلر: Hopper و DejaVu و Mocha.
باختصار Decompiler يقوم بعكس ما قام به الـ Compiler


بعض الادوات او البرامج المتوفرة مثل (IDA و JEB ) بها decompiler و disassembler بمعنى تمتلك القدرة على تحويل الكود الى لغات المستوى الثاني والثالث كما تتوفر على خاصية debugging لتحليل الكود وتتبع تدفق البيانات.

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

يستخدم المصحح لتحليل التعليمات البرمجية بشكل ديناميكي (dynamic) يعني أثناء عمل البرنامج، ومن امثلتها: gdb, x64dbg.
أعضاء أعجبوا بهذه المشاركة : the9am3 , PowerUser , Tareq.a , Cyperior , samoray , rce3033 , Str0x , xdvb_dz , azarol


الردود في هذا الموضوع
RE: دورة الهندسة العكسية من الصفر حتى الاحتراف - بواسطة ehab85 - 08-04-2021, 02:48 PM

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 3 ) ضيف كريم