Logo Blog perso d'Ozwald

metasm, en mieux (ou pas)

Par Oz le - Sécurité
Gentoo Outil Reverse Engineering miasm python

Oz2020Migration : True

Il n'y a que deux choses qui manquent à Python, à mon humble avis : metasploit, et metasm. Or il semblerait qu'il y a quelques jours/semaines, l'un de ces deux manques ait été comblé par miasm, l'équivalent de metasm en python ! J'étais donc obligé de faire au moins un petit billet là dessus :)

Engine - Creative Common by "cbowns" on Flickr

Comment installer miasm ? La page officielle du projet est relativement claire, mais ne s'applique pas immédiatement (en particulier quand on est sous gentoo). Voilà donc la démarche que j'ai suivi, ce n'est peut être pas la meilleure mais "chez moi ça marche"(c). D'abord voyons les dépendances :

  • Grandalf (https://github.com/bdcht/grandalf) in order to render graphical disassembler.
  • Modified libtcc (http://bellard.org/tcc/) to Jit code for emulation mode. see below
  • python-ply for parsing
  • numpy
  • python-virtualenv
  • python-dev
  • python-qt4

Allons y par étape en adaptant pour gentoo :

Grandalf viendra tout seul quand on clonera le méta-répertoire, on ne s'en occupe donc pas.

Concernant la libtcc on va suivre les instructions tout simplement : git clone git://repo.or.cz/tinycc.git puis on édite le Makefile conformément à ce qu'indique le site de miasm, puis make...échec texi2html: Command not found...Pas de problème emerge -v texi2html puis on re-tente le make : victoire ! Il ne reste plus qu'à make install.

Pour "python-ply" il faut en fait installer "dev-python/ply", sauf qu'il est masqué par le keyword x86. On démasque donc et on installe joyeusement : echo "dev-python/ply ~x86" >> /etc/portage/package.keywords && emerge -v ply

Pour "numpy" rien de plus simple emerge -v numpy.

Idem pour "python-virtualenv" qui s'installe sans poser de problème avec un simple emerge -v virtualenv

Pour "python-dev" c'est encore plus simple : rien à installer puisque nous sommes sous Gentoo :)

Enfin "python-qt4" est lui aussi assez simple à obtenir puisqu'il suffit d'un emerge PyQt41

Maintenant on clone le répertoire hg clone https://code.google.com/p/smiasm/ smiasm...fail. Après un emerge -v hg-git ça ne se passe pas mieux...Après quelques recherches la version de mercurial stable sous gentoo est la 1.7, or le support des subrepository GIT n'apparait dans mercurial qu'à partir de 1.8 -_- ....bon...echo "=dev-vcs/mercurial-1.8.2 ~x86" >> /etc/portage/package.keywords && emerge -v =dev-vcs/mercurial-1.8.2...damned ça foire encore. Après un poil de trifouillage il semblerait que ça soit le clonage de grandalf qui foire...probablement à cause du .hgsub du répertoire smiasm qui pointe (à tort?) vers [git]https://github.com/bdcht/grandalf ...Bon on clone grandalf à la main git clone git://github.com/bdcht/grandalf.git, et également miasm parceque "chezmoiçaapasmarché"(c) hg clone https://code.google.com/p/miasm/ miasm -v --traceback ainsi que le README.txt qui est à la racine du repository smiasm et, plus important : pyMakefile et Makefile. Pfiou, tout ça ! Maintenant on revient sur le chemin tracé par le site officiel : on tape donc make && make install dans le répertoire de smiasm..victoire :) !!!

On teste si tout marche bien cd miasm/example/ && python disas_and_graph.py /bin/ls ...FAIL NameError: global name 'route_with_nurbs' is not defined

Bon, on re-trifouille et je vous fait grace des détails. Au final la méthode que j'ai employé (et qui marche sur gentoo et ubuntu 10.4 une fois les dépendances de chaque distro réglées) c'est :

  1. D'abord on se débarasse du problème de TCC en suivant à la lettre les instruction du site officiel smiasm : clone git://repo.or.cz/tinycc.git, ensuite on rajoute "-fPIC" dans les CFLAGS du fichier Makefile (CFLAGS+=-g -Wall -fPIC) puis on compile/installe : ./configure && make && make install
  2. Maintenant on attaque smiasm à proprement parler : On clone une première fois smiams : hg clone http://code.google.com/p/smiasm/, ça se termine avec un message d'erreur mais "pas grave". On télécharge ensuite à la main les fichiers Makefile et pyMakefile depuis l'accès HTTP au repository (http://code.google.com/p/smiasm/source/browse/)
  3. On clone à la main grandalf parce que le .hgsub de smiasm utilise une notation exotique qui n'est comprise ni par le mercurial gentoo par défaut ni par le mercurial ubuntu 10.4 par défaut : cd smiasm && rm -Rf grandalf && git clone git://github.com/bdcht/grandalf.git grandalf
  4. On fait un rollback de version de grandalf puisque les versions commitées depuis juillet dernier ne semblent plus compatibles avec miasm (disparition de la fonction route_with_nurbs) : git checkout a851b359185132645d9dce3d11037f3263604358
  5. Il ne reste plus qu'à compiler et installer smiasm :) ! cd .. && make && make install

A présent on peut tester le tout cd miasm/example/ && python disas_and_graph.py /bin/ls. Victoire :

miasm - test script

Il ne nous reste plus qu'à dévorer la documentation pointée par Sid2 et à nous les joies du bas niveau avec encore plus de facilité ! A bientôt donc pour de nouveaux billets passionants (en tout cas j'espère qu'ils réussiront au moins à me passioner lors de leur rédaction lol) !


ipv le 2011/08/30 15:25

Pour l'install auto sur debian/ubuntu :
http://www.ring0.me/scripts/miasm_i...
;)

Ozwald le 2011/08/30 22:43

J'avais déjà vu le script mais je ne dois pas avoir de bol parce, "chezmoiçamarchaitpas"(c) malheureusement :-(

Ceci dit, encouragé par l'intéret porté à mon mini retour d'expérience ^^, je viens de refaire quelques bidouilles et finalement le clonage du git grandalf fonctionne sur la gentoo à condition de rajouter le flag "gnutls" à mon package curl (j'étais encore en "ssl" simple, oui j'ai honte :-/)

Ce qui m'inquiète un poil c'est que le clonage de grandalf me descend une version où "route_with_nurbs" n'existe pas dans "grandalf/routing.py" donc je me dis que, probablement, le problème de version de grandalf se pose toujours et que le script "example/disas_and_graph.py" ne marchera toujours pas (ce qui ne semble pas adressé par le script. Je suis le seul à avoir ce problème de "route_with_nurbs" ?)

...Bref assez de digression Gentoo, revenons aux debian-like : je viens de revérifier sur internet (n'ayant pas accès à mon ubuntu en ce moment pour vérifier sur pièce) et la version de git qui vient avec lucid (10.04, la dernière LTS) c'est la 1.4.3-1, donc on a probablement trouvé d'où venait mon problème de fetch puisqu'il faut un git plus récent que 1.5.6-4 :-/ En résumé : pour ubuntu il faut donc au moins être en maverick (10.10) pour que le clonage git (et donc le script) fonctionne puisque Maverick propose la version 1.6.3-1.

Seule question qui reste en suspens : quid de la version de grandalf clonée et de la disparition de la fonction "route_with_nurbs" dans grandalf/routing.py qui semble pourtant être utilisée par miasm ?

serpi le 2011/08/31 18:30

Yop

oué le capitaine igloo qui maintient Grandalf avait une merde sur un patch, c'est pour ca que le meta repo SMIASM avait un pointeur grandalf sur l'avant dernier patch, qui du coup, n'est pas appliqué quand on clone a la main. Tout devrait rentrer dans l'ordre (ainsi que le .git) sous peu. (ou pas, bien évidement)

ps:chémoicamarche
pps: fais gaffe, tu disasm un binaire /bin/ls ELF64 en utilisant le moteur de disasm 32 bit, d'ou un code étrange.
ppps: je réponds a la future question: non le moteur 64 bit de disasm est pas fini

The Rasta Gods are pleased for your sacrifice.

  1. Ce qui peut prendre pas mal de temps si jamais vous devez recompiler qt-core :( ...
  2. Merci d'ailleurs, sans ce blog post je ne l'aurai jamais trouvé lol

Les mains dans le cambouis

Par Oz le - Électronique
Gentoo Hack arduino robot électronique

Après avoir passé des mois à faire de la sécurité informatique à haute dose on peut avoir envie de se changer un petit peu les idées (mais vraiment juste un peu). Ce genre de moment est l'occasion révée pour ressortir des vieux projets des placards ! Pour ma part j'ai ressorti 3~4 vieux projets et en moins de 2h ils ont tous, sauf un, dérivé vers la sécurité informatique (on ne se refait pas ^^ !). Histoire de jeter malgré tout une petite pierre hors de la thématique usuelle de ce blog je vais donc vous parler du dernier de ces projets (ça reste du Hack, ne vous inquiétez pas ;) )

Robot - Based on a picture published under the Creative Common license by "vmario" on Flickr

Il y a fort fort longtemps dans une contrée pas si éloignée que ça j'ai participé deux années de suite à la coupe de France de robotique. Nos deux participations furent des fiascos mais tant pis, on s'était quand même bien amusé ! Mes responsabilités dans l'équipe se cantonnaient au domaine informatique1 et il faut bien avouer que c'était pour le mieux car j'étais une quiche en électronique (surtout en comparaison avec les brutes qu'on avait de ce coté là !). Le temps a passé et j'ai toujours considéré que connaitre un peu d'électronique m'ouvrirait pleins de nouveaux horizons d'amusements... Il y a quelques mois de celà j'ai donc craqué et j'ai investi lourdement (au moins...pfiou....facilement...oula....25£ au bas mot :D !) dans un arduino !!! J'ai également ratissé ebay, dealextreme, et oomlout pour obtenir une plaque de prototypage, des cables, des résistances de toutes les valeurs possibles, quelques diodes, et un capteur de distance infra-rouge 2.

Une fois tout ce petit matériel reçu j'ai enfin pu m'amuser à faire clignoter mes LED, à changer les patterns de clignotements en fonction de la distance retournée par le capteur, etc. Puis mon jouet est tombé dans l'oubli, submergé par un ras de marré de sécu informatique. La semaine dernière l'envie de ressorti mon arduino s'est fait sentir et en particulier celle de lui faire commander des moteurs ! Pour le signal de commande aucun problème, l'arduino possède une commande toute faite pour envoyer une PWM sur un port de son choix. Reste donc à acheter des moteurs adéquats, et à trouver une façon de leur envoyer de la puissance.

Pour faire simple j'ai d'abord acheté deux micro moteurs 6V consommant 40mA. C'est extrèmement faible, mais c'est pour une bonne raison : l'arduino est capable de fournir cette puissance là tout seul, sans électronique de puissance supplémentaire :) En choisissant ces moteurs je m'assure donc de pouvoir jouer un petit peu mais probablement pas de faire un robot capable de se déplacer. En effet l'arduino seul fournira à mes moteurs la modeste puissance de 0,2W3, à titre de comparaison à la coupe de France nos moteurs tournaient autour des 30~40W :-D

Seulement voilà : la livraison de mes moteurs devrait prendre au moins 10 jours :-( ...Du coup je me suis dit qu'en les attendant j'allais réfléchir à une carte de puissance capable d'alimenter de plus gros moteurs (et donc, pourquoi pas, de rendre mon arduino mobile). C'est à ce moment du billet qu'on retombe dans l'informatique (et qu'on compte sur les doigts d'une main le nombre de mes lecteurs qui sont arrivés jusqu'ici lol) : pour confirmer les cartes de puissance que je pourrait imaginer j'ai décidé de les simuler sur ordinateur plutôt que d'envoyer un mail toutes les 10mn pour demander leur avis à mes amis qui sont forts en électroniques. Mais pour simuler un circuit électronique il faut un logiciel de simulation électronique, or il s'avère que ce n'est pas si simple à trouver. C'est donc là que ce billet prend tout son intéret : vous faire part de mon retour d'expérience en la matière et vous éviter de galérer autant que moi si l'envie vous prend de faire mumuse avec un fer à souder virtuel.

Le cahier des charges est simple : il me faut un logiciel gratuit, fonctionnant sous linux, et qui soit capable de simuler tout les petits circuits simples auxquels je pourrai penser. Après quelques recherches sur google j'ai trouvé pas mal de pages faisant des comparatifs des différents logiciels disponibles malheureusement beaucoup des infos présentes sur ces pages étaient vieilles et ne correspondaient plus du tout à la réalité. Du coup j'ai passé plusieurs jours à débrousailler le terrain pour ne finalement conserver que deux logiciels valables : Oregano d'une part, et gEDA d'autre part.

Oregano

Oregano - screenshot by Ozwald

J'ai commencé par Oregano parcequ'il a une interface super user-friendly et semble monolythique (donc simple). A l'usage il est effectivement très agréable mais je lui ai très vite trouvé deux inconvénients :

  • Impossible de trouver comment faire des mesures de courant. Poser des sondes de tension est enfantin, mais les sondes de courant doivent se cacher quelque part au fin fond d'un menu d'option et je ne les ai pas trouvé...
  • régler finement les paramètres de ses composants (en particulier des semi-conducteurs) parait impossible. En pratique c'est possible mais ça n'a rien d'intuitif. En effet, alors que toute l'interface est ultra simpliste, il faut aller éditer l'onglet "model" des propriétés du composant pour y renseigner le model SPICE brute (ce qui est franchement cabalistique et semble contre-nature par rapport au reste de l'interface "clic clic").

Finalement je pourrai l'utiliser...d'autant qu'il permet d'exporter les schéma au format netlist (j'expliquerai ce que c'est un peu plus tard) et que je pourrai donc facilement faire mes mesures de courant. Mais bon...comme je suis passé à gEDA quand je n'arrivais pas à spécifier les caractéristiques d'un pauvre transistor bipolaire, je reste pour l'instant sur gEDA !

gEDA

Alors là c'est du lourd ! gEDA est en fait un conglomérat de plusieurs logiciels spécialisés chacun dans une étape du travail de l'électronique, ce qui lui permet d'être très puissant4 mais aussi de faire très peur aux débutants :-D En réalité, après m'être penché un petit peu sur le monstre, les fonctions que je souhaite réaliser se résument dans seulement deux tout petit logiciels qui se maitrisent finalement assez vite.

gschem - Screenshot by Ozwald

Tout d'abord il y a gschem qui permet de "dessiner" son schéma électronique. Le maniement est beaucoup moins intuitif que celui d'oregano mais au moins il est homogène : que celà soit pour paramétrer un transistor ou une résistance la démarche est la même (à savoir : vous n'avez qu'à ajouter manuellement à votre objet un paramètre de nom "value" qui contient le code SPICE du composant). Cet outil ne sert qu'à dessiner le schéma par contre, vous ne pourrez pas faire de routage avec, et vous n'avez pas à placer de sondes de tensions/courants/autre sur le schéma comme vous devez le faire avec oregano. Une fois le schéma dessiné vous le sauvegarder au format gschem (format par défaut) et vous passez au logiciel suivant...

gspiceui - Screenshot by Ozwald

...gspiceui ! Le petit logiciel gspiceui (qui ne fait pas parti de la suite gEDA d'ailleurs lol) va vous permettre de simuler votre circuit. D'ailleurs si vous êtes sous gentoo pensez à le compiler avec les flags "waveform" et "schematics"5, si vous êtes sous ubuntu n'utilisez pas la version packagée mais allez plutôt télécharger la dernière6.

Bref, pour réaliser une simulation avec gspiceui vous devrez importer le schéma réalisé avec gschem (menu File>Import), vous sélectionnez les composants du schéma que vous voulez observer, vous sélectionnez le type de simulation à faire (la simulation temporelle correspond à l'onglet "Transient"), vous choisissez les paramètres temporels de la simulation, les grandeurs que vous voulez observer (courant, tensions, etc.) puis il ne reste plus qu'à créer un fichier de simulation (menu Simulate>Create"), à lancer la simulation (menu Simulate>Run), et à lancer l'appli de visualisation de vos courbes (menu Simulate>Data viewer).

Une fois le "Data Viewer" lancé vous pouvez glisser/déposer les grandeurs que vous voulez observer depuis la fenêtre flotante contenant la liste de toutes les grandeurs disponibles jusqu'à la zone de traçage de courbe et voilà !

Il ne me reste plus qu'à conclure en vous disant qu'aussi bien oregano que gspiceui s'appuient en fait discrètement sur des moteurs de simulation électronique indépendants (le plus connu étant "SPICE", mais gnucap fonctionnant tout aussi bien si ce n'est mieux (c'est d'ailleurs ce dernier que j'utilise)) ; Que ces moteurs de simulation mangent des fichiers au format "netlist" qui sont générées par oregano ou gspiceui7 ; Que les deux derniers screenshots (gschem et gspiceui) correspondent justement à un schéma d'alimentation de puissance pour moteur que j'ai moi-même pensé ; Que cet amplificateur de puissance fonctionne ; Qu'il est super simple et tout pourri aussi bien en rendement qu'en fonctionnalités (il ne permet de faire tourner le moteur que dans un seul sens par exemple) ; Mais qu'il fonctionne (oui, j'en suis fier :-p !) ; Et enfin que je vous déconseille de l'utiliser en l'état car sur les screenshots il manque la diode de roue libre.

Allez, on se quite sur la description SPICE d'une diode (pour vous prouver que c'est vraiment cabalistique et que ça ne colle pas du tout avec l'interface bisounours d'oregano) :

MODEL 1N1004 D (IS=0.5UA RS=6 BV=5.20)


Gorgonite le 2011/06/24 00:07

Pourquoi ne pas passer par des techniques de co-modélisation ? histoire de simuler et valider rapidement, puis de raffiner ton matériel avec un langage comme VHDL et le module AMS pour la partie analogique ?

Enfin, je dis ça a priori... pas eu envie d'investir dans Arduino, la mode du moment :)

hvar le 2011/06/24 10:27

Article interessant. Je partage le même constat :
Je me suis retrouvé avec un arduino qui a vite fini au plaquard.
Mes cours d'élécs sont loins et j'ai pas réussi à trouver de bookin satisfaisant.

La démarche empirique avec un simulateur j'y ai pensé mais j'ai pas réussi à trouver de logiciel simple (et gratuit). gEDA ça me fait un peu peur mais dès que j'aurais le temps je vais essayer de m'y mettre un peu mieux.

C'est quand même étrange cette absence de logiciels ?!

dromi le 2011/06/26 17:54

Côté logiciel d'EDA libre je te propose de jeter un œil à Kicad qui a ses propres avantages et ses propres défauts. En plus il est d'origine française (cocorico !). Sinon si tu fais juste de la simulation, regarde QUCS qui a de très grandes ambitions (notamment celle de se passer de SPICE) mais dont le rythme de développement n'est pas aussi rapide qu'on pourrait espérer. Il devrait néanmoins être pleinement utilisable dans ton cas. Pour ma part je n'ai pas tenu longtemps sous Geda, qui pour mes propres besoins, est vraiment pas assez abouti. C'est un peu comme si un graphiste voulait travailler avec Paint... Mais je n'ai malheureusement pas trouvé de solution libre satisfaisante, ni gratuite en fait, ni sous linux d'ailleurs, et pas à moins de 1000€ :) (et je n'ai pas vraiment le temps de contribuer à l'amélioration des logiciels sus-cités)
Et n'hésite pas à demander de l'aide à tes amis électroniciens ;)

Ozwald le 2011/06/27 22:12

@Gorgonite > Alors là il va falloir que tu me traduise ton message tranquilement autour d'une bière parce que à part "VHDL" je n'ai rien saisi :-D

@hvar > Oui c'est étrange, mais en fait pour pas mal de domaines un petit peu pointu il est difficile de trouver des logiciels libres de qualité (domaine pointu => peu de personnes intéressés => peu de contributeurs => peu de logiciels de qualité).

@dromi > QUCS n'est pas packagé gentoo :-( Pour kicad il n'a pas l'air de faire de simulation...remarque s'il est capable d'exporter pour gspiceui c'est tout ce qu'on lui demande, donc j'y jetterai un oeil. Merci du tuyau :) ! (et je note l'invitation, je n'hésiterai donc pas à te harceler pour avoir ton avis sur mes montages foireux lol)

Gorgonite le 2011/06/29 00:08

Ozwald> aucun problème... faut juste que tu trouves un créneau (moi ça va en ce moment côté créneau <_< )

si tu as déjà une belle spécification de ce que tu souhaites, un moyen (simple) d'arriver à tes fins, serait de passer par un outil comme l'Atelier B, et laisser la génération de code faire son boulot dès que le raffinement est arrivé au stade implantable
(mais le codesign avec des HDL et des méthodes formelles pour faire top->down et bottom->up c'est quand même plus sexy :p)

Gorgonite le 2012/03/07 21:47

Au passage, as-tu essayé scilab/xcos et sa palette électronique ? sûrement plus simple qu'un outil orienté synthèse dans un premier temps :)

  1. et un petit peu de mécanique quand ça se résumait à manier l'arme ultime du travail propre : le pistolet à colle
  2. le même type que ceux qu'on avait utilisé sur notre robot :)
  3. Souvenez-vous : P = UI. Dans mon cas I=40mA et U=5V (et non pas 6V, car l'arduino sort en 5V tout simplement)
  4. Vous pouvez tout faire avec gEDA, du design de schémas aux plans de routage en passant par les simulations électriques de tout poil
  5. sinon vous ne pourrez pas tracer de courbes, ou vous ne pourrez pas importer les schémas dessinés par gschem
  6. la version packagée sous ubuntu souffre d'un bug tout con qui rend le lancement de simulation impossible si vos paramètres de langue utilisent une virgule au lieu d'un point pour les nombres décimaux...ce qui est le cas en Français
  7. C'est justement lors de la génération des fichiers netlist que le problème de séparation des décimales rend la version de gspiceui packagée Ubuntu (9.98) inutilisable en environnement français

p0wned...ou pas

Par Oz le - Geek
Gentoo Linux kernel

Est-ce-que l'on devient parano à force d'en apprendre de plus en plus sur l'(in)sécurité informatique, ou bien est ce que l'on cherche toujours à en apprendre plus sur l'(in)sécurité informatique parce que l'on est parano ? En tout cas aujourd'hui il m'en est arrivé une belle...

Tux

Aujourd'hui donc, je profite d'avoir un peu de temps devant moi pour regarder les mises à jour disponibles pour mon pc et je trouve :

  • des mises à jour de librairies obscures, elles seront mises à jour en tant que dépendances de plus gros logiciels, je n'y fais donc pas attention
  • des mises à jour de logiciels que j'utilise tout les 36 du mois, je les mettraient à jour "quand j'aurai le temps"
  • des mises à jour de logiciels que je considère comme "critiques" parce que je les utilise souvent et qu'ils sont assez connus pour attirer les exploits dès qu'une faille est publiée (citons par exemple firefox, thunderbird, mplayer, etc.)
  • et en cadeau bonus aujourd'hui : une mise à jour du noyau est disponible (en fait elle devait l'être depuis un moment, ça faisait bien un mois que je n'avais pas fait de mise à jour sérieuse...oui je sais c'est mal)

Bon, je lance quelques mises à jours de logiciels importants, puis la mise à jour des sources de mon noyau, un petit tour dans le menuconfig, je le recompile, hop modules_update, je copie mon tout nouveau noyau tout beau tout rutilant, et je reboot enfin. Et là, au reboot, le gentil petit "tux" qui est normalement en boot logo lors de la séquence de démarrage en haut à gauche de l'écran a disparu, à sa place une espèce de taupe masquée O_O !

Tuz

Du coup je cogite rapidement : je me souviens des serveurs de package de debian qui s'étaient fait rooter il y a quelques années, je remet en doute mon jugement de "gros canulard" concernant anti-sec et leur fameux "openPOWN" qui permettrait d'exploiter un 0day dans openSSH, bref je commence à jouer le parano. Du coup j'éteint mon PC, je débranche son cable réseau, et je le boot sur une backtrack live...après analyse rapide : rien de particulièrement bizarre à part ce logo...et de toute façon serais-je capable de trouver quoi que ce soit d'étrange si je m'était réellement fait rooter ? Pas sur. Du coup je boot un autre pc (sur une live clef usb...on ne sait jamais) et je commence à farfouiller sur le net à la recherche d'information sur cette "taupe masquée", après tout c'est peut être la signature d'un groupe de hack connu...Ca m'a bien pris 20mn pour trouver qu'en fait ce n'était pas une taupe mais un diable de tazmanie, et que je ne m'étais pas fait rooter du tout : c'est un logo mis en place exceptionnellement dans la version 2.6.29 du kernel linux afin de sensibiliser à la survie des diables de tazmanie...grand moment de solitude.

K.I.S.S.

Par Oz le - Geek
Fluxbox Gentoo Linux

La philosophie du K.I.S.S.

A priori l'écrasante majorité d'entre vous a pensé à un groupe de rock ou à un baiser à l'anglaise en lisant le titre de ce billet.

A priori l'écrasante majorité d'entre vous s'est trompé sur le sens de ces quelques lettres dans le cadre de ce billet ;) !

Ce billet est en réalité intitulé KISS en référence au proverbe "KISS"1. Ce proverbe est en fait l'acronyme anglais de "Keep It Simple, Stupid", que l'on pourrait traduire par "Fais simple, Imbécile !", et qui est donc une apologie de la simplicité.

KISS

Et que doit on garder simple alors ?

Si j'ai choisis d'intituler ce billet "KISS" c'est parce que j'avais envie de vous parler de l'environnement graphique de mon pc et qu'en y réfléchissant j'ai réalisé qu'au cours de ces dernières années j'avais de plus en plus appliqué ce proverbe à mon choix d'environnement graphique.

Pour les quelques égarés qui liraient ce blog et qui n'auraient jamais touché un linux de leur vie je rappele qu'un gestionnaire de fenêtre (ce que j'appele "environnement graphique") c'est la partie de l'OS qui est en charge d'afficher le bureau, les fenêtre, tout le merdier quoi (en très résumé :) ). Sous Windaube il n'y en a qu'un de disponible (toutes vos fenêtres ont la même tête, et il n'est pas envisageable d'en changer), sous linux il y en a plusieurs (du coup on peut en imaginer un où les fenêtre seraient ronde, ou bien un autre où les les boutons "agrandir", "réduire", et "fermer" seraient chacun dans un angle de la fenêtre au lieu d'être les uns à coté des autres en haut à droite, etc.). Et pour les non-égarés qui connaissent tout ça je les imagine maintenant, la bave trollesque aux lèvres, dans l'attente de l'annonce de mon choix entre KDE et Gnome...et je vais les décevoir : je suis utilisateur de Fluxbox ^^ !

Fluxbox c'est un gestionnaire de fenêtre léger, simple, et qui fait son travail de gestionnaire de fenêtre ni plus ni moins. KDE et Gnome, eux, sont des bureaux complets : ils embarquent le gestionnaire de fenêtre mais aussi l'explorateur de fichier et une horde d'autres petits logiciels pour répondre aux besoins de tout les jours. Moi je n'aime pas les logiciels qui essaient de deviner mes besoins de tout les jours, et encore moins ceux qui essaient d'y répondre en ramenant une horde d'outils logiciels pour ça !2

Tools - Creative Common by mtneer_man on Flickr, avr. 2009

Le choix du roi

Oui le titre de ce paragraphe peut paraitre prétentieux mais comme je le suis un peu et que de toute façon c'est une expression : je me permets ! Donc, une fois le choix de Fluxbox fait, il m'a tout de même fallut trouver les "petits logiciels qui répondent à mes besoins de tous les jours" (puisque, je me répète, Fluxbox vient sans rien d'autre que la capacité d'afficher des fenêtres) et ce sont bien tout ces choix, affinés au cours des années, qui donnent sa personnalité à mon environnement graphique. En voici la liste, brute de pomme :

  • Thunar : Explorateur de fichier esthétique et avec peu de dépendance (il a détroné "rox" que j'utilisais avant mais qui était quand même franchement moins beau)
  • fbsetbg : prog pour mettre une image en fond d'écran, parce que ça ne vient pas d'office avec Fluxbox lol (je vous l'avais bien dit que Fluxbox il gérait les fenêtre ni plus ni moins ;) )
  • iDesk : pour afficher des icones sur le bureau. En réalité je ne l'utilise plus (je n'ai plus d'icones sur mon bureau, je trouve ça moche et finalement inutile) mais si vous ressentez le besoin d'avoir des icones il est vraiment très bien.
  • conky : pour afficher pleins d'info (principalement du texte brut) en sur-impression sur le fond d'écran. Parce que vu que je n'ai pas d'icone j'ai plein de place sur mon bureau et que c'est sympa d'avoir l'occupation processeur affiché sur son fond d'écran, ou les flux RSS de son site préféré, ou encore la sortie standard d'un script maison codé un soir d'insomnie et qui fait Dieu-seul-se-souvient-quoi :)3
  • xcompmgr : pour avoir les effets de vrai transparence (c'est du Compiz ultra light pour ceux qui connaissent...bah ouais compiz ne semble pas marcher sous Fluxbox :( ) mais en fait je ne l'utilise plus non plus parce que grâce à ma super carte graphique ATI et à ses drivers en mousse il mettrait mon processeur à genoux...

  • xpdf : pour visualiser les pdf4

  • GImageView5 : pour visionner rapidement des images

  • Nedit : éditeur de texte graphique pour remplacer vim de temps en temps (j'utilisais Gedit avant, mais Nedit a infiniment moins de dépendance et l'a donc détroné, même si il est franchement laid ^^)

  • Et l'artillerie lourde bien entendu : Firefox, Thunderbird, OpenOffice3, Gimp, et audacious6

Voilà, on a fait le tour de 90% des logiciels avec GUI que j'utilise :) Si vous en connaissez d'autre n'hésitez pas à me les signaler, j'aime bien découvrir de nouveaux softs (seule contrainte : peu de dépendances...j'ai pas envie de compiler toutes les libs KDE juste pour avoir Anjuta ;) )

  1. Proverbe carrément élevé au rang de principe par certains
  2. Toute ressemblance avec un OS commercial ayant pour emblème une fenêtre ne serait que pure coïncidence
  3. Dans le doute affichez la sortie d'un "dmesg tail", ça a toujours son petit effet en sur-impression sur son fond d'écran :)
  4. Par exemple les papiers passionants qu'on peut trouver suites aux confs comme le SSTIC ou encore WOOT, ou bien entendu la BH
  5. "gimv" en ligne de commande
  6. Bon, ok, audacious ce n'est pas de l'artillerie lourde, mais un peu quand même ^^