مفكك تفاعلي أيدا (برمجية)

**المُفكك التفاعلي** ( **IDA** ) هو مُفكك لبرامج الكمبيوتر والذي يقوم بإنشاء كود مصدر لغة التجميع من كود قابل للتنفيذ بواسطة الجهاز . يدعم مجموعة متنوعة من التنسيقات القابلة للتنفيذ للمعالجات وأنظمة التشغيل المختلفة. يمكن أيضًا استخدامه كمصحح أخطاء (Debugger) لأنظمة التشغيل مثل Windows PE وMac OS X Mach-O وملفات Linux ELF القابلة للتنفيذ. كما يتوفر مكون إضافي لدعم فك التجميع (Disassembly).، والذي يقوم بإنشاء تمثيل عالي المستوى يشبه كود المصدر C للبرنامج الذي تم تحليله، مقابل تكلفة إضافية.  

تُستخدم IDA على نطاق واسع في الهندسة العكسية للبرمجيات، بما في ذلك تحليل البرامج الضارة   وأبحاث نقاط ضعف البرمجيات .  يشار إلى IDA باسم "مفكك المعايير الصناعية الفعلية".    

## تاريخ
بدأ *إلفاك جيلفانوف* تطوير IDA في عام 1990، ووزّعه في البداية كتطبيق مشترك (Shareware). وفي عام 1996، تولت شركة *DataRescue* البلجيكية تطوير البرنامج وطرحه كمنتج تجاري تحت اسم *IDA Pro*.

لم تكن الإصدارات الأولية من IDA تحتوي على واجهة مستخدم رسومية (GUI) ، وتم تشغيلها كتطبيق وحدة تحكم ممتد لنظام DOS أو OS/2 أو Windows.  في عام 1999، أصدرت DataRescue الإصدار الأول من IDA Pro مع واجهة المستخدم الرسومية، IDA Pro 4.0. 

في عام 2005، أسس جيلفانوف شركة Hex-Rays لمتابعة تطوير ملحق Hex-Rays Decompiler IDA.   في يناير 2008، تولت شركة Hex-Rays تطوير ودعم برنامج IDA Pro الخاص بـ DataRescue.  

في عام 2022، استحوذت شركة Smartfin، وهي شركة أوروبية لرأس المال الاستثماري والأسهم الخاصة، على شركة Hex-Rays.  

## سمات
يقوم *IDA* بتحويل البرامج المترجمة إلى تمثيل بلغة التجميع (Assembly). وإلى جانب التفكيك الأساسي، يضيف *IDA* تلقائيًا شروحات إلى البرامج المفككة، متضمنة معلومات حول:

* المراجع المتبادلة بين الكود والبيانات في البرنامج
* مواقع الوظائف، وإطارات مكدس الوظائف، واتفاقيات استدعاء الوظائف
* أنواع البيانات المعاد بناؤها

ومع ذلك، فإن طبيعة التفكيك تحول دون تحقيق الدقة الكاملة، مما يستلزم تدخلًا بشريًا كبيرًا. يوفر IDA وظيفة تفاعلية لدعم تحسين عملية التفكيك. يبدأ المستخدم عادةً بقائمة تفكيك تُنشأ تلقائيًا، ثم يقوم بتحويل الأقسام بين الكود والبيانات والعكس، إضافة إلى إعادة التسمية، والتعليق، وإدخال معلومات إضافية، حتى تتضح وظائف البرنامج بشكل كامل.

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

قام المستخدمون بإنشاء مكونات إضافية تسمح باستخدام لغات برمجة نصية شائعة أخرى بدلاً من IDC أو بالإضافة إليها. يدعم IdaRUB  لغة Ruby ويضيف IDAPython  دعمًا لـ Python . اعتبارًا من الإصدار 5.4، يأتي IDAPython (المعتمد على Python 2.5) مثبتًا مسبقًا مع IDA Pro.

### مصحح الأخطاء
يدعم *IDA Pro* مجموعة من أدوات تصحيح الأخطاء (Debugging tools)، بما في ذلك:

* تتيح تطبيقات Windows وLinux وMac البعيدة (التي توفرها Hex-Rays) تشغيل ملف قابل للتنفيذ في بيئته الأصلية (من المفترض باستخدام جهاز افتراضي للبرامج الضارة)
* يتم دعم GNU Debugger (gdb) على Linux وOS X، بالإضافة إلى مصحح أخطاء Windows الأصلي
* يتم توفير مكون إضافي لـ Bochs لتصحيح أخطاء التطبيقات البسيطة (على سبيل المثال، ملفات UPX التالفة أو الملفات المضغوطة المضغوطة mpress)
* مصحح أخطاء يعتمد على PIN من Intel
* إعادة تشغيل التتبع

الإصدار الأحدث من IDA Pro هو إصدار تجاري (الإصدار 8.4 اعتبارًا من يونيو 2024)، بينما يتوفر إصدار محدود القدرات، يُعرف باسم IDA Free، للتنزيل مجانًا.

## الأنظمة/المعالجات/المُجمِّعات المدعومة

* System hosts
** Windows x86 and ARM
** Linux x86
**  x86
* Recognized executable file formats
** COFF and derivatives, including Win32/64/generic PE
** ELF and derivatives (generic)
** Mach-O (Mach)
** NLM (NetWare)
** LC/LE/LX (OS/2 2.x+ and various DOS extenders)
** NE (OS/2 1.x, Win16, and various DOS extenders)
** MZ (MS-DOS)
** OMF and derivatives (generic)
** AIM (generic)
** raw binary, such as a ROM image or a COM file
* Instruction sets
** Intel 80x86 family
** ARM architecture
** Motorola 68k and H8
** Zilog Z80
** MOS 6502
** Intel i860
** DEC Alpha
** Analog Devices ADSP218x
** Angstrem KR1878
** Atmel AVR series
** DEC series PDP11
** Fujitsu F2MC16L/F2MC16LX
** Fujitsu FR 32-bit Family
** Hitachi SH3/SH3B/SH4/SH4B
** Hitachi H8: h8300/h8300a/h8s300/h8500
** Intel 196 series: 80196/80196NP
** Intel 51 series: 8051/80251b/80251s/80930b/80930s
** Intel i960 series
** Intel Itanium (ia64) series
** Java virtual machine
** MIPS: mipsb/mipsl/mipsr/mipsrl/r5900b/r5900l
** Microchip PIC: PIC12Cxx/PIC16Cxx/PIC18Cxx
** MSIL
** Mitsubishi 7700 Family: m7700/m7750
** Mitsubishi m32/m32rx
** Mitsubishi m740
** Mitsubishi m7900
** Motorola DSP 5600x Family: dsp561xx/dsp5663xx/dsp566xx/dsp56k
** Motorola ColdFire
** Motorola HCS12
** NEC 78K0/78K0S
** PA-RISC
** PowerPC
** Xenon PowerPC Family
** SGS-Thomson ST20/ST20c4/ST7
** SPARC Family
** Samsung SAM8
** Siemens C166
** TMS320Cxxx series
* Compiler/libraries (for automatic library function recognition)
** Borland C++ 5.x for DOS/Windows
** Borland C++ 3.1
** Borland C Builder v4 for DOS/Windows
** GNU C++ for Cygwin
** Microsoft C
** Microsoft QuickC
** Microsoft Visual C++
** Watcom C/C++ (16/32 bit) for DOS/OS2
** ARM C v1.2
** GNU C++ for Unix/common

## الشعار
شعار IDA Pro هو صورة مقصوصة لفرانسواز دوبيني، ماركيز دي ماينتنون . صورة الشعار تشبه لوحة مصغرة لفرانسواز دوبيني التي تم توثيقها لرسام في دائرة بيير مينارد . 

تم تقديم النسخة الأصلية ذات اللون الرمادي من الشعار في سبتمبر 1999، مع إصدار IDA 4.0.  صرح إلفاك جيلفانوف أن الشعار ليس تصويرًا للقديسة إيدا من لوفين . 

## انظر أيضا

* النينجا الثنائية
* محرك الغش
* غيدرا
* جيب
* رادار2

## مراجع
 

## قراءة إضافية

* 

## روابط خارجية

* 
* 
* 

تصنيف:برمجيات 1991