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 :
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 :
Toutes les fonctionnalités ne sont pas disponibles.
Pour voir la structure du code il suffit d'appuyer sur espace :
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 :
Il est aussi possible de tager les lignes en faisant click droit -> tag selected rows
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 :
Il est aussi possible d'avoir un apperçu de des variables du programme :
De voir le stack actuel :
Ce qui est dingo.
Les strings :
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à :
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 :
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 :
ctrl+f
: lancer une recherche dans le fichierg
: aller à une adressectrl + p
: ouvre le terminal de commandesesc
: aller à la dernière fenêtrectrl+z
: classiquee
: patcher une instructioni
: switch entre high level & assembly;
: ajouter un commentairef2
: ajouter un breakpoint