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

المُفكك التفاعلي ( 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