Existe-t-il un désassembleur (et pas seulement un débogueur en direct) dont les capacités sont supérieures à celles d'IDA ? IDA est merveilleux, et quelque peu étonnant dans sa robustesse et son utilité pour l'inversion. Cependant, sa licence est assez coûteuse. Existe-t-il une alternative viable ou IDA détient-il le monopole sur ce marché ?
Je n’attends pas d’une alternative qu’elle soit aussi bonne qu’IDA, je cherche simplement d’autres options qui pourraient être plus abordables et suffisamment utiles.
EDIT : De préférence, un support multi-plateforme devrait exister, bien que cela soit optionnel. MIPS, ARM, x86, et x86-64 serait bien, mais un désassembleur qui gère n'importe lequel de ces systèmes est une bonne option à connaître.
Si vous cherchez un concurrent, je pense que [ImmunityDebugger][1] et [OllyDbg][2] peuvent concourir en partie pour [tag:dynamic-analysis] et [Hopper][3] en partie pour [tag:static-analysis].
Cela dit, il y a un grand écart entre les capacités que vous obtenez avec les logiciels susmentionnés et IDA.
IDA Pro est assez unique dans ses capacités et si vous ajoutez le plugin Hex-Rays Decompiler dans l'équation, les choses semblent sombres pour les aspirants concurrents. Cependant, pour un désassemblage occasionnel et même une certaine décompilation, Hopper semble être un bon choix pour ceux qui ne sont pas prêts à débourser des centaines de dollars pour IDA Pro. Si vous voulez un tour gratuit, [radare2][4] est probablement le prochain choix, mais il faut s'y habituer.
Ayant obtenu ma première licence IDA Pro Standard en tant qu'étudiant, je dois admettre que le prix est élevé, mais il vaut chaque centime. Lorsque j'ai commencé à travailler professionnellement avec des choses liées à RCE, j'ai d'abord passé à la licence "normale", puis à IDA Pro Advanced pour obtenir le support x64.
Gardez également à l'esprit qu'il existe [une version freeware d'IDA][5] avec des restrictions de licence (mais convenant aux amateurs ou aux étudiants) et des restrictions de capacités.
[1] : http://debugger.immunityinc.com/ [2] : http://www.ollydbg.de/ [3] : http://www.hopperapp.com/ [4] : http://radare.org/ [5] : https://www.hex-rays.com/products/ida/support/download_freeware.shtml
J'ai récemment utilisé [Hopper] (http://www.hopperapp.com/), et bien qu'il n'atteigne pas le niveau d'IDA, il est étonnamment sophistiqué, surtout si l'on considère son prix. Sa principale plate-forme est OS X, mais il existe également des versions pour Linux et Windows. La version OS X intègre également gdb, ce qui vous permet de l'utiliser comme débogueur.
Le premier outil qui me vient à l'esprit est [Hopper][1], qui n'est plus lié à OSX. Il prend en charge le débogage (du moins sous OSX), mais se concentre sur l'analyse statique, ce qui semble être ce que vous recherchez.
Il permet de décomposer les blocs de base en un graphique de flux de contrôle, offre un support de décompilation rudimentaire et permet de renommer les fonctions au fur et à mesure que vous leur donnez un sens. Peut-être que quelqu'un qui l'utilise à la place d'IDA pourra vous donner une meilleure comparaison, je n'ai joué que brièvement avec.
Par ailleurs, la version gratuite d'IDA est plutôt performante et vaut le coup d'œil si vous ne l'avez pas essayée.