Desensamblador interactivo

Herramienta de ingeniería inversa de software
Desensamblador interactivo
Autor(es) original(es)Ilfak Guilfanov
Desarrollador(es)Rayos hexadecimales
Lanzamiento inicial21 de mayo de 1991 ; hace 33 años [1] ( 21-05-1991 )
Versión estable
8.4 SP2 [2] / 27 de mayo de 2024 ; hace 4 meses ( 27/05/2024 )
Escrito enC++ [3]
Sistema operativoMicrosoft Windows , Mac OS X y Linux
Disponible enInglés , ruso
TipoDesensamblador , Descompilador
LicenciaPropiedad
Sitio webhex-rays.com/ida-pro/

El Interactive Disassembler ( IDA ) es un desensamblador de software informático 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 complemento de descompilador , que genera una representación de alto nivel, similar al código fuente C , del programa analizado, está disponible por un costo adicional. [4] [5]

IDA se utiliza ampliamente en ingeniería inversa de software , incluso para análisis de malware [6] [7] e investigación de vulnerabilidades de software . [8] IDA ha sido denominado el "desensamblador estándar de la industria de facto". [9] [10] [11] [12]

Historia

Ilfak Guilfanov comenzó a trabajar en IDA en 1990, [13] [14] [15] [16] y lo distribuyó inicialmente 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. [17] [18]

Las versiones iniciales de IDA no tenían una interfaz gráfica de usuario (GUI) y se ejecutaban como una aplicación de consola DOS , OS/2 o Windows extendida . [19] En 1999, DataRescue lanzó la primera versión de IDA Pro con una GUI, IDA Pro 4.0. [20]

En 2005, Guilfanov fundó Hex-Rays para continuar con el desarrollo de la extensión IDA de Hex-Rays Decompiler. [21] [22] En enero de 2008, Hex-Rays asumió el desarrollo y soporte de IDA Pro de DataRescue. [23] [24]

En 2022, Hex-Rays fue adquirida por Smartfin, un inversor europeo de capital riesgo y capital privado . [25] [26]

Características

IDA desensambló un programa compilado para convertirlo en una representación en lenguaje ensamblador. Además de realizar un desensamblado básico, IDA también anota automáticamente los programas desensamblados con información sobre: ​​[27]

Sin embargo, la naturaleza del desensamblaje 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 desensamblaje. Un usuario típico de IDA comenzará con una lista de desensamblaje 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 su funcionalidad quede clara.

Creación de guiones

Los "scripts IDC" permiten ampliar el funcionamiento del desensamblador. Se proporcionan algunos scripts útiles que pueden servir como base para los scripts escritos por el usuario. Los scripts más utilizados se utilizan para realizar modificaciones adicionales al código generado. Por ejemplo, se pueden cargar tablas de símbolos externas utilizando los nombres de funciones del código fuente original.

Los usuarios han creado complementos que permiten utilizar otros lenguajes de programación comunes en lugar de IDC o además de él. IdaRUB [28] es compatible con Ruby e IDAPython [29] 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, [30] incluidos:

  • Las aplicaciones remotas de Windows, Linux y Mac (proporcionadas por Hex-Rays) permiten ejecutar un ejecutable en su entorno nativo (probablemente utilizando 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, UPX dañado o ejecutables compactados de mpress)
  • Un depurador basado en PIN de Intel
  • Un reproductor de trazas

Versiones

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 costo. [31]

Sistemas/procesadores/compiladores compatibles

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 . [33]

La versión original en escala de grises del logotipo se introdujo en septiembre de 1999, con el lanzamiento de IDA 4.0. [15] Ilfak Guilfanov ha declarado que el logotipo no es una representación de Santa Ida de Lovaina . [34]

Véase también

