En informática, Interactive Disassembler (Desensamblador Interactivo), más conocido por su acrónimo IDA, es un desensamblador empleado para ingeniería inversa. Soporta una variedad de formatos ejecutables para diferentes procesadores y sistemas operativos. También puede ser usado como un depurador para ejecutables Windows PE, Mac OS X, Mach-O y Linux ELF. Un plugin de decompilador para programas compilados con C/C++ está disponible a un coste extra. La última versión completa de IDA Pro es comercial (versión 8.4 a junio de 2024), mientras que una versión menos capaz, llamada IDA Free, está disponible para descargar sin coste.IDA Pro 8.4 Freeware Version download
El IDA realiza mucho análisis automático del código, usando referencias cruzadas entre las secciones del código, conocimiento de parámetros de las llamadas del API, y otra información. Sin embargo, la naturaleza del desensamblado imposibilita una exactitud total, y una gran parte de intervención humana es necesariamente requerida; El IDA tiene funcionalidad interactiva para ayudar en la mejora del desensamblado. Un usuario típico del IDA comenzará con un listado de desensamblado automáticamente generado y después convertirá secciones de código a datos y viceversa, renombrará, anotará, y de otra manera agregará información al listado, hasta que se vuelve claro lo que lo hace.
Creado como shareware por Ilfak Guilfanov, IDA fue posteriormente vendido a DataRescue, una compañía belga, que lo mejoró y lo vendió bajo el nombre de IDA Pro. En 2007, Guilfanov fundó Hex-Rays para seguir el desarrollo de la extensión Hex-Rays Decompiler del IDA. En enero de 2008, Hex-Rays asumió el desarrollo y el soporte del IDA Pro de DataRescue.
Guilfanov es el autor principal del IDA (Interactive Disassembler Pro).
Scripting
Los "scripts IDA" hacen posible extender la operación del desensamblador. Son proporcionados Algunos útiles scripts, que pueden servir como la base para scripts escritos por el usuario. Los más frecuentes scripts son usados para la modificación adicional del código generado. Por ejemplo, pueden ser cargadas tablas de símbolos externas de tal modo que se puedan usar los nombres de función del código fuente original. Hay sitios web dedicados a scripts IDA y ofrecen asistencia para problemas que surgen con frecuencia.
Los usuarios han creado plugins que permiten que otros lenguajes de scripting comunes puedan ser usados o agregados al del IDC. IdaRUB soporta Ruby e IDAPython agrega soporte para Python. Desde la versión 5.4, IDAPython (dependiente del Python 2.5) viene preinstalado con el IDA Pro.
Sistemas, procesadores y compiladores soportados
Sistemas operativos x86 GUI Windows x86 Consola Windows x86 GUI Linux x86 Consola Linux x86 GUI Mac OS X x86 Consola Mac OS X ARM Windows CE Formatos de archivos ejecutables PE (Windows) ELF (Linux, la mayoría de *BSD) Mach-O (Mac OS X) Formato .exe de Netware Formato .exe de OS/2 Formato .exe de GEOS DOS/Watcom ejecutable LE (sin DOS extender empotrado) raw binary, como con una imagen ROM Procesadores Familia Intel 80x86 ARM, incluyendo Thumb code Motorola, Inc. 68xxx/h8 Zilog Z80 MOS Technology 6502 Intel i860 DEC Alpha Analog Devices ADSP218x Angstrem KR1878 Atmel AVR series DEC series PDP11 Fujitsu F2MC16L/F2MC16LX Familia de 32 bits de Fujitsu FR 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 Familia Mitsubishi 7700: m7700/m7750 Mitsubishi m32/m32rx Mitsubishi m740 Mitsubishi m7900 Familia Motorola DSP 5600x: dsp561xx/dsp5663xx/dsp566xx/dsp56k Motorola ColdFire Motorola HCS12 NEC 78K0/78K0S PA-RISC PowerPC SGS-Thomson ST20/ST20c4/ST7 Familia SPARC Samsung SAM8 Siemens C166 series TMS320Cxxx series Compilador/Bibliotecas (para reconocimiento automático de funciones de biblioteca) Borland C++ 5.x para DOS/Windows Borland C++ 3.1 Borland C Builder v4 para DOS/Windows GNU C++ para Cygwin Microsoft C Microsoft QuickC Microsoft Visual C++ Watcom C++ (16/32 bit) para DOS/OS2 ARM C v1.2 GNU C++ para Unix/common
Véase también Lenguaje ensamblador Lenguaje ensamblador x86 Ensamblador Desensamblador Compilador Decompilador Depurador
Referencias
Bibliografía
Enlaces externos English-language IDA Pro home page Russian-language IDA Pro home page OpenRCE.org: Large collection of IDA plug-ins and scripts
Categoría:Depuradores Categoría:Software de 1991 Categoría:Diseño de software Categoría:Herramientas de programación informática