Bienvenue sur le blog d'un artiste, d'un geek, et d'un passionné... Lord BlackFox
[MuSha] Ouverture d'un dépot

Petite brève pour vous annoncer l'ouverture d'un dépot Mercurial pour Musha. Voici l'adresse pour ceux qui seraient intéressés: http://bitbucket.org/lord_blackfox/musha/.

Notez que je n'ai pas travaillé dessus ces dernières semaines, notamment du à mon exploration du bios fort sommaire, et surtout à un projet de client XMPP qui a été d'une plus grosse priorité.

En gros, les sources sont dispos, mais encore inutilisable sans vous amuser un peu avec les sources (genre pour créer la bibliothèque).

Rubrique: - 0 commentaires - 12 affichages - Posté le 2010-02-02 17:53:52
[Exploration de mon Bios #2] L'utilité des PE-files dans le BIOS

Aujourd'hui, plusieurs choses ont été à nouveau découvertes...

J'avais séparé avec un petit programme vite-fait les différents fichiers exécutables qui étaient retrouvables dans le fichier binaire de base. Ensuite avais-je désassemblé le premier fichier qui lui est le seul qui ne soit pas formaté à la Portable Executable. N'ayant pas eu de réponses sur les forums, je commence à décodé en 64 bits, lorsque je me rends compte que plusieurs instructions étaient invalides. Je décide de désassembler, mais cette fois-ci en 32bits, avant de me rendre compte finalement que c'était en 16 bits en regardant dans la documentation de CoreBoot.

Première surprise, c'est d'observer que le BIOS peut lui-même passer en mode protégé; Dès lors je recherche les instructions d'initialisation du mode protégé (pour ceux qui aiment: mov eax, cr0
or eax, 1
mov cr0, eax
). Et je me rends compte alors qu'il n'est pas là où il devrait être, c'est à dire au début, mais bien plus loin, dans un des PE files qui était également codé en 16 bits (apparemment plusieurs tournent la dessus).

Voilà pour l'anecdote du jour. Concrètement, quoi de nouveau?

Le codage en 16 bits du BIOS. Par ailleurs on peut se poser la question de savoir si le BIOS en tant que tel passe en mode protégé, ou bien est-ce un mini-os qui permet de gérer les différentes options du BIOS.

Rubrique: , , - 2 commentaires - 50 affichages - Posté le 2010-01-21 03:39:45
Les perles de Jamendo: david

Cette fois-ci, j'ai décidé de vous faire découvrir un artiste que j'écoute déjà depuis un moment: il s'agit de david. Cet artiste a déjà quelques albums à son effectifs, passant du folk au blues par l'instrumental et le rock.

L'album que je vous ai choisi est en fait le premier que j'ai écouté de lui (comme quoi on ne peut pas changer ses sentiments). J'espère que vous apprécierez...

  

