IDA Pro (logiciel)

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
IDA Pro
Image illustrative de l'article IDA Pro (logiciel)
Logo

Développeur Hex-Rays
Dernière version 6.6.140605 (4 juin 2014)
Environnement Linux, Mac OS X, Windows
Langue Anglais
Type Désassembleur
Licence Logiciel propriétaire
Site web www.hex-rays.com

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.

Description[modifier | modifier le code]

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 utilisations 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és (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ébogage sont supportés par IDA Pro : GDB, Microsoft WinDBG, Bochs x86 et bien d'autres. Cela permet de déboguer 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[modifier | modifier le code]

  • Processeurs
    • Famille Intel 80x86
    • ARM, y compris jeu d'instructions Thumb
    • ARM64 (AArch64)
    • 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
    • Série Intel 196 : 80196/80196NP
    • Série Intel 51 : 8051/80251b/80251s/80930b/80930s
    • Série Intel i960
    • Série Intel Itanium (ia64)
    • Machine virtuelle Java
    • MIPS: mipsb/mipsl/mipsr/mipsrl/r5900b/r5900l
    • Microchip PIC: PIC12Cxx/PIC16Cxx/PIC18Cxx
    • MSIL
    • Famille Mitsubishi 7700 : m7700/m7750
    • Mitsubishi m32/m32rx
    • Mitsubishi m740
    • Mitsubishi m7900
    • Famille DSP 5600x : dsp561xx/dsp5663xx/dsp566xx/dsp56k
    • Motorola ColdFire
    • Motorola HCS12
    • NEC 78K0/78K0S
    • PA-RISC
    • PowerPC
    • SGS-Thomson ST20/ST20c4/ST7
    • Famille SPARC
    • 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

Notes et références[modifier | modifier le code]

Voir aussi[modifier | modifier le code]

Bibliographie[modifier | modifier le code]

  • (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,‎ 2011, 2e éd. (ISBN 978-1-59327-289-0, LCCN 2011293604)

Liens externes[modifier | modifier le code]