Blog d'un Éternel Geek

Bokken : Open Source pour le Reverse Engineering

http://vivageek.livehost.fr/data/images/news/info/bokken.png

Bokken est une interface graphique pour les projets Pyew et radare de sorte qu'il offre presque toutes les mêmes caractéristiques que Pyew possède et certaines de ceux pour radare. Il est destiné à être un désassembleur de base, principalement, pour analyser les logiciels malveillants et les vulnérabilités.

 

Actuellement Bokken n'est ni un éditeur hexadécimal, ni un désassembleur très complet encore, donc il ne devrait pas être utilisé pour l'analyse de code trop complexe ou pour tenter de modifier des fichiers.

 

Cependant, il reste un bon désassembleur avec une myriades d'options bien agencées.

 

Bokken a été développé et testé sur Linux mais il fonctionne aussi sous Windows et OSX

 

Sous Unix une simple commande devrait suffire :

apt-get install bokken

http://vivageek.livehost.fr/data/images/news/info/bokken2.png

 

Dépendances :

 

http://vivageek.livehost.fr/data/images/news/info/radare.png

Radare

Install version 0.9.9 and add to the PATH

Python

Install version 2.7 and add to the PATH

Graphviz

Install latest version add to the PATH

PyGtk

Install version 2.24.0

GtkSourceview2

Veillez à le sélectionner pour l'installation lors de l'installation PyGtk

 

Pour Linux UN simple:

sudo apt-get install pyew python-radare

sudo apt-get install graphviz

sudo apt-get install python-gtk2

sudo apt-get install python-gtksourceview2

sudo apt-get install python

 

Pour obtenir toutes les fonctionnalités offertes par Bokken Vous pouvez également installer les exigences facultatives suivantes:

TidyLib est utilisé par Bokken pour analyser et le code HTML de format lorsque vous travaillez avec des URL.

sudo apt-get install python-utidylib

Psyco est un module d'extension Python qui peut considérablement accélérer l'exécution de tout code Python.

sudo apt-get install python-psyco 

 

Si vous avez déjà Bokken et toutes ses dépendances installées alors il est temps de commencer à l'utiliser. Selon la plate-forme que vous utilisez, les scripts pour lancer Bokken sera différent, mais, pour les deux plates-formes, vous pouvez choisir de les lancer avec ou sans paramètres. Ouvrez un terminal et lancez-le avec juste son nom: bokken

 

Sinon voici un lien direct : https://inguma.eu/projects/bokken/files

 

Vous devriez voir s'ouvrir un GUI une interface graphique plaisante qui va vous permettre de sélectionner un premier fichier à désassembler.

Il ressemble clairement aux niveaux des Possibilités à Hex et donc on se retrouve facilement dans les options diverses proposées par le script.

Si vous êtes sous windows vous devrez télécharger et installer les dépendances manuellement une à une pour que Bokken soit lancer. Sous kali Linux, vous installer Bokken puis c'est tout, les dépendances sont déjà dans les packages super.

http://vivageek.livehost.fr/data/images/news/info/bokken3.png

 

Pour les utilisateurs de Windows, le processus est presque le même que sous Linux. Le fichier que vous devez lancer est bokken.bat mais, avant de le lancer, examiner et modifier son contenu pour les adapter à votre installation:

echo Modify this script for you

python.exe c:\Program files\bokken\bokken.py

 

Voila maintenant voyons ce qu'il nous propose de bien suivez le Guide

 

Dès que le fichier est envoyé, Bokken va analyser le format (EXE,…) puis va afficher toutes les informations disponibles sur l'analyse.

Tout comme Hex on a un organigramme graphique plaisant où nous pouvons naviguer pour voir les principaux nœuds du programme EXE.

 

Vous êtes dans le Main : Fenêtre principal.

 

http://vivageek.livehost.fr/data/images/news/info/bokken1.png

 

Le panneau de gauche contient différentes informations analysée extrait du fichier, dans ce cas:

  • Fonctions
  • Sections
  • Symboles
  • Exportations

Le panneau de droite est l'endroit où les données réelles du fichier est affiché et il est divisé en plusieurs ou onglets.

 

Que peut-on faire avec ?

Désassembler (C'est un peu le but au départ)

http://vivageek.livehost.fr/data/images/news/info/desassembler.png

 

Graph view

Voir sous forme d'organigramme graphique une fonction choisis afin de l'isoler pour préciser ses ramifications dans le programme.

 

http://vivageek.livehost.fr/data/images/news/info/call_graph.png

 

 

Hexdump view

Voir le code en Hexadécimal aussi un classique, on en attendait pas moins. Mais comme je disais au début impossible par contre de modifier le code et ça me gêne un peu. C'est vrai le but d'un Hexa est bien de bidouiller tout ça et la ben on est un peu reset.

J'espère qu'ils prendront en compte cette maladresse car si l'on ne peut que voir sans toucher moi je dis : Au revoir !

 

http://vivageek.livehost.fr/data/images/news/info/hexdump.png

 

 

Strings view

Cette vue montre toutes les chaînes trouvées dans le fichier avec leur offset.

Toutes les vues ont un panneau de recherche qui peut être appelé avec la touche de liaison "Ctrl F" et si vous cliquez dessus la chaîne sera recherchée sur l'onglet de code.

Pas mal du tout il n'ya qu'a voir le résultat.

 

http://vivageek.livehost.fr/data/images/news/info/strings.png

 

 

Ensuite, on a encore les Interactive view et File info view qui permet de naviguer entre les informations. Et quelques petits outils qui peuvent bien servir comme des outils de conversion.

 

Pour finir, je dirais un bon programme open source avec de multiples fonctions attendus et d'autres malheureusement manquantes à l'appel. Je reviens la dessus le fait de ne pas pouvoir taquiner le code source m'a mis un frein. Je dirais qu'on peut l'utiliser en coopération avec d'autres plus pro afin de pouvoir comparer certaines fonctions.

 

Liens du site : http://bokken.re/

Source : n0where.net

 

Merci à bientôt.

 






 Geek me     Je suis un Geek dans l'âme. 18 ans à silloner internet pour récolter des informations afin de comprendre son fonctionnement. Idéalement j'étudie également le comportement humain.

C'est afin de vous partager mes connaissances que j'ai ouvert ce blog alors je vous souhaite une bonne lecture.



À lire également


Écrire un commentaire

Votre adresse de messagerie ne sera pas publiée.

Quelle est la dernière lettre du mot znbyzc ? :