Referencias

  1. ^ Czokow, Geoffrey (20 de mayo de 2021). «IDA: celebrando 30 años de innovación en análisis binario». Hex-Rays . Consultado el 19 de marzo de 2023 .
  2. ^ "IDA 8.4.240527 (8.4sp2)". Archivado desde el original el 2 de junio de 2024 . Consultado el 28 de junio de 2024 .
  3. ^ "Hex-rays Home". Archivado desde el original el 26 de mayo de 2024. Consultado el 31 de marzo de 2008 .
  4. ^ 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.ª edición). San Francisco: No Starch Press. págs. 500–502. ISBN 978-1-59327-395-8.OCLC 830164382  .
  5. ^ "Descompilador Hex-Rays". hex-rays.com . Consultado el 18 de marzo de 2023 .
  6. ^ Staff, SC (11 de septiembre de 2017). "Hex-Rays IDA Pro". SC Media . Consultado el 13 de marzo de 2023 .
  7. ^ 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-6.OCLC 830164262  .
  8. ^ 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 sobre seguridad y privacidad de 2016 (SP) . págs. 138–157. doi :10.1109/SP.2016.17. hdl :11311/1161277. ISBN . 978-1-5090-0824-7. S2CID  3337994. Archivado desde el original el 8 de diciembre de 2022. Consultado el 17 de marzo de 2023 .
  9. ^ Ben Khadra, M. Ammar; Stoffel, Dominik; Kunz, Wolfgang (1 de octubre de 2016). "Desensamblaje especulativo de código binario". Actas de la Conferencia internacional sobre compiladores, arquitecturas y síntesis para sistemas integrados . CASES '16. Nueva York, NY, EE. UU.: Association for Computing Machinery. págs. 1–10. doi :10.1145/2968455.2968505. ISBN 978-1-4503-4482-1. S2CID  16206393. Supera a IDA Pro, el desensamblador estándar de facto de la industria, en términos de corrección de desmontaje.
  10. ^ Di Federico, Alessandro; Payer, Mathias; Agosta, Giovanni (5 de febrero de 2017). "Rev.ng: Un marco de análisis binario unificado para recuperar CFGS y límites de función". 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-8. S2CID  15830760. Evaluamos nuestra implementación de prototipo frente al estándar de facto de la industria para el análisis binario estático, IDA Pro,
  11. ^ Garcia Prado, Carlos; Erickson, Jon (10 de abril de 2018). "Resolución de problemas ad-hoc con la API Hex-Rays". Blog de investigación de amenazas de FireEye . Archivado desde el original el 2022-06-02 . Consultado el 12 de marzo de 2023. IDA Pro es el estándar de facto en lo que respecta a la ingeniería inversa binaria.
  12. ^ Andriesse, Dennis (2019). "Apéndice C: Lista de herramientas de análisis binario". Análisis binario práctico: cree sus propias herramientas Linux para instrumentación, análisis y desensamblaje binario. San Francisco, CA. ISBN 978-1-59327-913-4. OCLC  1050453850. Este [IDA Pro] es el desensamblador recursivo estándar de facto de la industria.{{cite book}}: Mantenimiento de CS1: falta la ubicación del editor ( enlace )
  13. ^ Гильфанов, Ильфак (22 de mayo de 2003). "IDA Pro - samyj moshhnyj dizassembler v mire" IDA Pro - самый мощный дизассемблер в мире [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.
  14. ^ "IDA Pro - Часто задаваемые вопросы". Archivado desde el original el 19 de diciembre de 2003. Первые строки для IDA были написаны в декабре 1990.
  15. ^ ab Czokow, Geoffrey (20 de mayo de 2021). "IDA: celebrando 30 años de innovación en análisis binario". Hex-Rays . Consultado el 19 de marzo de 2023 .
  16. ^ "Hex Rays - Soluciones de análisis de código binario de última generación". hex-rays.com . Archivado desde el original el 2023-05-31 . Consultado el 2023-07-21 .
  17. ^ Guilfanov, Ilfak (22 de junio de 2015), CODE BLUE 2014: Ilfak Guilfanov - Keynote: La historia de IDA Pro , recuperado el 16 de marzo de 2023 , Datarescue convirtió mi proyecto de hobby en un programa comercial en 1996.
  18. ^ "Página de DataRescue IDA Pro". DataRescue . Archivado desde el original el 14 de febrero de 1997.
  19. ^ "Página IDA de DataRescue: descargar una versión de evaluación". DataRescue . Archivado desde el original el 14 de febrero de 1997.
  20. ^ "Página de novedades de DataRescue IDA Pro". DataRescue . Archivado desde el original el 10 de octubre de 1999.
  21. ^ "Gegevens van de geregistreerde entiteit | Búsqueda pública de KBO". kbopub.economie.fgov.be . Consultado el 13 de marzo de 2023 .
  22. ^ "Descompilador Hex-Rays". Hex-Rays . Archivado desde el original el 11 de octubre de 2007.
  23. ^ "Página de inicio de DataRescue: página de inicio del desensamblador de IDA Pro y de PhotoRescue". DataRescue . Archivado desde el original el 21 de febrero de 2008. Noticias 01/07/2008: IDA Pro se traslada a Hex-Rays.
  24. ^ "Página de inicio de Hex-Rays". Hex-Rays . Archivado desde el original el 12 de febrero de 2008.
  25. ^ "Un consorcio de inversores adquiere Hex-Rays – Hex Rays". Archivado desde el original el 2023-07-21 . Consultado el 2023-07-21 .
  26. ^ "Noticias de la industria | El consorcio liderado por Smartfin adquiere Hex-Rays para acelerar los esfuerzos de innovación de productos". Ayuda a Net Security . 2022-10-20. Archivado desde el original el 2023-07-21 . Consultado el 2023-07-21 .
  27. ^ 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.ª edición). San Francisco: No Starch Press. ISBN 978-1-59327-395-8.OCLC 830164382  .
  28. ^ "Spoonm/Idarub". GitHub . Archivado desde el original el 8 de enero de 2016 . Consultado el 5 de diciembre de 2011 .
  29. ^ "Idapython [d-dome.net]". Archivado desde el original el 16 de enero de 2006.
  30. ^ Eagle, Chris (2008). The IDA Pro Book: La guía no oficial del desensamblador más popular del mundo . No Starch Press . ISBN 978-1-59327-178-7.
  31. ^ "Descarga de la versión gratuita de IDA Pro". Archivado desde el original el 8 de agosto de 2008. Consultado el 31 de marzo de 2008 .
  32. ^ "Compatibilidad con compiladores FLIRT". Hex-Rays . Archivado desde el original el 2011-10-03 . Consultado el 2010-04-13 .
  33. ^ "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 .
  34. ^ Guilfanov, Ilfak (13 de abril de 2006). «Sainte Ida | Hex Blog». Hex Blog . Archivado desde el original el 17 de junio de 2011. Consultado el 8 de julio de 2024 .

Lectura adicional

  • Sitio web oficial
  • "IDA Pro en Internet Archive" (en ruso). Archivado desde el original el 16 de enero de 2015.
  • "Complementos y scripts de IDA". Ingeniería de código inverso abierto (OpenRCE) .
Obtenido de "https://es.wikipedia.org/w/index.php?title=Desensamblador_interactivo&oldid=1247887048"