web-dev-qa-db-fra.com

Quelle est la différence entre Ghidra et Ida?

Y a-t-il une comparaison entre Ghidra et Ida? Y a-t-il des caractéristiques et des fonctionnalités spécifiques que Ghidra, contrairement à Ida? Existe-t-il une bonne source (de préférence un livre) qui explique Ghidra en détail?

17
Avi

C'est largement subjectif, mais:

  • Ghidra est gratuit et open-source sur GitHub , y compris le décompilateur. IDA est très coûteux, en particulier lorsque vous commencez à ajouter des licences de décompilation.
  • IDA prend en charge certaines architectures que Ghidra ne prend pas en charge, et vice versa.
  • IDA a un débogueur, contrairement à Ghidra.
  • Ghidra a la capacité de charger plusieurs binaires à la fois dans un projet, tandis que le support IDA pour cela est limité et surtout un vilain hack. Cela signifie que vous pouvez tracer plus facilement du code entre une application et ses bibliothèques.
  • Le désassembleur de Ghidra intègre une analyse du flux de données, vous montrant d'où les données peuvent provenir lorsque vous cliquez sur un registre ou une variable. L'IDA a mis en surbrillance le texte "stupide" pour montrer d'autres utilisations de ce registre. Ces fonctionnalités sont des implémentations légèrement différentes du même concept et ont toutes deux leur utilité.
  • Ghidra a des projets collaboratifs de désassemblage/décompilation intégrés par conception, tandis que IDA nécessite des plugins pour faire de la collaboration et les fichiers de base de données IDA ne sont pas conçus pour être partagés.
  • Ghidra a un bouton d'annulation! Et il fonctionne! (IDA ne le fait pas et c'est super ennuyeux)
  • IDA est beaucoup plus mature et a beaucoup de petites fonctionnalités qui ont été ajoutées au fil des ans que Ghidra ne peut pas (encore) refléter.
  • L'IDA étant un produit plus mature et omniprésent, de nombreux outils open source sont construits autour de lui.
  • Ghidra semble mieux prendre en charge les très grandes images de micrologiciel (1 Go +) avec des performances décentes. Il n'a pas non plus de problèmes à analyser les images de micrologiciel qui déclarent de grandes régions de mémoire. L'IDA a toujours eu des problèmes avec cela et cela peut être assez frustrant.
  • Pour l'anecdote, la prise en charge de Ghidra pour le démontage des binaires du système d'exploitation Windows (par exemple kernelbase.dll) est actuellement interrompue en raison de certains bogues avec le décodeur d'instructions x86. Il y a des problèmes sur GitHub à ce sujet.

Ces points sont vrais au moment de la rédaction (mars 2019) mais peuvent changer avec le temps.

28
Polynomial

edit 2020-04-07: The Ghidra Book devrait sortir en juillet 2020. Actuellement, seuls les 8 premiers chapitres sont disponibles sous la forme d'un PDF à accès anticipé.

Cette question est mieux adaptée pour https://reverseengineering.stackexchange.com/questions/ .

Y a-t-il une comparaison entre Ghidra et Ida?

Oui il y a. L'une a été réalisée par Jeremy Blackthorne et Alexei Bulazel lors de la conférence de sécurité Infiltrate 2019.

Y a-t-il des caractéristiques et des fonctionnalités spécifiques que Ghidra, contrairement à Ida?

Voici des diapositives de la présentation qui comparent Ghidra, IDA et Binary Ninja:

  • Comparaison à 3 voies

    IDA vs Binary Ninja vs Ghidra

  • Décompilateurs: IDA Hex-Rays vs Ghidra

    IDA Hex-Rays vs Ghidra

  • Langage intermédiaire: Ninja binaire vs Ghidra

    ILs: Binary Ninja vs Ghidra

    Existe-t-il une bonne source (de préférence un livre) qui explique Ghidra en détail?

Pas encore de livre.

Quelques points importants:

  • Ghidra peut être étendu pour prendre en charge n'importe quelle architecture. La prise en charge d'une architecture peut être ajoutée via Sleigh
  • IDA a été refactorisé pour inclure une fonction d'annulation dans la version 7.3
5
julian