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

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

Interactive Disassembler
نویسنده(های)
اصلی
ایلفاک گیلفانوف
انتشار پایدار
7.2[۱]
۵ نوامبر ۲۰۱۸؛ ۳ سال پیش (۲۰۱۸-۱۱-05)
نوشته‌شده با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) در لینوکس و او اس اکس و همچنین در دیباگر محلی ویندوز پشتیبانی می‌شود
  • یک پلاگین بوچز برای اشکال زدایی برنامه‌های کاربردی ساده (یعنی یو پی ایکس آسیب دیده یا فایل اجرایی فشره شده‌ام پرس) فراهم شده‌است.
  • یک دیباگر اینتل مبتنی بر پین
  • یک تکرارکننده رد

منابع

  1. IDA: What's new in 7.2 (November 5, 2018)
  2. Hex-rays Home
  3. "About Us". Hex-Rays. 27 February 2012. Archived from the original on 15 February 2016. Retrieved 2 September 2013.
  4. "FLIRT Compiler Support". Hex-Rays.
  5. Eagle, Chris (2008). The IDA Pro Book: The Unofficial Guide to the World's Most Popular Disassembler. No Starch Press. ISBN 978-1-59327-178-7.
  1. IDA: چه چیزی در ورژن ۷٫۲ جدید است(۵ نوامبر ۲۰۱۸)
  2. خانه Hex-rays
  3. دانلود رایگان نرم‌افزار IDA Pro
  4. "درباره ما" بایگانی‌شده در ۱۵ فوریه ۲۰۱۶ توسط Wayback Machine.Hex-Rays. فوریه ۲۵ سال ۲۰۱۲. بازیابی ۲ سپتامبر ۲۰۱۳
  5. "پشتیبانی از کامپایلر FLIRT". هکس ریز
  6. (Eagle, Chris (2008. کتاب IDA Pro: راهنما غیررسمی به محبوب‌ترین دیس اسمبلر دنیا.