دیس‌اسمبلر: تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
Fatemibot (بحث | مشارکت‌ها)
جز ربات ردهٔ همسنگ (۳۰) +مرتب (۱۴.۹ core): + رده:مهندسی معکوس
FreshmanBot (بحث | مشارکت‌ها)
جز اصلاح فاصله مجازی + اصلاح نویسه با ویرایشگر خودکار فارسی
خط ۲:
 
'''دیس اسمبلر''' {{به انگلیسی|Disassembler}} برنامه‌ای کامپیوتری است که [[زبان ماشین]] را به [[زبان اسمبلی]] ترجمه می‌کند، عملیات معکوس آن از یک اسمبلر است.
یک دیس اسمبلر با دی کامپایلر تفاوت‌هایی دارد که هدف یک زبان سطح بالا به جای زبان اسمبلی است. جداسازی قطعات، خروجی از یک اسمبلر اغلب برای انسان فرمت بندی شده است_قابلیتشده‌است_قابلیت خواندن به جای مناسب بودن برای ورودی به اسمبلر، آن را عمدتاً یک ابزار [[مهندسی معکوس]] می‌سازد.
 
[[کد منبع]] زبان اسمبلی به‌طور کلی مجاز به استفاده از ثابت‌ها و نظرات [[برنامه‌نویس]] است؛ که اینها معمولاً از [[کد زبان]] ماشین گردآوری شده توسط اسمبلر حذف می‌شود. در اینصورت، عامل دیس اسمبلر در کد ماشین، قطعات جداسازی تولید شده فاقد این ثبات‌ها و نظرات می‌گردد؛ خروجی دیس اسمبل شده جدا دشوارتر می‌شود برای انسان که آن را به کد منبع تفسیر شده اصل ترجمه کند. برخی دیس اسمبلرها امکان استفاده از اطلاعات [[اشکال زدایی]] نمادین را در فایلهای شی(object file) مانندELF را می‌دهد. محاوره اسمبلر اجازه می‌دهد به کاربر انسان تا کاراکتر حافظه‌ای برای ارزشهاارزش‌ها یا مناطقی از کد در یک قسمت تعاملی تشکیل دهد. بینش انسان اعمال شده به فرایند جداسازی قطعات، اغلب به موازات خلاقیت انسان در روند نوشتن کد است.
 
جداسازی قطعات یک علم دقیق نیست:در [[سیستم عامل]] هایCISC با دستورالعمل متغیر عرض، ویا در صورت وجود کد خود متغیر، ممکن است برای یک برنامه واحد به دو یا تعداد بیشتری جداسازی قطعات معقول تر نیاز پیدا کنیم. تعیین دستورالعمل که در واقع مواجه شده‌است در طی یک اجرا از این برنامه ثبات قابل حل را به مشکل توقف شده کاهش می‌دهد.
خط ۱۲:
 
== نمونه‌هایی از دیس اسمبلرها ==
اسمبلر ممکن است به تنهایی یا تعاملی باشد. یک دی اسمبلر مستقل به هنگام اجرا یک فایل زبان اسمبلی تولید می‌کند که می‌تواند مورد بررسی قرار گیرد. یک تعاملی نشان می‌دهد تأثیر دو گونه تغییر کاربر را فوراً. به عنوان مثال، اسمبلر ممکن است در ابتدا نمی‌دانند که یک بخش از برنامه است که در واقع کد و درمان آن را به عنوان داده. در صورتی که کاربر مشخص می‌کند که در آن فعال است، در نتیجه کد جدا شده است،شده‌است، بلافاصله نشان داده شده است،شده‌است، اجازه می‌دهد تا کاربر را به بررسی آن و برداشتن گام‌های بیشتر در همان اجرا. هر دیباگر تعاملی برخی از راه دیدن جداسازی قطعات از برنامه در حال debugged باشد. اغلب، ابزار جداسازی قطعات همان خواهد شد که به عنوان یک اسمبلر مستقل توزیع همراه با دیباگر [[بسته‌بندی]] شده. به عنوان مثال، objdump، بخشی از GNU Binutils هستند، به GDB دیباگر تعاملی مرتبط.
IDA