Binary Ninja

Def :


Binary Ninja est un outil proche de Cutter qui fournit notament des fonctionnalités plus avancées et abouties.

Utilisation :


Interface :


Il est très facile de changer l'interface de cet outil :
Pasted image 20240909185522.png
Il est aussi possible d'enlever la synchronisation avec ce qui est indiqué en point n2.

Lire du code :


Binary ninja propose plusieurs niveaux d'analyse de code, pour le changer il suffit de faire :
Pasted image 20240909184952.png
Toutes les fonctionnalités ne sont pas disponibles.
Pour voir la structure du code il suffit d'appuyer sur espace :
Pasted image 20240909185115.png
Sinon on peut changer dans la fenetre déroulante.

Pour analyser du code plus facilement il est aussi utile de regarder les cross references ce qui permet par exemple de savoir où une variable à été utilisée ou appelée, par exemple :
Pasted image 20240909190446.png
Il est aussi possible de tager les lignes en faisant click droit -> tag selected rows
Pasted image 20240909193346.png
Il est aussi possible de rendre le code plus clair en faisant un click droit display as sur des nombres.

Autres Fonctions :


De nombreuses autres fonctions sont disponibles comme hexdump dans cet outils :
Pasted image 20240909185311.png
Il est aussi possible d'avoir un apperçu de des variables du programme :
Pasted image 20240909194203.png
De voir le stack actuel :
Pasted image 20240909194240.png
Ce qui est dingo.
Les strings :
Pasted image 20240909194318.png
De nombreuses fonctions sont disponibles tout autour du l'interface princiaple de binary ninja, certaines sont disponibles uniquement en version pro, pour cela des outils alternifs existent (notament pour la console il existe python pwn).

Analyser un fichier :


Pour analyser un fichier tous les outils sont disponibles dans binary ninja.
Par exemple dans : view -> triage summary ce qui permet d'en savoir plus sur les généralités du fichier, notamment son entropie, son MD5 ce qui peut permettre de le retrouver en ligne. Cela permet aussi de retrouver les imports qui sont faits dans ce fichier et donc de trouver des failles potentielles.

patcher un fichier :


Pour patcher un fichier des options existent déjà :
Pasted image 20240909195515.png
Un peut comme dans Cutter
Il est possible aussi de changer entièrement une instruction en appuyant sur la touche e
Il est possible aussi de sélectionner plusieurs lignes et de pouvoir les modifier en même temps.
Pour exporter le fichier ensuite : file -> save as -> save file contents only

Debugger un fichier :


D'abord on ajoute des breakpoints avec f2, ensuite on lance le process avec f6, on se retrouve sur la fenêtre suivante :
Pasted image 20240909202416.png
On peut donc lancer notre programme, le kill, etc...
Il est recommandé d'aller dans la console de target pour voir le résultat de l'execution.
Aussi les paramètres de cette fenêtre permettent d'ajouter des arguments à notre execution.

Racourcis :