مجزاکننده تعاملی

مجزاکننده تعاملی یا آی دی ای IDA (به انگلیسی: (Interactive Disassembler) یک مجزاکننده یا دیس اسمبلر (به انگلیسی: Disassembler) است برای نرم‌افزار کامپیوتر که از فایل اجرایی زبان ماشین، کد اسمبلی آن را تولید می‌کند. این مجزاکننده فرمت‌های مختلفی از فایل اجرایی را برای سیستم عامل‌ها و پردازنده‌های متفاوت پشتیبانی می‌کند. هم چنین می‌تواند به عنوان یک اشکال‌یاب (برنامه‌نویسی) برای ویندوز پی‌ای، مک‌اواس‌اکس Mach-O و لینوکس ELF اجرایی استفاده شود. یک مترجم وارون یا دی کامپایلر متصل برای برنامه‌های کامپایل شده با کامپایلر زبان C یا ++C, با هزینه اضافی موجود است. آخرین نسخه کامل مجزاکننده تأثیرگذار حرفه‌ای تجاری است؛ درحالی که یک نسخه قدیمی و کم توان تر به‌طور رایگان در دسترس است. (نسخه ۷٫۰ فوریه ۲۰۱۸)
IDA با استفاده از ارجاع متقابل بین قسمت‌های کد و دانش پارامترهای فراخوانی‌های ای پی آی و اطلاعات دیگر، یک تجزیه کد اتوماتیک انجام می‌دهند. یا این حال طبیعت مجزا کردن مانع درستی کامل کد تولید شده می‌شود و به مقدار زیادی مداخله انسان نیاز است؛IDA دارای تأثیر کارآمدی با هدف بهتر کردن مجزا کردن (دیس اسمبل کردن) است. یک کاربر عادی IDA یا یک فهرست از مجزاهای اتوماتیک تولید شده شروع می‌کند و سپس قسمت‌های کد را به داده تبدیل کرده و تا زمانی که مشخص شود کد چه کاری انجام می‌دهد، داده‌هایی که برعکس و تغییر نام داده و حاشیه‌نویس نیستند را به فهرست اضافه می‌کند.

IDA که توسط ایلفاک گیلفانوف به عنوان یک نرم‌افزار رایگان shareware به وجود آمده بود، بعداً به عنوان یک محصول تجاری توسط شرکت بلژیکی دیتا رسکیو فروخته شد. این شرکت آن را ارتقا دادند و با نام آی دی ای پرو فروختند. در سال ۲۰۰۵، گیلفانوف هکس ریز(Hex-Rays) را پیدا کرد تا به دنبال توسعه افزونه IDA دی کامپایلر هکس ریز برود. در ژانویه ۲۰۰۸،هکس ریز توسعه و پشتیبانی IDA Pro دیتا رسکیو را پذیرفت.

اسکریپت 
اسکریپت‌های IDC امکان گسترش عملیات دیس اسمبلر را ممکن می‌کند. بعضی اسکریپت‌های آماده فراهم شده‌اند که می‌توانند به عنوان پایه برای اسکریپت‌های نوشته شده توسط کاربران استفاده شوند. اغلب اسکریپت‌ها برای توضیح بیشتر کد تولید شده‌استفاده می‌شوند. به‌طور مثال جداول نماد خارجی می‌توان با استفاده از نام‌های تابع در کد اصلی بارگذاری کرد. وب سایت‌هایی هستند که به اسکریپت‌های IDA اختصاص داده شده‌اند و برای مشکلات مکرری که به وجود می‌آیند، پیشنهاد کمک می‌کنند.

کاربران پلاگین‌هایی ای ایجاد کرده‌اند که به دیگر زبان‌های اسکریپت‌نویسی اجازه می‌دهد تا در کنار یا به جای آی دی سی استفاده شوند. IdaRUB(یک پلاگین IDA است) از روبی پشتیبانی می‌کند و IDAPython پشتیبانی از پایتون را اضافه می‌کند. از نسخه ۵٫۴، IDAPython (وابسته به پایتون ۲٫۵) با IDA Pro پیش نصب شده‌است.

سیستم‌های پشتیبانی / پردازنده / کامپایلرها 
 سیستم‌های میزبان
 ویندوز اکس ۸۶ و آرم
 لینوکس اکس ۸۶
 مک او اس اکس اکس ۸۶
 فرمت فایل‌های اجرایی قابل شناسایی
 COFF و مشتقاتش شامل پی ای(PE) ویندوز ۳۲ و ۶۴ و عمومی
 ELF و مشتقات (عمومی)
 (Mach-O(Mach
 (NLM NetWare
 (توسعه دهنده‌های مختلف داس و LC/LE/LX (OS/2 3.x
 (ویندوز ۱۶ و توسعه دهنده‌های مختلف داس و NE (OS/2 2.x
 MZ (ام اس-داس)
 OMF و مشتقات (عمومی)
 AIM (عمومی)
 باینری خام مثل یک تصویر ROM یا یک فایل COM
 مجموعه آموزشی
 خانواده ۸۰اکس۸۶ اینتل
 معماری ARM
 موتورولا سری ۶۸۰۰۰ و H8
 زیلاگ Z80
 MOS 6502
 اینتل i860
 دک آلفا
 ذستگاه‌های آنالوگ ADSP218x
 انگسترم KR1878
 اتمل سری ای وی آر
 دک سری PDP11
 فوجیتسو F2MC16L/F2MC16LX
 فوجیتسو خانواده ۳۲-بیت FR
 هیتاچی SH3 / SH3B / SH4 / SH4B
 هیتاچی H8: h8300 / h8300a / h8s300 / h8500
 اینتل سری ۱۹۶: 80196 / 80196NP
 اینتل سری ۵۱: 8051 / 80251b / 80251s / 80930b / 80930s
 اینتل سری i960
 اینتل سری ایتانیوم (ia64)
 ماشین مجازی جاوا
 میپس: mipsb / mipsl / mipsr / mipsrl / r5900b / r5900l
 مایکروچیپ پیک: PIC12Cxx / PIC16Cxx / PIC18Cxx
 زبان میانی مشترک
 میتسوبیشی خانواده 7700: m7700 / m7750
 میتسوبیشی m32 / m32rx
 میتسوبیشی m740
 میتسوبیشی m7900
 موتورولا خانواده DSP 5600x: dsp561xx / dsp5663xx / dsp566xx / dsp56k
 موتورولا ColdFire
 موتورولا HCS12
 NEC 78K0 / 78K0S
 PA-RISC
 PowerPC
 خانواده پروتکل Xenon PowerPC
 SGS-Thomson ST20 / ST20c4 / ST7
 خانواده اسپارک
 سامسونگ SAM8
 زیمنس C166 سری
 سری TMS320Cxxx
 کامپایلر / کتابخانه‌ها (برای به رسمیت شناختن عملکرد خودکار کتابخانه)
 Borland C ++ 5.x برای داس / ویندوز
 Borland C ++ 3.1
 Borland C Builder v4 برای داس / ویندوز
 ++GNU C برای Cygwin
 مایکروسافت C
 مایروسافت QuickC
 مایکروسافت ویژوال C ++
 (بیتیWatcom C ++(۱۶/۳۲ برای داس / او اس ۲
 ARM C v1.2
 ++GNU C برای یونیکس / رایج

اشکال زدایی 
IDA Pro تعدادی اشکال یاب‌ها (دیباگرها) را پشتیبانی می‌کند، از جمله:
 برنامه‌های کاربردی از راه دور ویندوز، لینوکس و مک (ارائه شده توسط Hex-Rays) اجازه اجرای یک فایل اجرایی را در محیط محلی خود (احتمالاً با استفاده از یک ماشین مجازی برای نرم‌افزارهای مخرب) می‌دهد
 گنو دیباگر (gdb) در لینوکس و او اس اکس و همچنین در دیباگر محلی ویندوز پشتیبانی می‌شود
 یک پلاگین بوچز برای اشکال زدایی برنامه‌های کاربردی ساده (یعنی یو پی ایکس آسیب دیده یا فایل اجرایی فشره شده‌ام پرس) فراهم شده‌است.
 یک دیباگر اینتل مبتنی بر پین
 یک تکرارکننده رد

منابع 

 IDA: چه چیزی در ورژن ۷٫۲ جدید است(۵ نوامبر ۲۰۱۸)
 خانه Hex-rays
 دانلود رایگان نرم‌افزار IDA Pro
 "درباره ما" .Hex-Rays. فوریه ۲۵ سال ۲۰۱۲. بازیابی ۲ سپتامبر ۲۰۱۳
 "پشتیبانی از کامپایلر FLIRT". هکس ریز
 (Eagle, Chris (2008. کتاب IDA Pro: راهنما غیررسمی به محبوب‌ترین دیس اسمبلر دنیا.

برای مطالعهٔ بیشتر

پیوند به بیرون 
 English-language IDA Pro home page
 Russian-language IDA Pro home page
 OpenRCE.org: Large collection of IDA plug-ins and scripts

اشکال‌یاب (برنامه‌نویسی)
دیس‌اسمبلرها