Hackable N°
Numéro
62

Déboguez facilement avec GDB !

Temporalité
Septembre/Octobre 2025
Image v3
Déboguez facilement avec GDB !
Article mis en avant

Résumé

Nous explorons les divers outils permettant de sonder l’état de la mémoire de microcontrôleurs au cours de l’exécution d’un programme pour en identifier les dysfonctionnements ou suivre le statut des variables ou registres internes à l’unité arithmétique et logique. Ces explorations se feront soit sur matériel, soit dans le domaine virtuel des émulateurs, avec ou sans la supervision d’un système d’exploitation.

Dans ce numéro...


Versé dans l'art de la programmation et coutumier des subtilités du fonctionnement d'un OS, vous savez. L'utopie d'un système parfait, exempt de tout bug et de toute faille n'existe pas, et n'existera probablement jamais. Mais ce savoir n'est pas courant, ni chez le commun des mortels ni chez le politicien, l'élu ou le parlementaire (probablement même encore moins, d'ailleurs). Et c'est précisément là que le déséquilibre existe entre la praticité subjective d'une solution et le risque, bien réel, qu'elle implique dès lors que l'informatique s'en mêle.
Proposer une ligne de commande, ou du moins une forme de REPL (read–eval–print loop) pour manipuler interactivement un montage ou une installation à base de microcontrôleur est un grand classique. Lorsque cela se fait via une connexion réseau, par opposition à une liaison série, par exemple, on en arrive souvent à utiliser quelque chose qui ressemble à Telnet avec une authentification assez basique et surtout une absence totale de chiffrement. Sur PC ou SBC, cela fait longtemps que ce genre de choses est devenu totalement obsolète, au bénéfice du classique SSH. Pourquoi n'en serait-il pas de même avec un MCU un peu « musclé » ?
Tout comme le chevalier Jedi fabrique son propre sabre laser, le hacker chevronné se doit de fabriquer son propre clavier... Sobre ou avec une forme futuriste, avec une myriade de LED clignotantes ou bien clavier à vocation ergonomique, chacun est libre de ses choix. Nous allons regarder les étapes essentielles d’une conception afin de vous lancer en toute connaissance.
Dans le numéro 54 [1], nous avions exploré la façon d'interfacer une smartcard avec une carte Raspberry Pi Pico (RP2040) et un MCU ESP32, jusqu'à arriver à converser et à échanger des données avec une applet Java que nous avions développée par ailleurs [2], et ce sans aucun circuit spécialisé. Nous allons ici recycler ces travaux et découvrir qu'il est parfaitement possible de faire de même avec un adaptateur USB à 4 €, normalement destiné aux manipulations de cartes SIM avec de douteuses applications Windows.
Dans de précédents articles ([1] et [2]), nous avons découvert le framework LiteX permettant de créer simplement des SoC softcores en utilisant le langage Python et d'instancier ces designs sur différents devkits FPGA, ceci au point de faire démarrer un système GNU/Linux à partir d'un disque SATA. Mais tout ceci n'était, somme toute, que de la prise en main, reposant massivement sur des exemples du projet. Aujourd'hui, nous allons creuser un peu davantage le sujet en voyant comment, via quelques fichiers Python, nous pouvons créer notre SoC (ou MCU) bien à nous, en rassemblant toutes les briques nécessaires dans un projet « maison »...
Dans le précédent article, nous avons exploré le fait de composer un SoC « maison » grâce au framework LiteX, de le synthétiser, de le configurer dans la mémoire du FPGA et de créer un petit code en C qui, une fois compilé, est exécuté par le softcore RISC-V. Mais ce n'était pas suffisant et j'ai continué les expérimentations, tombant sur plusieurs subtilités très intéressantes que je me dois de partager avec vous ici. Poursuivons donc notre découverte du fabuleux et captivant monde de LiteX...
Ah, le monde des FPGA et du gateware, entre les suites propriétaires d'une taille monstrueuse, les problèmes de compatibilité et les installations sauvages d'outils et de composants pour pouvoir « rester dans la course », force est de constater que ce n'est pas toujours une partie de plaisir. C'est ainsi que, sur le coup d'un énervement ponctuel, une idée folle a déboulé dans mon esprit : et si je tentais le coup sous un autre OS, réputé pour son caractère carré, propre et robuste ?

Magazines précédents

Les derniers articles Premiums

Les derniers articles Premium

Bun.js : l’alternative à Node.js pour un développement plus rapide

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Dans l’univers du développement backend, Node.js domine depuis plus de dix ans. Mais un nouveau concurrent fait de plus en plus parler de lui, il s’agit de Bun.js. Ce runtime se distingue par ses performances améliorées, sa grande simplicité et une expérience développeur repensée. Peut-il rivaliser avec Node.js et changer les standards du développement JavaScript ?

PostgreSQL au centre de votre SI avec PostgREST

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Dans un système d’information, il devient de plus en plus important d’avoir la possibilité d’échanger des données entre applications. Ce passage au stade de l’interopérabilité est généralement confié à des services web autorisant la mise en œuvre d’un couplage faible entre composants. C’est justement ce que permet de faire PostgREST pour les bases de données PostgreSQL.

La place de l’Intelligence Artificielle dans les entreprises

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

L’intelligence artificielle est en train de redéfinir le paysage professionnel. De l’automatisation des tâches répétitives à la cybersécurité, en passant par l’analyse des données, l’IA s’immisce dans tous les aspects de l’entreprise moderne. Toutefois, cette révolution technologique soulève des questions éthiques et sociétales, notamment sur l’avenir des emplois. Cet article se penche sur l’évolution de l’IA, ses applications variées, et les enjeux qu’elle engendre dans le monde du travail.

Petit guide d’outils open source pour le télétravail

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Ah le Covid ! Si en cette période de nombreux cas resurgissent, ce n’est rien comparé aux vagues que nous avons connues en 2020 et 2021. Ce fléau a contraint une large partie de la population à faire ce que tout le monde connaît sous le nom de télétravail. Nous avons dû changer nos habitudes et avons dû apprendre à utiliser de nombreux outils collaboratifs, de visioconférence, etc., dont tout le monde n’était pas habitué. Dans cet article, nous passons en revue quelques outils open source utiles pour le travail à la maison. En effet, pour les adeptes du costume en haut et du pyjama en bas, la communauté open source s’est démenée pour proposer des alternatives aux outils propriétaires et payants.

Body