# Interactive Disassembler

L'Interactive Disassembler (IDA) és un desensamblador de programari informàtic que genera codi font en llenguatge ensamblador a partir de codi executable per màquina. Admet una varietat de formats executables per a diferents processadors i sistemes operatius. També es pot utilitzar com a depurador per a executables ELF de Windows PE, Mac OS X Mach-O i Linux. Un complement de descompilador, que genera una representació de codi font C d'alt nivell del programa analitzat, està disponible amb un cost addicional.
IDA s'utilitza àmpliament en l'enginyeria inversa de programari, inclòs per a l'anàlisi de programari maliciós i la investigació de vulnerabilitats de programari. El descompilador de l'IDA és un dels marcs de descompilació més populars i àmpliament utilitzats, i IDA ha estat anomenat "estàndard de la indústria de facto" per al desmuntatge de programes i l'anàlisi binària estàtica.

## Història

Ilfak Guilfanov va començar a treballar en IDA l'any 1990, i inicialment la va distribuir com una aplicació de programari compartit. L'any 1996, l'empresa belga DataRescue es va fer càrrec del desenvolupament d'IDA i va començar a vendre'l com a producte comercial, sota el nom IDA Pro.
Les versions inicials d'IDA no tenien una interfície gràfica d'usuari (GUI) i s'executaven com una aplicació de consola DOS, OS/2 o Windows estesa. El 1999, DataRescue va llançar la primera versió d'IDA Pro amb una GUI, IDA Pro 4.0.
El 2005, Guilfanov va fundar Hex-Rays per seguir el desenvolupament de l'extensió IDA Hex-Rays Decompiler. El gener de 2008, Hex-Rays va assumir el desenvolupament i el suport de l'IDA Pro de DataRescue.
El 2022, Hex-Rays va ser adquirida per un grup d'inversors liderats per Smartfin, un inversor europeu de capital risc i capital privat. Entre els co-inversors en l'adquisició incloïa el holding públic belga fr, i l'empresa pública d'inversió valona Regional Investment Company of Wallonia (SRIW).

## Característiques

IDA desmunta un programa compilat de nou en una representació en llenguatge ensamblador. A més de realitzar el desmuntatge bàsic, IDA també anota automàticament els programes desmuntats amb informació sobre:
* referències creuades entre codi i dades del programa
* ubicacions de funcions, marcs de pila de funcions i convencions de crida de funcions
* tipus de dades reconstruïts
Tanmateix, la naturalesa del desmuntatge impedeix una precisió total i necessàriament cal una gran intervenció humana; IDA té una funcionalitat interactiva per ajudar a millorar el desmuntatge. Un usuari típic de l'IDA començarà amb una llista de desmuntatge generada automàticament i després convertirà seccions de codi a dades i viceversa, canviarà el nom, anotarà i, d'altra manera, afegirà informació a la llista, fins que la seva funcionalitat quedi clara.

## Referències

