Désassembleur interactif
( Apprenez comment et quand supprimer ce message ) L' outil de désassemblage interactif ( IDA ) est un désassembleur de logiciels qui génère du code source en langage assembleur...
L' outil de désassemblage interactif ( IDA ) est un désassembleur de logiciels qui génère du code source en langage assembleur à partir de code exécutable . Il prend en charge divers formats exécutables pour différents processeurs et systèmes d'exploitation . Il peut également servir de débogueur pour les exécutables Windows PE , Mac OS X Mach-O et Linux ELF . Un module complémentaire de décompilation , qui génère une représentation de haut niveau du programme analysé, similaire au code source C , est disponible en option.
IDA est largement utilisé en rétro-ingénierie logicielle , notamment pour l'analyse de logiciels malveillants et la recherche de vulnérabilités logicielles . Son décompilateur est l'un des frameworks de décompilation les plus populaires et les plus utilisés , et IDA est considéré comme la norme de facto du secteur pour le désassemblage de programmes et l'analyse statique binaire
Histoire
Ilfak Guilfanov a commencé à travailler sur IDA en 1990 et l'a initialement distribué en tant que logiciel en version d'essai . En 1996, la société belge DataRescue a repris le développement d'IDA et a commencé à le commercialiser sous le nom d'IDA Pro.
Les premières versions d'IDA ne disposaient pas d' interface utilisateur graphique (GUI) et fonctionnaient comme une application console étendue DOS , OS/2 ou Windows . En 1999, DataRescue a publié la première version d'IDA Pro avec une interface graphique, IDA Pro 4.0.
En 2005, Guilfanov a fondé Hex-Rays pour poursuivre le développement de l'extension IDA du décompilateur Hex-Rays. En janvier 2008, Hex-Rays a pris en charge le développement et le support d'IDA Pro de DataRescue.
En 2022, Hex-Rays a été rachetée par un groupe d'investisseurs mené par Smartfin, une société européenne de capital-risque et de capital-investissement . Parmi les co-investisseurs figuraient la société holding publique belge wallonne SRIW (Société régionale d'investissement de Wallonie) .
Caractéristiques
IDA désassemble un programme compilé pour le reconvertir en une représentation en langage assembleur. En plus d'effectuer un désassemblage de base, IDA annote également automatiquement les programmes désassemblés avec des informations sur :
- références croisées entre le code et les données du programme
- emplacements des fonctions, cadres de pile des fonctions et conventions d'appel de fonctions
- types de données reconstruits
Cependant, la nature du désassemblage empêche une précision totale et nécessite une intervention humaine importante ; IDA propose des fonctionnalités interactives pour faciliter l’amélioration du désassemblage. Un utilisateur type d’IDA commence par un listing de désassemblage généré automatiquement, puis convertit les sections de code en données et inversement, renomme, annote et complète le listing jusqu’à ce que son fonctionnement devienne clair.
Scripting
Les « scripts IDC » permettent d'étendre les fonctionnalités du désassembleur. Des scripts utiles sont fournis et peuvent servir de base à la création de scripts par l'utilisateur. Ces scripts sont le plus souvent utilisés pour modifier le code généré. Par exemple, il est possible de charger des tables de symboles externes et ainsi d'utiliser les noms de fonctions du code source original.
Des utilisateurs ont créé des extensions permettant d'utiliser d'autres langages de script courants à la place ou en complément d'IDA. IdaRUB prend en charge Ruby et IDAPython ajoute la prise en charge de Python . Depuis la version 5.4, IDAPython (nécessitant Python 2.5) est préinstallé avec IDA Pro.
Débogage
IDA Pro prend en charge un certain nombre de débogueurs, notamment :
- Les applications distantes Windows, Linux et Mac (fournies par Hex-Rays) permettent d'exécuter un fichier exécutable dans son environnement natif (vraisemblablement à l'aide d'une machine virtuelle pour les logiciels malveillants).
- Le débogueur GNU (gdb) est pris en charge sous Linux et OS X, ainsi que le débogueur natif de Windows.
- Un plugin Bochs est fourni pour le débogage d'applications simples (c'est-à-dire des exécutables UPX endommagés ou des exécutables mpress compactés).
- Un débogueur basé sur un code PIN Intel
- Un lecteur de traces
Versions
La dernière version complète d'IDA Pro est disponible via un abonnement annuel payant (version 9.0sp1 de décembre 2024), tandis qu'une version moins performante (limitée à x86), nommée IDA Free, est disponible en téléchargement gratuit.
Systèmes/processeurs/compilateurs pris en charge
- Hôtes du système
- Windows x86 et ARM
- Linux x86
- macOS x86 et Apple Silicon
- Formats de fichiers exécutables reconnus
- COFF et dérivés, y compris Win32/64/ PE générique
- ELF et dérivés (générique)
- Mach-O ( Mach )
- NLM ( NetWare )
- LC/LE/LX (OS/2 2.x+ et divers modules d'extension DOS)
- NE (OS/2 1.x, Win16 et divers extensions DOS)
- MZ ( MS-DOS )
- OMF et dérivés (génériques)
- AIM (générique)
- fichier binaire brut, tel qu'une image ROM ou un fichier COM
- jeux d'instructions
- Famille Intel 80x86
- Architecture ARM
- Motorola 68k et H8
- Zilog Z80
- MOS 6502
- Intel i860
- DEC Alpha
- Dispositifs analogiques ADSP218x
- Angstrem KR1878
- Série Atmel AVR
- Série DEC PDP11
- FujitsuF2MC16L/F2MC16LX
- Famille Fujitsu FR 32 bits
- 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
- Microprocesseur PIC : PIC12Cxx/PIC16Cxx/PIC18Cxx
- MSIL
- Famille Mitsubishi 7700 : m7700/m7750
- Mitsubishi m32/m32rx
- Mitsubishi m740
- Mitsubishi m7900
- Gamme Motorola DSP 5600x : dsp561xx/dsp5663xx/dsp566xx/dsp56k
- Motorola ColdFire
- Motorola HCS12
- NEC 78K0/78K0S
- PA-RISC
- PowerPC
- RISC-V
- Famille de PC au xénon
- SGS-Thomson ST20/ST20c4/ST7
- Famille SPARC
- Samsung SAM8
- Siemens C166
- Série TMS320Cxxx
- Compilateur/bibliothèques (pour la reconnaissance automatique des fonctions de bibliothèque)
- Borland C++ 5.x pour DOS/Windows
- Borland C++ 3.1
- Borland C Builder v4 pour DOS/Windows
- GNU C++ pour Cygwin
- Microsoft C
- QuickC
- Visual C++
- Watcom C/C++ (16/32 bits) pour DOS et OS/2
- ARM C v1.2
- GNU C++ pour Unix/Common
Logo
Le logo d'IDA Pro est une image recadrée de Françoise d'Aubigné, marquise de Maintenon . L'image du logo s'apparente à une peinture miniature de Françoise d'Aubigné attestée par un peintre de l'entourage de Pierre Mignard .
La version originale en niveaux de gris du logo a été introduite en septembre 1999, avec la sortie d'IDA 4.0. Ilfak Guilfanov a déclaré que le logo n'est pas une représentation de sainte Ida de Louvain .