Cet article explique comment écrire directement dans la mémoire vidéo du mode VGA, une étape essentielle pour continuer à afficher du texte après le passage en mode protégé 32 bits, où l'accès au BIOS n'est plus possible. Il détaille le fonctionnement de la mémoire vidéo en mode texte couleur, où chaque caractère occupe deux octets : un pour son code ASCII et un pour sa couleur, cette dernière étant codée sur plusieurs bits pour définir les couleurs de premier plan et d'arrière-plan.
Le texte présente ensuite des exemples de code assembleur permettant de placer des caractères à des adresses spécifiques de la mémoire vidéo, en spécifiant leur code ASCII et leur combinaison de couleurs. Ces manipulations permettent de tester l'affichage de caractères simples, y compris certains caractères étendus du jeu de caractères Code Page 437, illustrant ainsi la capacité à contrôler finement l'affichage sans recourir aux services du BIOS.
Bien que cette technique permette d'afficher des caractères isolés à des positions définies, l'auteur souligne qu'il s'agit d'une première étape et que d'autres fonctionnalités comme l'affichage de chaînes de caractères, la gestion du curseur ou le défilement de texte restent à développer pour un contrôle d'affichage plus complet.
L'article présente une méthode pour inspecter la mémoire vive d'une machine virtuelle QEMU en utilisant son moniteur. Le problème initial réside dans le fait que le numéro du périphérique de démarrage est codé en dur, ce qui empêche de démarrer depuis une disquette ou un disque dur de manière interchangeable.
La solution proposée consiste à sauvegarder dynamiquement le numéro du périphérique de démarrage, fourni par le BIOS dans le registre DL avant le passage de contrôle au secteur de démarrage, dans une zone réservée de la RAM (ici, à l'adresse 0x500). Ce numéro peut ensuite être lu directement depuis la mémoire par le programme pour s'adapter au périphérique de boot utilisé.
L'article détaille ensuite l'utilisation du moniteur QEMU, notamment la commande x/ pour examiner le contenu de la mémoire. Cet outil permet de vérifier la valeur sauvegardée à l'adresse 0x500, confirmant ainsi le bon fonctionnement de la modification, et d'explorer d'autres zones mémoire comme celle contenant le message affiché par le système.
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Un coup de gueule et une astuce pour pouvoir installer Linux sur un portable HP
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Ça peut dépanner