Rubrique: , - 0 commentaires - 35 affichages - Posté le 2010-01-21 01:31:45
[Exploration de mon Bios #1] L'addiction totale de HP

Suite à mes premières investigations sur mon BIOS, j'ai décidé d'approfondir un peu plus ma connaissance de ce gentil et précieux programme.

Ma première réaction a été de contacter le service technique d'HP pour obtenir les sources du BIOS. Celui-ci a osé me répondre que je n'étais pas sous garantie, et donc que je pouvais "aller me faire mettre" (bon, ils l'ont dit sous une forme très compliquée, et très jolie, histoire que vous deviez relire trois fois le mail avant de bien tout saisir; franchement, n'achetez jamais HP); au moins ai-je eu une réponse...

M'attendant déjà à une réponse de ce genre, vu le SAV qu'ils ont, et leur ouverture (c'est bien le cas de le dire) d'esprit, j'avais commencé à analyser un peu le fichier binaire qui me servait de copie de secours lors du flash de mon BIOS. Éditeur hexadécimal en main, j'avais donc commencé cette tâche.

Premières constatations: la mémoire semble être divisée à intervalles régulière (je n'ai pas mes notes sous les yeux, donc je ne peux rien vous montrer encore); chaque section commençant par un bloc de 0xFF assez épais. En farfouillant sur le net, j'ai pu comprendre que si le BIOS se charge en 00400:0000, l'exécution commence à 0040:FF00. Ce qui expliquait le premier bloc de données. En cogitant, je me suis dit que cette mémoire morte devait peut-être fonctionner comme un mini système de fichier (il faudra que j'approfondisse ce point d'ailleurs); et remarquant que des "datas" et "text" apparaissaient sur les blocs suivants, un premier doute s'était installé.

Dans ma tendre ignorance, dans un premier temps je pensais qu'il ne s'agissait que d'un bête fichier binaire structuré à la je-ne-sais-quelle-sauce, que le compilateur avait créé en faisant des sections. C'est alors qu'une petite étincelle a éclairé mon cerveau: et s'il s'agissait de format de fichier exécutable, comme le PE-files (de ce maudit Microsoft) ou les fichiers ELF?

Et vous l'aurez deviné, je vous le donne en plein dans le mille: les blocs suivant comprenaient bien des PE-Files.

Quelles conclusions peut-on en tirer?

Tout d'abord que les développeurs ont développé une partie du BIOS en C ou C++: pour avoir créé une interface aussi nulle complexe, on utilise rarement de l'Assembleur; de plus le C me semblerait comme le langage qui conviendrait le mieux à ce genre de tâche (Linux et Windows ne sont-ils pas eux-même fait en C?). Ce qui pourrait signifier que seul le premier bloc contient un programme compilé de l'assembleur direct.

Secondo, lorsque l'on observe qu'HP fait plus que la promotion de Windows, qu'il ne porte ses supports que sur cette plateforme, et qu'il ne fait que très peu (voire pas) de support pour Linux; que de plus, il utilise dans le code de ses BIOS le format PE-File, on ne peut que constater l'addiction totale de HP envers Microsoft. (Ce qui est bien dommage, et me donnerait bien envie de vomir de savoir que mon portable est miné jusqu'à la racine)

Et vous, qu'en pensez-vous?

Rubrique: , , - 0 commentaires - 71 affichages - Posté le 2010-01-20 02:23:54
Flasher son bios avec Flashrom

Cela fait quelque temps que j'avais décidé de flashé mon BIOS. Malheureusement, ces gentlemen de HP ne se sont jamais décidé à créer des utilitaires pour Linux (bon, si, mais c'était il y a 10 ans, au temps des disquettes). Bref, que les linuxiens se démerdent... Et c'est ce qu'ils firent. Ainsi un super utilitaire qui sert à flasher son BIOS (tant celui de sa carte mère que celui de sa carte graphique), et tout cela sans devoir redémarrer son pc: FlashRom. Ce n'est pas beau?

Je vais vous décrire la procédure que j'ai utilisée; Attention, c'est une procédure qui peut s'avérer fatale pour votre ordinateur! Il ne s'agit plus ici de jouer gentillement à changer d'OS, mais bien de BIOS. En cas de mauvaise passe, votre pc peut devenir inutilisable. (et certain de répliquer qu'il suffit de retirer l'EPROM et de la flasher avec un programmateur). Lisez tout l'article avant de commencer!. Pour installer flashrom:

sudo apt-get install flashrom

Bon, on est parti pour commencer le flashage...

Première étape: récupérer une copie du BIOS présent sur le pc. Cette copie, je vous conseille d'en faire quelques unes, histoire de ne pas la perdre définitivement (ce serait très idiot en cas de problèmes). Pour cela, on va utiliser l'option -r de flashrom:

sudo flashrom -r ./out.bin

Le fichier est ainsi créé dans le répertoire courant (par défaut le répertoire home).

Deuxième étape: il s'agit de récupérer l'image du nouveau BIOS. Pour moi, j'ai téléchargé l'installateur, l'exécuter avec Wine, puis recherché le fichier BIOS parmi les fichiers installer (j'ai bêtement comparé la taille du fichier avec celui récupéré lors de l'étape un)

Troisième étape: le flashage en tant que tel. Il s'agit de l'étape la plus délicate: la moindre panne de courant peut interrompre cette tâche et rendre le pc inutilisable. La commande est la suivante:

sudo flashrom -w fichier_a_flasher

fichier_a_flasher correspond au fichier du nouveau BIOS. Si le programme prend un peu de temps (surtout lors de l'écriture), c'est normal.

Dernière étape: redémarrer l'ordinateur, et dans un grand stress, attendre voir si tout démarre correctement. Avec le flash, les options du BIOS seront certainement réinitialisées, ce qui signifie que vous devrez tout reconfigurer; et si vous avez comme moi votre partition de boot qui n'est pas la première, il y a de forte chance qu'il ne la retrouve pas. La solution consisterait alors à réinstaller Linux (j'attendrai la prochaine version de ma distribution pour le faire - je vous tiendrai au courant).

En cas de problèmes, vérifier que vous pouvez démarrer un live-cd ou un live-usb. Si c'est le cas, redémarrez une distribution avec Linux dessus, et reflashez votre BIOS avec l'ancienne version que vous avez sauvegardée. Personnellement, avec le live-cd, j'ai pu redémarrer à partir du premier disque dur.

Soyez très prudents lors de ces manipulations. Enjoy!

Rubrique: , - 0 commentaires - 41 affichages - Posté le 2010-01-18 17:34:42
- 0 - 1 2 3 4 5 6 7 8 9 10

Creative Commons License - Contenu du blog sous Creative Common BY-NC-SA
, Excepté pour les articles classés dans la rubrique "Textes" (même partiellement) qui ne peuvent être repris sans acceptation préalable de l'auteur du texte concerné.
- Lord BlackFox - 2009 - (contact)