Bricolage

Le point de départ de ce billet, que j'avais initialement l'intention de développer, est passablement geek : faire fonctionner un périphérique matériel avec le système d'exploitation minoritaire que j'utilise. J'ai finalement trouvé un angle plus intéressant (à mes yeux) et plus accessible (il me semble), donc à la place je vais en faire un résumé (presque) rapide, après avoir développé le contexte dans lequel il s'inscrit.

Numérisation de mes papiers

Depuis presque une décennie, je possède un scanner à plat (qui fait partie d'une imprimante multifonctions Samsung CLX-3185N) et l'ambition de numériser tous les documents importants dans ma vie, pour en faire des sauvegardes sérieuses et ne pas être prise au dépourvu si un malheur arrivait à ces papiers.

Ma pile la plus récente de documents divers à scanner fait une trentaine de centimètres de haut, soit quelques milliers de feuilles. Il faut reconnaître que mon plan de numérisation est un échec complet.

La situation m'est revenue en tête à l'occasion de la lecture récente du billet de David Madore sur sa paperasse et d'un commentaire sur ce billet qui vante les Automatic Document Feeder.

Du coup j'ai réfléchi, et j'ai vaincu le sentiment d'avoir déjà tout ce qu'il me faut, en me disant d'une part que le fait qu'un ADF soit plus confortable peut faire la différence entre s'y mettre vraiment et procrastiner, et d'autre part qu'avec un backlog de quelques milliers de feuilles, ça se finira autour d'une dizaine de centimes d'euro par page, par rapport à mon temps que j'estime habituellement à un euro la minute.

Au passage, je ne crois pas avoir déjà expliqué ici ce calcul : il y a plusieurs années j'étais louée par mon employeur au Taux Journalier Moyen de 450 € hors taxes par jour. Ces jours-ci c'est un peu plus haut, mais ça reste dans le même ordre de grandeur. Et pour simplifier le calcul, on peut compter 7h30 de travail efficace dans la journée, ce qui fait un euro par minute de travail. Donc si des gens entreprises sont prêtes à me louer pour un euro par minute, je ne vois pas pourquoi je n'attribuerais pas cette valeur à mon temps.

Du coup j'ai fait une étude de marché rapide des ADF, en cherchant un modèle en réseau filaire qui puisse fonctionner avec mon ordinateur de bureau sous OpenBSD. Ça ne semble pas exister, alors je me suis rabattue sur un modèle USB listé favorablement par le projet SANE, à savoir un ScanSnap S1300i.

Dans le cambouis numérique

Comme j'avais sélectionné mon ADF d'après son support par SANE, j'étais plutôt confiance dans la partie logicielle, grande naïve que je suis.

J'ai un peu honte du temps qu'il m'a fallu pour découvrir il fallait un firmware pour que cet engin fonctionne, mais une fois cet écueil passé, j'ai pu faire mon premier scan avec cet appareil.

Le problème, c'est que je n'ai pas trouvé le moyen d'en faire un deuxième.

Je peux toujours éteindre le scanner, et faire un nouveau premier scan, mais pas moyen d'enchaîner deux opérations.

Et c'est là que je vous épargne tous les rebondissements de mon enquête sur comment une telle chose est possible, enquête qui est d'ailleurs toujours en cours. Si ça vous intéresse, j'ai tout détaillé dans la mailing list bugs d'OpenBSD, il y a la première description du problème, plus d'informations après avoir découvert qu'on peut tcpdump de l'USB, et les soupçons qui se portent sur XHCI après avoir fouillé dans le noyau.

Car au-delà de ce problème particulier, j'ai reconnu dans ma façon d'aborder ce problème une démarche beaucoup plus générale dans ma vie, et qui est peut-être moins courante que je le crois.

Imaginer le réel

Parfois on regarde les choses Telles qu'elles sont En se demandant pourquoi Parfois on les regarde Telles qu'elles pourraient être En se disant pourquoi pas

Vanessa Paradis – Il y a

Une chose qui me vient naturellement, à tel point que ça m'est évident, c'est d'imaginer des réalités alternatives dans lesquels tel ou tel détail est différent.

Je ne l'ai jamais trouvé mieux dit que dans ce refrain de Vanessa Paradis : quand je regarde des choses, je vois automatiquement en même temps toute palettes d'alternatives.

Je suis toujours désarçonnée face à des gens qui semblent incapables de se projeter dans une hypothèse qu'ils considèrent comme impossible.

J'ai aussi vu des variations sur la « largeur » de cette imagination. Certains doivent faire des efforts pour se projeter dans une alternative, d'autres voient des palettes plus ou moins grandes d'alternatives à une situation.

J'ai l'intuition que les bons pentesters sont les gens qui voient d'un coup une large palette, et arrivent ainsi facilement à imaginer comment un produit ou un service peut être détourné de son utilisation prévue.

Rétro-ingénierie

Cette capacité à tout voir systématiquement sous plusieurs angles m'est d'un grand secours quand je pratique la rétro-ingénierie, c'est-à-dire explorer un système que je ne connais pas pour comprendre comment il devrait fonctionner, comment il ne fonctionne pas, et comment il faudrait l'ajuster pour qu'il fonctionne comme je le désire.

Pour revenir à mon scanner, il y a donc d'abord l'insatisfaction de ne pas pouvoir faire de deuxième scan, avec l'imagination d'une réalité dans laquelle ce scanner fonctionne plusieurs fois.

Et là, ma première idée n'est pas d'appeler au secours un moteur de recherche, mais de chercher à comprendre. Qu'y a-t-il de différent entre la première fois et la deuxième ? La première fois, il faut envoyer le firmware, alors que la deuxième fois, il est déjà chargé. Peut-être y a-t-il un problème dans la détection de la présence du firmware, et la tentative de le ré-envoyer fait échouer le process ? En fait non, le statut qui indique si un firmware est présent ou non n'est même pas reçu la deuxième fois, donc le problème est déjà en amont.

Il y a dans cette séquence deux attitudes qui me semblent essentielles pour faire de la rétro-ingénierie efficace, et que j'ai l'impression de pouvoir compter parmi mes points forts :

  1. D'abord la capacité à faire des hypothèses sur des parties du système, parce que la majorité du temps les systèmes analysés fonctionnent « presque », et rien ne sert de passer du temps à comprendre le fonctionnement d'une partie qui n'a pas de problème.

  2. Ensuite la capacité à remettre en question ces hypothèses, pour ne pas rester enfermé dans une fausse piste. Ça demande une certaine dose d'humilité, qui n'est pas forcément donnée à tout le monde, et la résistance au sophisme du coût irrécupérable sur le temps passé à poursuivre cette hypothèse.

La liberté, c'est ça

Regardez la réalité en face. Puis agissez en conséquence. C'est le seul mantra que je connaisse, la seule doctrine que je puisse vous offrir, et c'est beaucoup plus difficile que vous le pensez. Parce que je vous jure, on dirait que les humains sont câblés pour faire n'importe quoi sauf regarder la réalité en face. Ne priez pas. N'espérez pas. Ne croyez pas aux dogmes centenaires, aux rhétoriques mortes. N'abdiquez pas en faveur de votre conditionnement, vos visions ou votre connerie de sens de… ce que vous voulez. REGARDEZ LA RÉALITÉ EN FACE. PUIS agissez.

Quellcrist Falconer

Donc face à un problème, ma démarche immédiate est de m'arrêter, de chercher à comprendre, évaluer soigneusement les solutions, et ensuite agir.

Ce premier élan est souvent coupé par un truc idiot, cette espèce d'obscurantisme paternaliste qui a l'air d'avoir envahi tous les niveaux de la société, qui cache le fonctionnement des systèmes.

Je ne suis pas du tout libriste par conviction, ou par idéologie ; je veux simplement pouvoir dépanner les outils dont je dépends, au moins lorsque le problème est simple ou qu'il n'y a personne d'autre pour le faire.

Lorsque je pose les yeux sur un outil, en considérant m'en servir, une réalité alternative qui est toujours dans ma palette est la défaillance de cet outil. Et si cette défaillance est trop catastrophique, je ne vais pas avoir assez confiance pour dépendre cet outil.

D'ailleurs je ne serais pas surprise que ce soit la cause principale de ma faible utilisation de mon téléphone portable.

En l'occurrence, ce n'est que parce qu'OpenBSD est un logiciel libre que je peux aller fouiller dans la pile XHCI dans l'espoir de comprendre suffisamment ce qu'il s'y passe pour retrouver un fonctionnement satisfaisant de mon scanner tout neuf.

Conclusion

Pour ce qui est de la conclusion, je sèche un peu. Que conclure de ça ?

J'ai pris conscience de mes facilités en rétro-ingénierie, mais j'ai l'intuition qu'il y a dans cette histoire d'autres points forts que j'ai mis en œuvre sans m'en rendre compte, parce que j'ai toujours vécu avec, mais qui ne sont pas donnés à tout le monde. J'ai presque envie de les appeler « privilèges », mais je ne suis pas sûre de vouloir m'aventurer sur ce terrain-là.

Et même si cette démarche ne fonctionne que grâce à un cocktail particulier de compétences, et alors ?

Commentaires

Pas de commentaire pour le moment.

Poster un commentaire

Mise en forme historique : pour mettre en valeur un mot ou un groupe de mot, tapez une étoile de part et d'autre, sans mettre d'espace entre l'étoile et le mot, comme ceci : *mise en valeur*. Pour insérer un lien, mettez le entre crochets, comme ceci : [http://instinctive.eu/].

Mise en forme markdown : voir le guide détaillé, en résumé c'est le Markdown traditionnel, sans HTML ni titres, mais avec les tables PHP-Markdown-Extra.

Attention : les balises HTML entrées dans les commentaires seront affichées telles quelles, et non pas interprétées.

Autour de cette page

 

Autour de cet article

Derniers commentaires

Tags

Archives

Site-level navigation and features

 

Instinctive.eu

Contact

Sections

Validation

Copyright © 2008-2020 Natacha Kerensikova

Butterfly images are copyright © 2008 Shoofly