Dans un précédent article [1], nous avons fait connaissance avec la possibilité (semi-sérieuse) de développer nos outils en ligne de commande en assembleur, pour le plaisir (et par masochisme). Ce qui va suivre n'est pas réellement une suite, mais plus exactement une exploration autour du sujet, accompagnée de quelques explications autour de la notion de Position Independent Code ou PIC.
Si vous avez reproduit, voire étendu, le code de démonstration de l'article précédent, un simple « Hello World » en assembleur reposant sur la fonction printf() fournie par la libc, vous n'avez sans doute rencontré aucun problème particulier. Pour rappel, voici le code en question :
Ceci fonctionne tout aussi bien sous GNU/Linux (Debian 12.7) que, par exemple, FreeBSD (14.1). Mais lorsqu'on tente cela sur un OS développé par des gens pour qui la sécurité est une véritable obsession, à savoir OpenBSD 7.6, l'éditeur de liens n'est pas content du tout :
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première