- IDA Pro (logiciel)
-
IDA Pro Développeur Hex-Rays Dernière version 6.2 (5 octobre 2011) [+/−] Environnement Linux, Mac OS X, Windows Langue Anglais Type Désassembleur Licence Logiciel propriétaire Site web www.hex-rays.com modifier Le désassembleur interactif (Interactive Disassembler), plus connu sous le nom d'IDA Pro, est un désassembleur commercial très utilisé en rétro-ingénierie. Il supporte une grande variété de formats exécutables pour différents processeurs et systèmes d'exploitation.
Bien qu'IDA Pro soit capable d'accomplir, dans une large mesure, une analyse de code automatique (améliorant notamment la reconnaissance des références croisées à l'intérieur des sections de code, la connaissance des paramètres des appels aux APIs et d'autres informations), le code assembleur obtenu à partir du binaire peut ne pas être parfait. Une intervention humaine est nécessaire pour mener à bien une analyse binaire. Son avantage principal par rapport à d'autres désassembleurs comme objdump ou ndisasm (par exemple) est d'être interactif. En effet, nous avons ici la possibilité de naviguer dans le code ASM obtenu et de l'annoter ou de l'améliorer (un désassembleur quel qu'il soit peut confondre code et données par exemple).
Une utilisation typique d'IDA Pro serait l'analyse de logiciels malicieux. Pour cela, un utilisateur voulant mener à bien une analyse de code binaire avec IDA Pro va commencer par ouvrir le fichier à étudier. IDA Pro se chargera ensuite d'effectuer son analyse automatique, elle débute par la conversion du langage machine (du binaire) en langage assembleur. Au fur et à mesure du désassemblage des instructions, celui-ci annotera, renommera et ajoutera des informations qu'il jugera nécessaire. Cette analyse automatique permet à l'analyste d'avoir une meilleure vision du binaire désassemblé, il aura le rôle d'améliorer la base de données IDA Pro. D'autres utilisation d'IDA Pro existent bien évidemment, c'est après tout un logiciel de rétro-ingénierie avancée. Il est utilisé notamment à des fins légales comme la recherche de vulnérabilitées (failles de sécurité) ou encore à analyser des protocoles fermés dans le but de les réimplémenter et ce à des fins d'inter-opérabilité. En effet, des protocoles fermés tel que le .doc ont par exemple dû être reversé pour pouvoir être supporté par LibreOffice. L'analyse des mises à jour des éditeurs est aussi importante à analyser vu leur tendance à faire des "silent fix" ou modification de leur programme sans en avertir l'utilisateur dans le journal de modifications. Il est aussi utilisé à des fins moins nobles comme pirater du logiciel.
On notera par ailleurs qu'IDA Pro se double aussi d'un débogueur en plus du module de désassemblage. En effet, plusieurs moteurs de déboggage sont supportés par IDA Pro: GDB, Microsoft WinDBG, Bochs x86 et bien d'autres. Ca permet de débogguer un programme Linux à partir de Windows par exemple.
Créé sous le statut de partagiciel par Ilfak Guilfanov, IDA Pro est devenu par la suite un logiciel commercial produit par DataRescue, une entreprise belge, qui maintient et supporte une version améliorée nommée IDA Pro. À côté de la version commerciale, DataRescue a toujours maintenu une version gratuite du logiciel (généralement une ancienne version).
Ilfak Guilfanov a quitté DataRescue et développe depuis août 2007 IDA pour sa société, Hex-Rays.
Depuis la version 6.0, une nouvelle interface développée en Qt uniformise les versions Windows, Linux et MacOS du logiciel.
Systèmes/processeurs/compilateurs supportés
- Système d'Exploitation
- Executable file formats
- PE (Windows)
- ELF (Linux, most *BSD)
- Mach-O (Mac OS X)
- Netware .exe
- OS/2 .exe
- Geos .exe
- Dos/Watcom LE executable (sans le DOS étendu)
- raw binary, such as a ROM image
- Processors
- Intel 80x86 family
- ARM, including Thumb code
- Motorola 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
- Fujitsu FR 32-bit Family
- 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
- Mitsubishi 7700 Family: m7700/m7750
- Mitsubishi m32/m32rx
- Mitsubishi m740
- Mitsubishi m7900
- Motorola DSP 5600x Family: dsp561xx/dsp5663xx/dsp566xx/dsp56k
- Motorola ColdFire
- Motorola HCS12
- NEC 78K0/78K0S
- PA-RISC
- PowerPC
- SGS-Thomson ST20/ST20c4/ST7
- SPARC Family
- Samsung SAM8
- Siemens C166 series
- TMS320Cxxx series
- Compilateurs/bibliothèques (pour la reconnaissance automatique des fonctions)[1]
- Borland C++ 5.x for DOS/Windows
- Borland C++ 3.1
- Borland C Builder v4 for DOS/Windows
- GNU C++ for Cygwin
- Microsoft C
- Microsoft QuickC
- Microsoft Visual C++
- Watcom C++ (16/32 bit) for DOS/OS2
- ARM C v1.2
- GNU C++ for Unix/common
References
- FLIRT Compiler Support, Hex-Rays
- (en) Eldad Eilam, Reversing: Secrets of Reverse Engineering, Indianapolis, Wiley Publishing, 2005, poche (ISBN 978-0-7645-7481-8) (LCCN 2005921595), p. 595
- (en) Chris Eagle, The IDA Pro Book: The Unofficial Guide to the World's Most Popular Disassembler, San Francisco, No Starch Press, 2008, 1re éd. (ISBN 978-1-59327-178-7) (LCCN 2008030632)
Liens externes
Wikimedia Foundation. 2010.