Hotline pc one faq windows 1er pari remboursé de 30€  
Hotline pc line
Hotline PC - contact Hotline PC - Vista Hotline PC - Windows XP Hotline PC - dossiers Hotline PC - registre Hotline PC - reseaux Hotline PC - applications Hotline PC - ms-dos Hotline PC - gravure Hotline PC - autres
Google
 
Forum
Fonds d'écran
Sonneries
Sonneries





Les éditeurs hexadécimaux

Un didacticiel concernant l'utilisation d'un éditeur hexadécimal.

Dernière mise à jour : 15/08/2005

Un éditeur hexadécimal : "Frhed"
De quoi est constitué un fichier binaire ?
Se déplacer dans un fichier
Effectuer une recherche spéciale
Éditer un fichier binaire
Modifier un fichier binaire

- Installer un éditeur hexadécimal : "Frhed"

Vous pouvez télécharger "Frhed" à partir de cette adresse : www.rs.e-technik.tu-darmstadt.de/applets/frhed-v1.1.zip.
1) Décompressez l'archive ZIP nommée frhed-v1.1.zip dans le répertoire de votre choix.
2) Double-cliquez sur un fichier nommé frhed-v1.1.exe afin de lancer l'installation du programme.
Un éditeur hexadécimal permet d'éditer les fichiers binaires afin de modifier les valeurs qui sont contenues. Cela vous permet de modifier certaines informations présentes dans un fichier système afin de, par exemple, personnaliser une boîte de dialogue ou d'insérer vos propres fichiers images dans un fichier exécutable.
Définition : Un fichier binaire est un fichier qui n'est pas du texte (fichier exécutable, fichier image, etc.). Un fichier ASCII est un fichier qui est du texte (documents web, fichiers créés avec Word, etc.).
Bits est l'abréviation de "BInary digiT" ("chiffre binaire"). C'est une unité de mesure en informatique désignant la quantité élémentaire d'information représentée par un chiffre binaire. Un bit peut prendre deux états : 0 ou 1. Nous pouvons le traduit par "Ouvert" ou "Fermé" ou encore "Vrai" ou "Faux". C'est ce que nous appelons le système binaire. Afin de vous entraîner à opérer des conversions entre ce dernier et le système décimal suivez cette procédure :
1) Cliquez sur Démarrer/Exécuter puis saisissez : calc
2) Inscrivez par exemple ceci comme nombre : 666
3) Cochez le bouton radio Bin
L'équivalent en base binaire du nombre 666 est donc celui-ci : 10 1001 1010.
À partir du moment où on doit représenter des nombres important, les chaînes de 0 et de 1 deviennent rapidement complètement illisibles. C'est pour cette raison que le système hexadécimal a été utilisé afin de pouvoir coder des nombres importants avec le minimum de caractères. Vous pouvez donc obtenir sa représentation hexadécimale en cliquant sur le bouton radio Hex.
Définition : Le système hexadécimal est un système de base 16 qui utilise les 10 premiers chiffres (de 0 à 9) puis les 6 premières lettres de l'alphabet pour représenter un chiffre ou un nombre : a est égale à 10, b est égal à 11, etc.
Quand donc vous saisissez quelques lignes dans un nouveau document vous ne faites qu'aligner des bits qui représenteront chacun un caractère, un signe ou un symbole spécifique. Cela signifie par exemple que votre machine stocke la lettre A comme un nombre possédant la valeur 97 ("61" en notation hexadécimale).
Avec un paquet de quatre bits ("Nibble" ou "Quadbit") vous pouvez décrire un nombre allant de 0 à 15. Un paquet de 8 bits est appelé un octet. Chaque octet peut décrire un nombre allant de 0 à 255.
Information : Pourquoi seulement entre 0 et 255 ? Nous avons vu qu'un octet se compose de 8 bits : La valeur minimale est de "00000000" et la valeur maximale est égale à "11111111". Si nous faisons la conversion en base décimale cela donne ces deux valeurs : 0 et 255.
Nous numérotons les bits de la droite vers la gauche, et ce, en partant de 0. Le bit 0 est couramment appelé bit de poids faible, le bit le plus à gauche est, quant à lui, appelé bit de poids fort.
Un fichier est donc une liste de bits dans lequel chacun est désigné par un index ou, plus communément, un "offset". Quand vous ouvrez un fichier binaire avec "Frhed", ces bits sont listés au centre de la fenêtre et sont représentés en utilisant la notation hexadécimale.
Le numéro d'offset est représenté dans "Frhed" par la colonne de gauche. Chaque ligne verticale sépare les différentes valeurs tous les quatre octets. La colonne de droite contient une représentation textuelle lisible des octets correspondants. Les octets dont le code est supérieur à 128 sont représentés par un accent circonflexe, les octets dont le code est inférieur à 32 sont représentés par un accent circonflexe renversé. Les octets dont le code est entre 33 et 127 sont représentés par le caractère ASCII correspondant, les espaces sont représentés par un point.
Définition : Nous utilisons deux nombres pour trouver l'adresse d'un octet. Le premier est appelé adresse de segment, le second adresse d'offset. La mémoire étant découpée en segments de 64 Ko, nous pouvons accéder à un de ces blocs mémoire grâce à l'adresse de segment qui sera codée sur 16 bits (soit 4 chiffres hexadécimaux). Afin de désigner un des octets présents dans un segment, nous indiquerons le décalage de cet octet par rapport au début du segment. Ce décalage est appelé "Offset". Par exemple, le troisième élément d'un tableau sera toujours à l'offset 2 quels que soient les éléments du tableau.
Si vous sélectionnez une donnée son numéro d'offset sera automatiquement indiqué en bas à gauche de la fenêtre.


