El Desensamblador Interactivo ( IDA ) es un desensamblador de software que genera código fuente en lenguaje ensamblador a partir de código ejecutable . Admite diversos formatos ejecutables para diferentes procesadores y sistemas operativos . También puede utilizarse como depurador para ejecutables Windows PE , Mac OS X Mach-O y Linux ELF . Existe un complemento de descompilación , disponible con un coste adicional, que genera una representación de alto nivel, similar al código fuente en C , del programa analizado. [ 4 ] [ 5 ]
IDA se utiliza ampliamente en la ingeniería inversa de software , incluyendo el análisis de malware [ 6 ] [ 7 ] y la investigación de vulnerabilidades de software . [ 8 ] [ 9 ] El descompilador de IDA es uno de los marcos de descompilación más populares y ampliamente utilizados, [ 10 ] [ 11 ] [ 12 ] y IDA ha sido llamado el "estándar de facto de la industria" para el desensamblaje de programas y el análisis binario estático. [ 13 ] [ 14 ] [ 15 ]
Historia
Ilfak Guilfanov comenzó a trabajar en IDA en 1990, [ 16 ] [ 17 ] [ 18 ] [ 19 ] e inicialmente lo distribuyó como una aplicación shareware . En 1996, la empresa belga DataRescue se hizo cargo del desarrollo de IDA y comenzó a venderlo como un producto comercial, bajo el nombre de IDA Pro. [ 20 ] [ 21 ]
Las versiones iniciales de IDA no tenían una interfaz gráfica de usuario (GUI) y se ejecutaban como una aplicación de consola extendida de DOS , OS/2 o Windows . [ 22 ] En 1999, DataRescue lanzó la primera versión de IDA Pro con una GUI, IDA Pro 4.0. [ 23 ]
En 2005, Guilfanov fundó Hex-Rays para continuar el desarrollo de la extensión Hex-Rays Decompiler para IDA. [ 24 ] [ 25 ] En enero de 2008, Hex-Rays asumió el desarrollo y el soporte de IDA Pro de DataRescue. [ 26 ] [ 27 ]
En 2022, Hex-Rays fue adquirida por un grupo de inversores liderado por Smartfin, un inversor europeo de capital riesgo y capital privado . Entre los coinversores en la adquisición se encontraban la sociedad holding pública belga The Federal Holding & Investment Company (SFPIM) y la empresa de inversión pública valona Regional Investment Company of Wallonia (SRIW) . [ 28 ] [ 29 ]
Características
IDA desensambla un programa compilado y lo convierte de nuevo en una representación en lenguaje ensamblador. Además de realizar el desensamblaje básico, IDA también anota automáticamente los programas desensamblados con información sobre: [ 30 ]
- referencias cruzadas entre el código y los datos en el programa
- Ubicaciones de funciones, marcos de pila de funciones y convenciones de llamada a funciones.
- tipos de datos reconstruidos
Sin embargo, la naturaleza del desensamblaje impide una precisión total, y se requiere una gran intervención humana; IDA cuenta con funcionalidades interactivas para facilitar su mejora. Un usuario típico de IDA comenzará con un listado de desensamblaje generado automáticamente y luego convertirá secciones de código a datos y viceversa, renombrará, anotará y agregará información al listado hasta que su funcionamiento quede claro.
Programación de scripts
Los scripts de IDC permiten ampliar las funcionalidades del desensamblador. Se proporcionan algunos scripts útiles que pueden servir de base para la creación de scripts personalizados. Generalmente, los scripts se utilizan para modificar el código generado. Por ejemplo, se pueden cargar tablas de símbolos externas, utilizando así los nombres de las funciones del código fuente original.
Los usuarios han creado complementos que permiten usar otros lenguajes de scripting comunes en lugar de IDC, o además de este. IdaRUB [ 31 ] admite Ruby e IDAPython [ 32 ] añade compatibilidad con Python . A partir de la versión 5.4, IDAPython (que depende de Python 2.5) viene preinstalado con IDA Pro.
Depuración
IDA Pro admite varios depuradores, [ 33 ] entre ellos:
- Las aplicaciones remotas para Windows, Linux y Mac (proporcionadas por Hex-Rays) permiten ejecutar un archivo ejecutable en su entorno nativo (presumiblemente utilizando una máquina virtual para el malware).
- El depurador GNU (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 sencillas (es decir, ejecutables UPX o mpress compactados dañados).
- Un depurador basado en PIN de Intel
- Un reproductor de trazas
Versiones
La última versión completa de IDA Pro está disponible mediante suscripción anual de pago (versión 9.0sp1 a diciembre de 2024), mientras que una versión menos potente (limitada a x86), llamada IDA Free, está disponible para su descarga gratuita. [ 34 ]
Sistemas/procesadores/compiladores compatibles
- Hosts del sistema
- Windows x86 y ARM
- Linux x86
- macOS x86 y Apple Silicon
- Formatos de archivos ejecutables reconocidos
- COFF y derivados, incluyendo Win32/64/ PE genérico
- ELF y derivados (genéricos)
- Mach-O ( Mach )
- NLM ( NetWare )
- LC/LE/LX (OS/2 2.x+ y varios extensores de DOS)
- NE (OS/2 1.x, Win16 y varios extensores de DOS)
- MZ ( MS-DOS )
- OMF y derivados (genéricos)
- AIM (genérico)
- binario sin procesar, 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
- Alfa DEC
- Analog Devices 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 Java
- 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
- RISC-V
- Familia Xenon PowerPC
- SGS-Thomson ST20/ST20c4/ST7
- Familia SPARC
- Samsung SAM8
- Siemens C166
- Serie TMS320Cxxx
- Compilador/bibliotecas (para el reconocimiento automático de funciones de biblioteca) [ 35 ]
- Borland C++ 5.x para DOS/Windows
- Borland C++ 3.1
- Borland C Builder v4 para DOS/Windows
- GNU C++ para Cygwin
- Microsoft C
- QuickC
- Visual C++
- Watcom C/C++ (16/32 bits) para DOS y OS/2
- ARM C v1.2
- GNU C++ para Unix/común
Logo
El logotipo de IDA Pro es una imagen recortada de Françoise d'Aubigné, marquesa de Maintenon . La imagen del logotipo es similar a una pintura en miniatura de Françoise d'Aubigné atestiguada por un pintor del círculo de Pierre Mignard . [ 36 ]
La versión original en escala de grises del logotipo se introdujo en septiembre de 1999, con el lanzamiento de IDA 4.0. [ 18 ] Ilfak Guilfanov ha declarado que el logotipo no es una representación de Santa Ida de Lovaina . [ 37 ]
Véase también
Referencias
- ↑ Czokow, Geoffrey (2021-05-20). "IDA: celebrando 30 años de innovación en análisis binario" . Hex-Rays . Recuperado el 19 de marzo de 2023 .
- ↑ "Actualización del producto: Lanzamiento de IDA 9.3sp2" . 23 de abril de 2026. Consultado el 24 de abril de 2026 .
- ↑ "Hex-rays Home" . Archivado del original el 26 de mayo de 2024. Consultado el 31 de marzo de 2008 .
- ↑ Eagle, Chris (2011). «Capítulo 23: Complementos IDA del mundo real». The IDA Pro Book: la guía no oficial del desensamblador más popular del mundo (2.ª ed.). San Francisco: No Starch Press. págs. 500–502 . ISBN 978-1-59327-395-8OCLC 830164382
- ↑ "Descompilador de rayos hexadecimales" . hex-rays.com . Consultado el 18 de marzo de 2023 .
- ↑ Personal, SC (11 de septiembre de 2017). "Hex-Rays IDA Pro" . SC Media . Recuperado el 13 de marzo de 2023 .
- ↑ Sikorski, Michael (2012). «Capítulo 5. IDA Pro». Análisis práctico de malware: una guía práctica para analizar software malicioso . Andrew Honig. San Francisco: No Starch Press. ISBN 978-1-59327-430-6OCLC 830164262
- ↑ Shoshitaishvili, Yan; Wang, Ruoyu; Salls, Christopher; Stephens, Nick; Polino, Mario; Dutcher, Andrew; Grosen, John; Feng, Siji; Hauser, Christophe; Kruegel, Christopher; Vigna, Giovanni (22 de mayo de 2016). "SOK: (Estado del) arte de la guerra: técnicas ofensivas en análisis binario". Simposio IEEE de 2016 sobre seguridad y privacidad (SP) . págs. 138–157 . doi : 10.1109/SP.2016.17 . hdl : 11311/1161277 . ISBN 978-1-5090-0824-7.
- ↑ Guo, Wei; Wei, Qiang; Wu, Qianqiong; Guo, Zhimin (2022-04-01). "CSChecker: Un método de detección de vulnerabilidades basado en la contaminación binaria basado en el análisis estático de contaminación" . Journal of Physics: Conference Series . 2258 (1) 012069. Bibcode : 2022JPhCS2258a2069G . doi : 10.1088/1742-6596/2258/1/012069 . ISSN 1742-6588 .
- ↑ Yakdan, Khaled; Eschweiler, Sebastian; Gerhards-Padilla, Elmar; Smith, Matthew (2015). No More Gotos: Decompilation Using Pattern-Independent Control-Flow Structuring and Semantics-Preserving Transformations . doi : 10.14722/ndss.2015.23185 . ISBN 978-1-891562-38-9. Consultado el 18 de marzo de 2023 .
{{cite book}}:|website=ignorado ( ayuda ) - ↑ Schulte, Eric; Ruchti, Jason; Noonan, Matt; Ciarletta, David; Loginov, Alexey (2018). "Descompilación exacta en evolución" . Actas del Taller de Investigación en Análisis Binario de 2018. Reston, VA: Internet Society. doi : 10.14722/bar.2018.23008 . ISBN 978-1-891562-50-1.
- ↑ Liu, Zhibo; Wang, Shuai (18 de julio de 2020). "Cuánto hemos avanzado: Pruebas de corrección de la descompilación de descompiladores de C" . Actas del 29.º Simposio Internacional ACM SIGSOFT sobre Pruebas y Análisis de Software . ISSTA 2020. Nueva York, NY, EE. UU.: Association for Computing Machinery. págs. 475–487 . doi : 10.1145/3395363.3397370 . ISBN 978-1-4503-8008-9.
- ↑ Di Federico, Alessandro; Payer, Mathias; Agosta, Giovanni (2017-02-05). "Rev.ng: Un marco unificado de análisis binario para recuperar CFGS y límites de funciones" . Actas de la 26.ª Conferencia Internacional sobre Construcción de Compiladores . CC 2017. Nueva York, NY, EE. UU.: Association for Computing Machinery. págs. 131–141 . doi : 10.1145/3033019.3033028 . ISBN 978-1-4503-5233-8En una evaluación exhaustiva ,
probamos nuestra herramienta [de análisis binario] en binarios compilados para MIPS, ARM y x86-64 usando GCC y clang, y los comparamos con la herramienta más avanzada de la industria, IDA Pro, y dos herramientas académicas bien conocidas, BAP/ByteWeight y angr.
- ↑ García Prado, Carlos; Erickson, Jon (10 de abril de 2018). "Resolviendo problemas ad hoc con la API de Hex-Rays" . Blog de investigación de amenazas de FireEye . Archivado del original el 2 de junio de 2022. Recuperado el 12 de marzo de 2023. IDA
Pro es el estándar de facto en lo que respecta a la ingeniería inversa binaria.
- ↑ Andriesse, Dennis (2019). «Apéndice C: Lista de herramientas de análisis binario». Análisis binario práctico: crea tus propias herramientas Linux para instrumentación, análisis y desensamblaje binario . San Francisco, CA: No Starch Press, Inc. ISBN 978-1-59327-913-4. OCLC 1050453850 .
Este [IDA Pro] es el desensamblador recursivo estándar de facto de la industria.
- ^ Гильфанов, Ильфак (22 de mayo de 2003). "IDA Pro - samyj moshhnyj dizassembler v mire"IDA Pro: un desensamblador portátil en el mar[ IDA Pro: el desensamblador más poderoso del mundo ] (Entrevista) (en ruso). Entrevistado por Доля, Алексей. Compañía "Ф-Центр". segundo. 2.30. Archivado desde el original el 15 de mayo de 2021 . Consultado el 14 de marzo de 2023 .
En el inicio de un trabajo de 1991, hubo muchos trabajos para septiembre y para dos.
- ↑ «IDA Pro - Часто задаваемые вопросы» . Archivado desde el original el 19 de diciembre de 2003.
Первые строки для IDA были написаны в декабре 1990.
- 1 2 Czokow, Geoffrey (2021-05-20). "IDA: celebrando 30 años de innovación en análisis binario" . Hex-Rays . Recuperado el 2023-03-19 .
- ↑ "Hex Rays - Soluciones de análisis de código binario de última generación" . hex-rays.com . Archivado del original el 31 de mayo de 2023. Consultado el 21 de julio de 2023 .
- ↑ Guilfanov, Ilfak (22 de junio de 2015), CODE BLUE 2014 : Ilfak Guilfanov - Conferencia magistral: La historia de IDA Pro , consultado el 16 de marzo de 2023 ,
Datarescue convirtió mi proyecto de afición en un programa comercial en 1996.
- ↑ "Página de DataRescue IDA Pro" . DataRescue . Archivado del original el 14 de febrero de 1997.
- ↑ "Página de DataRescue IDA: descarga una versión de evaluación" . DataRescue . Archivado del original el 14 de febrero de 1997.
- ↑ "Página de novedades de DataRescue IDA Pro" . DataRescue . Archivado del original el 10 de octubre de 1999.
- ^ "Gegevens van de geregistreerde entiteit | Búsqueda pública de KBO" . kbopub.economie.fgov.be . Consultado el 13 de marzo de 2023 .
- ↑ "Descompilador de rayos hexadecimales" . Rayos hexadecimales . Archivado del original el 11 de octubre de 2007.
- ↑ "Página principal de DataRescue: página del desensamblador IDA Pro y de PhotoRescue" . DataRescue . Archivado del original el 21/02/2008.
Noticias 01/07/2008: IDA Pro se traslada a Hex-Rays.
- ↑ "Página principal de Hex-Rays" . Hex-Rays . Archivado del original el 12 de febrero de 2008.
- ↑ "Un consorcio de inversores adquiere Hex-Rays – Hex Rays" . 19 de octubre de 2022. Archivado del original el 21 de julio de 2023. Consultado el 21 de julio de 2023 .
- ↑ "Noticias del sector | El consorcio liderado por Smartfin adquiere Hex-Rays para acelerar los esfuerzos de innovación de productos" . Help Net Security . 2022-10-20. Archivado del original el 2023-07-21 . Consultado el 2023-07-21 .
- ↑ Eagle, Chris (2011). «Parte II. Uso básico de IDA». The IDA Pro Book: la guía no oficial del desensamblador más popular del mundo (2.ª ed.). San Francisco: No Starch Press. ISBN 978-1-59327-395-8OCLC 830164382
- ↑ "Spoonm/Idarub" . GitHub . Archivado del original el 8 de enero de 2016. Consultado el 5 de diciembre de 2011 .
- ↑ "Idapython [ d-dome.net ] " . Archivado del original el 16-01-2006.
- ↑ 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.
- ↑ "Descarga de la versión gratuita de IDA Pro" . Archivado del original el 8 de agosto de 2008. Consultado el 31 de marzo de 2008 .
- ↑ "Soporte del compilador FLIRT" . Hex-Rays . Archivado del original el 3 de octubre de 2011. Consultado el 13 de abril de 2010 .
- ↑ "Französische Schule, Nachfolge Pierre Mignard - Osterauktion 17.04.2019 - Schätzwert: 1.500 EUR a 2.600 EUR - Dorotheum" . www.dorotheum.com (en alemán austriaco). Archivado desde el original el 14 de agosto de 2023 . Consultado el 8 de julio de 2024 .
- ↑ Guilfanov, Ilfak (13 de abril de 2006). "Sainte Ida | Blog de Hex" . Blog de Hex . Archivado del original el 17 de junio de 2011. Consultado el 8 de julio de 2024 .
Lecturas adicionales
- Eilam, Eldad (2005). Reversing: Secrets of Reverse Engineering . Wiley Publishing . p. 595. ISBN 0-7645-7481-7.
Enlaces externos
- Sitio web oficial
- "IDA Pro en Internet Archive" (en ruso). Archivado del original el 16 de enero de 2015.
- "Complementos y scripts de IDA" . Ingeniería de código inverso abierta (OpenRCE) .
- Desmontadores
- Depuradores
- Software para modelado de software
- Software de 1991