El desensamblador interactivo ( IDA ) es un desensamblador para software de computadora que genera código fuente en lenguaje ensamblador a partir de código ejecutable por máquina. Admite una variedad de formatos ejecutables para diferentes procesadores y sistemas operativos . También se puede utilizar como depurador para ejecutables de Windows PE , Mac OS X Mach-O y Linux ELF . Un decompilador plug-in para programas compilados con un C / C ++ compilador está disponible a un costo adicional. La última versión completa de IDA Pro es comercial, mientras que una versión anterior y menos capaz está disponible para descargar de forma gratuita (versión 7.6 a partir de marzo de 2021 [actualizar]). [3]
Autor (es) original (es) | Ilfak Guilfanov |
---|---|
Lanzamiento estable | 7.6 [1] / 22 de marzo de 2021 |
Escrito en | C ++ [2] |
Sistema operativo | Microsoft Windows , Mac OS X y Linux |
Disponible en | Inglés , ruso |
Tipo | Desensamblador |
Licencia | Propiedad |
Sitio web | www |
IDA realiza análisis de código automático, utilizando referencias cruzadas entre secciones de código, conocimiento de los parámetros de las llamadas a API y otra información. Sin embargo, la naturaleza del desmontaje impide una precisión total, y se requiere necesariamente una gran cantidad de intervención humana; IDA tiene una funcionalidad interactiva para ayudar a mejorar el desmontaje. Un usuario típico de IDA comenzará con una lista de desmontaje generada automáticamente y luego convertirá secciones de código a datos y viceversa, cambiará el nombre, anotará y agregará información a la lista, hasta que quede claro lo que hace.
Creada como una aplicación shareware por Ilfak Guilfanov , IDA fue posteriormente vendida como producto comercial por DataRescue, una empresa belga , que la mejoró y vendió con el nombre IDA Pro. En 2005, Guilfanov fundó Hex-Rays para perseguir el desarrollo de la extensión IDA Decompiler Hex-Rays. En enero de 2008, Hex-Rays asumió el desarrollo y el soporte de IDA Pro de DataRescue. [4]
Scripting
Los "scripts IDC" permiten ampliar la operación de desmontaje. Se proporcionan algunas secuencias de comandos útiles, que pueden servir como base para las secuencias de comandos escritas por el usuario. Con mayor frecuencia, los scripts se utilizan para modificaciones adicionales del código generado. Por ejemplo, las tablas de símbolos externos se pueden cargar utilizando los nombres de función del código fuente original.
Los usuarios han creado complementos que permiten utilizar otros lenguajes de secuencias de comandos comunes en lugar o además de IDC. IdaRUB admite Ruby e IDAPython agrega soporte para Python . A partir de la versión 5.4, IDAPython (que depende de Python 2.5) viene preinstalado con IDA Pro.
Sistemas / procesadores / compiladores compatibles
- Hosts del sistema
- Windows x86 y ARM
- Linux x86
- Mac OS X x86
- Formatos de archivo ejecutables reconocidos
- COFF y derivados, incluido Win32 / 64 / genérico PE
- ELF y derivados (genéricos)
- Mach-O ( Mach )
- NLM ( NetWare )
- LC / LE / LX (OS / 2 3.xy varios extensores DOS)
- NE (OS / 2 2.x, Win16 y varios extensores de DOS)
- MZ ( MS-DOS )
- OMF y derivados (genérico)
- AIM (genérico)
- binario sin formato, como una imagen ROM o un archivo COM
- Conjuntos de instrucciones
- Familia Intel 80x86
- Arquitectura ARM
- Motorola 68k y H8
- Zilog Z80
- MOS 6502
- Intel i860
- DEC Alpha
- Dispositivos analógicos ADSP218x
- Angstrem KR1878
- Serie Atmel AVR
- Serie DEC PDP11
- Fujitsu F2MC16L / F2MC16LX
- Familia Fujitsu FR de 32 bits
- Hitachi SH3 / SH3B / SH4 / SH4B
- Hitachi H8: h8300 / h8300a / h8s300 / h8500
- Serie Intel 196: 80196 / 80196NP
- Serie Intel 51: 8051 / 80251b / 80251s / 80930b / 80930s
- Serie Intel i960
- Serie Intel Itanium (ia64)
- Máquina virtual de Java
- MIPS: mipsb / mipsl / mipsr / mipsrl / r5900b / r5900l
- PIC del microchip: 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
- Familia Xenon PowerPC
- SGS-Thomson ST20 / ST20c4 / ST7
- Familia SPARC
- Samsung SAM8
- Serie Siemens C166
- Serie TMS320Cxxx
- Compilador / bibliotecas (para el reconocimiento automático de funciones de biblioteca) [5]
- 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 bits) para DOS / OS2
- ARM C v1.2
- GNU C ++ para Unix / común
Depuración
IDA Pro admite varios depuradores, [6] que incluyen:
- Las aplicaciones remotas de Windows, Linux y Mac (proporcionadas por Hex-Rays) permiten ejecutar un ejecutable en su entorno nativo (presumiblemente usando una máquina virtual para malware)
- GNU Debugger (gdb) es compatible con Linux y OS X, así como con el depurador nativo de Windows
- Se proporciona un complemento de Bochs para depurar aplicaciones simples (es decir, ejecutables compactados UPX o mpress dañados )
- Un depurador basado en PIN de Intel
- Un reproductor de seguimiento
Ver también
- Ghidra
- JEB
- Radare2
- Ninja binario
Referencias
- ^ Publicación de IDA 7.6 (22 de marzo de 2021)
- ^ Inicio de rayos hexagonales
- ^ Descarga de la versión gratuita IDA Pro 7.6
- ^ "Acerca de nosotros" . Rayos hexagonales. 27 de febrero de 2012 . Consultado el 2 de septiembre de 2013 .
- ^ "Soporte del compilador FLIRT" . Rayos hexagonales.
- ^ Águila, Chris (2008). The IDA Pro Book: La guía no oficial del desensamblador más popular del mundo . Sin prensa de almidón . ISBN 978-1-59327-178-7.
Otras lecturas
- Eilam, Eldad (2005). Inversión: secretos de la ingeniería inversa . Wiley Publishing . pag. 595. ISBN 0-7645-7481-7.
enlaces externos
- Página web oficial
- "IDA Pro" (en ruso).
- "Scripts y complementos IDA" . Ingeniería de código inverso abierto (OpenRCE) .