- Décrypter un fichier binaire :

Nous ouvrons un fichier de cette façon :
1) Cliquez sur File/Open…
2) Sélectionnez le fichier de votre choix puis cliquez sur Ouvrir.
3) Une fois les modifications effectuées, cliquez sur File/Save ou Save as…
Si vous avez un message d'erreur vous signalant que le fichier n'a pas pu être enregistré suivez cette procédure :
1) Avec le bouton droit de la souris cliquez sur le fichier puis sur Propriétés.
2) Décochez la case Lecture seule.
Vous annuler une modification en cliquant sur File/Revert.
Le menu File/Export as hexdump est utile si vous souhaitez exporter le fichier sous la forme de texte. Un "hexdump" consiste à afficher les fichiers au format ASCII, décimal ou hexadécimal.
En bas à droite de la fenêtre et quand vous sélectionnez un seul octet une information de ce type apparaît : Unsigned: B:35,W:16931,L:1395933731
* B: représente la valeur de l'octet.
* W: ou L: représente la valeur du mot ou du double-mot commençant à l'offset exprimé en notation décimale.
Définition : Nous appelons un Mot un paquet de plusieurs octets. Un mot est codé sur 16 bits alors qu'un double-mot est codé sur 32 bits (soit 4 octets).
La section suivante indique le type de caractère : ANSI ou OEM. Juste à côté est indiqué le mode d'édition :
* OVR pour écriture : cela vous permet de modifier des données et d'écraser les données précédentes sans modifier la taille du fichier.
* INS pour insertion : cela vous permet d'insérer des données (et donc la taille du fichier sera modifiée).
* READ pour lecture seule : il ne vous sera pas permis de modifier les données présentes. Si vous essayez vous obtiendrez ce message d'erreur : "Can't change file because read-only mode is engaged!".
Note : Pourquoi est-il important de ne pas changer la taille du fichier ?
Quand vous supprimez des octets, vous déplacez certaines données (généralement placées en fin de fichier). Certaines lignes de code n'étant plus trouvées aux emplacements définis par l'index votre fichier sera inutilisable.
Enfin, l'indication du mode binaire utilisé est mentionné : L pour Little-endian ou B pour Big-endian.
Définition : Une donnée binaire désigne soit une adresse soit des données composées d'une multitude de 0 ou/et de 1. Le terme "Big-endian" décrit la façon dont sont classé les nombres dans plusieurs octets : l'octet de poids fort est stocké avant l'octet de poids faible. Dans le cas d'un "Little endian", l'octet de poids faible est stocké avant l'octet de poids fort. Dans un octet, le bit de poids faible est le bit le plus à droite. C'est donc la partie la moins significative d'un nombre.
Vous pouvez à tout moment changer ces options en cliquant dessus. À l'extrême droite est indiqué la taille du fichier sur lequel nous travaillons.

