GHIDRA

Def :


Ghidra est un décompiler qui tente de prendre le langage machine pour le remettre sous sa forme lisible.

Setup :


Sur kali il suffit de run :

sudo apt install ghidra

dans le cas où ça ne fonctionne pas on met les erreurs dans chatGPT et ça va fonctionner.

Utilisation :


Analyse de code :


Généralement sous Kali on fait :

ghidra

On lance ensuite le soft, on créé un nouveau projet et on importe notre fichier :
Pasted image 20240703172320.png
Le fichier est bien ajouté :
Pasted image 20240703172438.png
Ensuite double click sur le fichier et on est bons,
pour analyser le fichier il suffit de double click dessus, il est aussi très recommandé d'activer le decompiler parameter ID.

Analyse de code :


La fenêtre la plus importante est la decompile, elle affiche le code C en fonction de la fonction qui est sélectionnée :
Pasted image 20240904111641.pngIl est aussi possible de retrouver rapidement une des fonctions dans le symbol tree :
Pasted image 20240904111813.png
Cela permet aussi de voir les imports et exports.
Il est aussi possible d'ajouter d'autres fenêtres, notamment la bytes qui est un hexdump :
Pasted image 20240904111959.pngDe plus pour un peu plus de clarté :
Pasted image 20240904112115.png
Un exemple d'utilisation de Ghidra pour faire du reverse : Exercices basiques#Avec Ghidra.
Il est aussi possible d'ouvrir la function call window qui permet de voir comment les fonctions sont appellées.

Patching :


Sous ghidra il est aussi possible de patcher des executables, c'est à dire modifier des instructions pour en afficher d'autres. Cela peut par exemple permettre d'afficher un résultat pour la suite.
Pour patcher une instruction :
Pasted image 20240905165426.png
On sélection d'abord la ligne et puis ctrl+shift+G.
Une fois le programme patché on fait File -> Export Program ou bien on appuie sur O et on exporte avec la même extension que le fichier original.
Il est particulièrement utile de patcher les conditions pour permettre d'obtenir les flags facilement.