Ghidra
Ghidra (/ˈɡiːdrə/[2]) est un logiciel libre d'ingénierie inverse développé par la NSA. Son interface graphique intègre un désassembleur et un décompilateur afin de réaliser l'analyse de fichiers binaires. L'automatisation de certaines tâches ou l'ajout de fonctionnalités sont possibles grâce à un système de plugins qui peuvent être développés en Java ou en Python (via Jython)[3].
Créateur | NSA |
---|---|
Développé par | National Security Agency |
Première version | |
Dernière version | 10.2.2 () |
Dépôt | https://github.com/NationalSecurityAgency/ghidra |
Écrit en | Java, C++ |
Système d'exploitation | Multiplateforme |
Type |
Désassembleur Décompilateur Débogueur |
Licence | Licence Apache version 2.0 / Domaine public[1] |
Site web | https://ghidra-sre.org/ |
Ghidra est considéré par de nombreux chercheurs en sécurité comme un concurrent d'IDA Pro[4].
Contrairement à ce dernier, Ghidra ne possédait pas de débogueur dans sa version publique à sa sortie en 2019[5]. En effet cela restait un frein à son adoption. Des tentatives de plugins ont été faites pour combler ce vide.
Cette fonctionnalité a cependant été implementée après 2 ans de développement en juin 2021 avec la sortie de la version 10, au grand bonheur de la communauté qui a majoritairement adoptée cette boîte à outils[6].
Aujourd'hui, il est considéré comme le concurrent sérieux de IDA Pro, qui à la suite de sa disposition publique par la NSA, a sorti une version Home pour un usage personnel et met désormais à disposition une version gratuite et limitée à jour avec un décompilateur en ligne. Notons que par le passé, cette offre gratuite était une version dépassée et beaucoup plus limitée dans ses fonctionnalités.
Il est majoritairement écrit en Java et repose sur la bibliothèque Swing pour son interface graphique, son décompilateur est quant à lui écrit en C++.
Historique
L'existence de Ghidra a été initialement rendue publique via WikiLeaks en mars 2017[7] mais le logiciel lui-même est resté indisponible jusqu'à sa déclassification et sa sortie officielle deux ans plus tard[8]. Les fichiers binaires ont d'abord été publiés lors de la conférence RSA en mars 2019 ; les sources ont été publiées un mois plus tard sur GitHub[8].
Architectures prises en charge
Les architectures ou formats binaires suivants sont pris en charge[9] :
- 6502
- 68xxx et 6805
- 8051 et 8085
- ARM et AARCH64
- Atmel AVR
- CP1600
- CR16C
- Infineon TriCore
- Intel MCS-96
- Java et DEX bytecode
- M8C
- MicroMIPS
- MIPS 16/32/64
- Motorola HCS08, HCS12
- MSP430
- PA-RISC
- PIC 12/16/17/18/24
- PowerPC 32/64 et VLE
- RISC-V
- SPARC 32/64
- SuperH
- V850
- x86 16, 32 et 64 bit
- Z80
L'ajout d'une nouvelle architecture se fait par la description de ses instructions dans un langage dénommé SLEIGH[3].
Références
- (en) « ghidra/NOTICE », sur GitHub.com, (consulté le )
- (en) « Frequently asked questions », sur GitHub.com, (consulté le )
- (en) Alexei Bulazel et Jeremy Blackthorne, « Three Heads are Better Than One: Mastering NSA’s Ghidra Reverse Engineering Tool », (consulté le )
- (en) Catalin Cimpanu, « NSA releases Ghidra, a free software reverse engineering toolkit », ZDNet, (consulté le )
- (en) « can ghidra do dynamic analysis thing ? », (consulté le )
- (en) « What's new in Ghidra 10.0 », (consulté le )
- (en) « Ghidra », WikiLeaks (consulté le )
- (en) « The NSA Makes Ghidra, a Powerful Cybersecurity Tool, Open Source », Wired.com, (consulté le )
- (en) « "ghidra/Ghidra/Processors at Ghidra_9.2_build" », (consulté le )