- Se déplacer dans un fichier :

Vous pouvez sélectionner un offset particulier en cliquant sur Edit/Go to… Dans la zone de texte Go to offset: saisissez simplement le numéro d'offset.
Afin de lancer une recherche cliquez sur Edit/Find… puis dans la zone de texte Find What:, saisissez la chaîne de caractères voulue.
La case à cocher Match case vous permet de spécifier que la recherche suppose le respect de la casse. Les boutons radio Up et Down lancent une recherche vers le haut ou le bas.
Une fois une occurrence trouvée servez-vous du menu contextuel et de la commande Find next (touche F3) afin de trouver l'occurrence suivante.


- Effectuer une recherche spéciale :

Vous pouvez lancer une recherche sur certaines valeurs binaires présentes dans un fichier. Les octets, mot, double-mot peuvent être codés de cette façon : <{Taille}{système numérique}:{Valeur}>
Taille : b pour un octet de 8 bits, w pour un mot de 16 bits et l pour un double-mot de 32 bits.
Système numérique : f pour spécifier le système décimal ou h pour le système hexadécimal.
Prenons un exemple :
L'expression <bh:f7> spécifiera de rechercher un octet ("b") possédant cette représentation hexadécimale ("h") : 0xf7.

- Éditer un fichier :

Voici les commandes les plus courantes :
* Edit/Cut ou Copy : permet de couper ou de copier un ou plusieurs octets.
* Edit/Delete : permet de supprimer un ou plusieurs octets.
* Edit/Paste : permet de coller un ou plusieurs octets.
* Edit/Paste with dialogue : c'est la même commande que précédemment sauf qu'une boîte de dialogue s'ouvre. Il vous est possible de spécifier le nombre de fois que le groupe d'octets copiés sera collé.
* Edit/Append : permet d'ajouter une valeur nulle en fin de fichier.
* Edit/Select block command : permet de sélectionner un bloc de données particulier.

- Modifier un fichier binaire :