* ↑ Eagle, Chris. «Chapter 23: Real-World IDA Plug-ins». A: The IDA Pro Book : the Unoffical Guide to the World's Most Popular Disassembler. (en anglès). 2nd. San Francisco: No Starch Press, 2011, p. 500–502. ISBN 978-1-59327-395-8. OCLC 830164382.
* ↑ «Hex-Rays Decompiler» (en anglès). hex-rays.com. [Consulta: 18 març 2023].
* ↑ Staff, S. C. «Hex-Rays IDA Pro» (en anglès). SC Media, 11-09-2017. [Consulta: 13 març 2023].
* ↑ Sikorski, Michael; Andrew Honig. «Chapter 5. IDA Pro». A: Practical Malware Analysis : a Hands-On Guide to Dissecting Malicious Software. (en anglès). San Francisco: No Starch Press, 2012. ISBN 978-1-59327-430-6. OCLC 830164262.
* ↑ Shoshitaishvili, Yan. «SOK: (State of) the Art of War: Offensive Techniques in Binary Analysis». A: 2016 IEEE Symposium on Security and Privacy (SP) (en anglès), 2016-05-22, p. 138–157. DOI 10.1109/SP.2016.17. ISBN 978-1-5090-0824-7.
* ↑ Guo, Wei; Wei, Qiang; Wu, Qianqiong; Guo, Zhimin Journal of Physics: Conference Series, 2258, 1, 01-04-2022, pàg. 012069. Bibcode: 2022JPhCS2258a2069G. DOI: 10.1088/1742-6596/2258/1/012069. ISSN: 1742-6588 [Consulta: free].
* ↑ Yakdan, Khaled. No More Gotos: Decompilation Using Pattern-Independent Control-Flow Structuring and Semantics-Preserving Transformations (en anglès), 2015. DOI 10.14722/ndss.2015.23185. ISBN 978-1-891562-38-9.
* ↑ Schulte, Eric; Ruchti, Jason; Noonan, Matt; Ciarletta, David; Loginov, Alexey Proceedings 2018 Workshop on Binary Analysis Research [Reston, VA], 2018. DOI: 10.14722/bar.2018.23008.
* ↑ Liu, Zhibo. «How far we have come: Testing decompilation correctness of C decompilers». A: Proceedings of the 29th ACM SIGSOFT International Symposium on Software Testing and Analysis (en anglès). New York, NY, USA: Association for Computing Machinery, 2020-07-18, p. 475–487 (ISSTA 2020). DOI 10.1145/3395363.3397370. ISBN 978-1-4503-8008-9.
* ↑ Di Federico, Alessandro. «Rev.ng: A unified binary analysis framework to recover CFGS and function boundaries». A: Proceedings of the 26th International Conference on Compiler Construction (en anglès). New York, NY, USA: Association for Computing Machinery, 2017-02-05, p. 131–141 (CC 2017). DOI 10.1145/3033019.3033028. ISBN 978-1-4503-5233-8.
* ↑ Garcia Prado, Carlos. «Solving Ad-hoc Problems with Hex-Rays API» (en anglès). FireEye Threat Research Blog, 10-04-2018. Arxivat de l'original el June 2, 2022. [Consulta: 12 març 2023].
* ↑ Andriesse, Dennis. «Appendix C: List of Binary Analysis Tools». A: Practical binary analysis : build your own Linux tools for binary instrumentation, analysis, and disassembly (en anglès). San Francisco, CA: No Starch Press, Inc., 2019. ISBN 978-1-59327-913-4. OCLC 1050453850.
* ↑ «IDA Pro - Часто задаваемые вопросы». anglès. Arxivat de l'original el December 19, 2003.
* ↑ Czokow, Geoffrey. «IDA: celebrating 30 years of binary analysis innovation» (en anglès). Hex-Rays, 20-05-2021. [Consulta: 19 març 2023].
* ↑ «Hex Rays - State-of-the-art binary code analysis solutions» (en anglès). hex-rays.com. Arxivat de l'original el 2023-05-31. [Consulta: 21 juliol 2023].
* ↑ «DataRescue IDA Pro Page» (en anglès). DataRescue. Arxivat de l'original el 1997-02-14.
* ↑ «DataRescue IDA Page : download an evaluation version» (en anglès). DataRescue. Arxivat de l'original el 1997-02-14.
* ↑ «DataRescue IDA Pro What's new Page» (en anglès). DataRescue. Arxivat de l'original el 1999-10-10.
* ↑ «Gegevens van de geregistreerde entiteit | KBO Public Search» (en anglès). kbopub.economie.fgov.be. [Consulta: 13 març 2023].
* ↑ «Hex-Rays Decompiler» (en anglès). Hex-Rays. Arxivat de l'original el 2007-10-11.
* ↑ «DataRescue Home Page : home of the IDA Pro Disassembler and of PhotoRescue» (en anglès). DataRescue. Arxivat de l'original el 2008-02-21.
* ↑ «Hex-Rays Home Page» (en anglès). Hex-Rays. Arxivat de l'original el 2008-02-12.
* ↑ «A consortium of investors acquires Hex-Rays – Hex Rays» (en anglès), 19-10-2022. Arxivat de l'original el 2023-07-21. [Consulta: 21 juliol 2023].
* ↑ «News Industry | Smartfin led consortium acquires Hex-Rays to accelerate product innovation efforts» (en anglès americà). Help Net Security, 20-10-2022. Arxivat de l'original el 2023-07-21. [Consulta: 21 juliol 2023].
* ↑ Eagle, Chris. «Part II. Basic IDA Usage». A: The IDA Pro Book : the Unoffical Guide to the World's Most Popular Disassembler. (en anglès). 2nd. San Francisco: No Starch Press, 2011. ISBN 978-1-59327-395-8. OCLC 830164382.