Imaginons un exemple simple : nous vous changer le texte de l'info-bulle quand on survole à l'aide de la souris le bouton démarrer ("Cliquer ici pour commencer").
1) Copiez le fichier explorer.exe de \Windows vers \Temp.
2) À l'aide de "Frhed", ouvrez le fichier explorer.exe.
3) Cliquez sur File/Find.
4) Dans la zone de texte, saisissez : cliquez ici
5) Cochez la case Unicode puis cliquez sur OK.
6) Sélectionnez chaque lettre qui compose le mot commencer et remplacez-les par celles-ci : démarrer
Nous voyons alors que nous avons une différence dans le nombre de lettres et qu'il nous en reste une en souffrance. Rappelez-vous que la taille du fichier ne doit pas être modifiée sinon vous obtiendrez ce type d'erreur "Explorer.exe n'est pas une application Win32 valide !". En bref, vous n'aurez fait que endommager le fichier exécutable. En conséquence la lettre r doit être remplacée par un caractère nul.
7) Dans la partie centrale, sélectionnez les deux chiffres qui composent l'octet formant la lettre r puis remplacez-les par deux zéros.
8) Sauvegardez les changements.
Astuce : Supprimer complètement l'info-bulle du menu démarrer : Il vous suffit dans ce cas de remplacer l'intégralité des valeurs hexadécimales composant le texte par des 00.
Si vous désiriez conserver les changements il vous faudrait remplacer la version modifiée du fichier explorer.exe par votre propre version mais nous allons voir qu'il existe dans ce cas une méthode plus simple vous permettant de tester les modifications.
9) Appuyez simultanément sur les touches Ctrl + Alt + Suppr afin d'accéder au gestionnaire de tâches.
10) Cliquez sur l'onglet Processus.
11) Sélectionnez un processus nommé explorer.exe puis cliquez sur le bouton Terminer le processus.
Votre Bureau Windows sera complètement vide !
12) Cliquez sur Fichier/Nouvelle tâche (Exécuter…)
13) Cliquez sur le bouton Parcourir… puis sélectionnez le fichier explorer.exe situé dans \Temp.
14) Validez par OK.
Nous avons remplacé le "Shell" par défaut par l'autre version stockée dans \Temp. Il ne vous reste plus qu'à procéder à un test.
Définition : Le "Shell" désigne la coquille qui sert de réceptacle au système d'exploitation. Sous Windows XP, c'est le fichier Explorer.exe qui détermine l'apparence de votre environnement.
Afin de revenir au "Shell" précédent, terminez de la même façon que précédemment le processus explorer.exe puis relancez-le mais en sélectionnant cette fois-ci la bonne version. Il vous suffit dans ce cas de le sélectionner dans la liste déroulante Ouvrir:
Pour les lecteurs curieux signalons une manière de rendre définitifs les modifications que vous avez apportées au "Shell" car dans ce cas nous devons déjouer le mécanisme de protection des fichiers propre à Windows XP.
1) Faites une copie de sauvegarde du fichier explorer.exe que vous placerez dans un répertoire "sûr".
2) Dans l'Explorateur Windows ouvrez ce répertoire : \Windows\system32\Restore.
3) Avec le bouton droit de la souris cliquez sur le fichier filelist.xml puis sur la commande Propriétés.
4) Décochez la case Lecture seule puis cliquez sur OK.
5) Avec le bouton droit de la souris cliquez sur le fichier filelist.xml puis sur la commande Modifier.
6) Dans la section <Exclude> ajoutez cette ligne : <REC>%Sytemroot%\explorer.exe</REC>
7) Enregistrez les modifications puis réactivez l'attribut Lecture seule pour ce fichier.
Cette étape optionelle vous permet d'exclure le fichier Explorer.exe du processus de restauration système.
8) Supprimez le fichier explorer.exe se trouvant dans ces arborescences : \Windows\ServicePackFiles\i386 et \Windows\system32\dllcache.
Vous pouvez aussi remplacer les versions présentes par celle que vous avez modifiée.
9) Écrasez la version du fichier explorer.exe présente dans \Windows par celle que vous avez modifiée.
10) Au lancement de la boîte de dialogue Protection de fichiers Windows, cliquez sur les boutons Annuler puis Oui.
11) Éventuellement, fermez puis relancez votre session interactive.
Si vous souhaitez modifier directement le fichier explorer.exe présent dans \Windows, suivez cette astuce :
1) Ouvrez-le avec votre éditeur hexadécimal.
2) Procédez aux mêmes modifications.
3) Enregistrez le fichier dans \Windows\ServicePackFiles\i386 et \Windows\system32\dllcache.
4) Selon la même méthode que précédemment terminez le processus Explorer.exe.
5) Retournez dans "Frhed" pour enregistrer le fichier dans \Windows.
6) Relancez le processus Explorer.exe.
Si vous avez fermé "Frhed" suivez cette astuce :
1) Cliquez sur Démarrer/Exécuter puis saisissez : cmd
2) Terminez le processus Explorer.exe.
3) Retournez dans la fenêtre d'Invite de commandes puis saisissez cette commande : copy c:\temp\explorer1.exe c:\windows\explorer.exe
4) Confirmez le remplacement du fichier en appuyant sur la touche 0.
5) Saisissez cette commande : exit
6) Relancez le processus Explorer.exe.
Vous pouvez aussi changer le fichier exécutable qui est appelé à chaque ouverture du Bureau Windows :
1) Enregistrez votre fichier modifié sous ce nom : explorer1.exe dans \Windows.
2) Cliquez sur Démarrer/Exécuter puis saisissez : regedit
3) Ouvrez cette arborescence : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon.
4) Dans le volet de droite éditez une valeur chaîne nommée Shell.
5) Saisissez comme données de la valeur ceci : explorer1.exe
6) Fermez puis relancez votre session interactive.
Vous démarrerez sur le nouveau "Shell" que vous aurez défini.

 

blog, bookmark, newsletter


catalogue interactif - abc-blagues - infopage - les societes - entrepreneurs de france - flashmeat topsitefr - radioduweb
c-rigolo - woopami - rire-et-sourire - pubstv - widouf - planete-nokia - streaming-fr - photo numérique - Vins Fromaget - Maisons en bois

© 2001-2008 Hotline-PC.org. Tous droits réservés. Ce site fait régulièrement l'objet d'un marquage IDDN.IDDN Certification
Un site du réseau : 

Contact - Plan du site - Notice légale
Blog Bookmark Newsletter