Magic Numbers: les codes secrets que les programmeurs cachent dans votre PC

Nov 3, 2024
Confidentialité et sécurité

Depuis que la première personne a écrit 5318008 sur une calculatrice, les nerds cachent des numéros secrets à l'intérieur de votre PC et les utilisent pour négocier des poignées de main secrètes entre les applications et les fichiers. Aujourd'hui, nous examinons rapidement certains des exemples les plus divertissants.

Que sont les nombres magiques?

La plupart des langages de programmation utilisent un type entier 32 bits pour représenter certains types de données dans les coulisses - en interne, le nombre est stocké dans la RAM ou utilisé par le processeur sous forme de 32 uns et zéros, mais dans le code source, il serait écrit soit au format décimal normal ou au format hexadécimal, qui utilise les nombres de 0 à 9 et les lettres de A à F.

Lorsque le système d'exploitation ou une application souhaite déterminer le type d'un fichier, il peut rechercher au début du fichier un marqueur spécial indiquant le type du fichier. Par exemple, un fichier PDF peut commencer par la valeur hexadécimale 0x255044462D312E33, qui équivaut à «% PDF-1.3» au format ASCII, ou un fichier ZIP commence par 0x504B, qui équivaut à «PK», qui descend de l'utilitaire PKZip d'origine. En regardant cette «signature», un type de fichier peut être facilement identifié même sans aucune autre métadonnée.

Les fichiers de classe Java compilés commencent par CAFEBABE

Le «fichier» de l'utilitaire Linux peut être utilisé à partir du terminal pour déterminer le type d'un fichier - en fait, il lit les nombres magiques dans un fichier appelé «magie».

Lorsqu'une application souhaite appeler une fonction, elle peut transmettre des valeurs à cette fonction en utilisant des types standard tels que des entiers, qui peuvent être exprimés dans le code source au format hexadécimal. Cela est particulièrement vrai pour les constantes, qui sont des identificateurs définis avec des noms lisibles par l'homme comme AUTOSAVE_INTERVAL, mais qui correspondent à des valeurs entières réelles (ou d'un autre type). Ainsi, au lieu d'un programmeur tapant une valeur comme 60 à chaque fois qu'il appelle la fonction dans le code source, il pourrait utiliser la constante AUTOSAVE_INTERVAL pour une meilleure lisibilité. (Les constantes sont généralement facilement reconnaissables car elles sont écrites en majuscules).

Tous ces exemples peuvent tomber sous le terme Numéros magiques , car ils peuvent nécessiter un nombre hexadécimal spécifique pour qu'une fonction ou un type de fichier fonctionne correctement… si la valeur n'est pas correcte, cela ne fonctionnera pas. Et lorsqu'un programmeur veut s'amuser un peu, il peut définir ces valeurs en utilisant des nombres hexadécimaux qui épellent quelque chose en anglais, autrement connu sous le nom de hexspeak .

Amusez-vous avec les nombres magiques: quelques exemples notables

Chaque AppleScript se termine par FADEDEAD

Si vous jetez un coup d'œil dans le code source Linux , vous verrez que l’appel système _reboot () sous Linux requiert la transmission d’une variable «magique» égale au nombre hexadécimal 0xfee1dead. Si quelque chose essayait d'appeler cette fonction sans passer d'abord cette valeur magique, cela renverrait simplement une erreur.

The GUID (globally unique identifier) for a BIOS boot partition dans le Schéma de partitionnement GPT est 21686148-6449-6E6F-744E-656564454649, qui forme la chaîne ASCII «Hah! IdontNeedEFI», une allusion au fait que GPT serait normalement utilisé dans ordinateurs qui ont remplacé le BIOS par UEFI , mais ce n’est pas forcément nécessaire.

Microsoft célèbre caché 0x0B00B135 dans leur machine virtuelle Hyper-V prenant en charge le code source soumis à Linux, puis ils ont changé la valeur en 0xB16B00B5 , et enfin ils commuté en décimal avant qu'il ne soit complètement supprimé du code source.

Des exemples plus amusants incluent:

  • 0xbaaaaaad - utilisé par Journalisation des plantages iOS pour indiquer qu'un journal est une pile de l'ensemble du système.
  • 0xbad22222 - utilisé par la journalisation des incidents iOS pour indiquer qu'une application VoIP a été tuée par iOS parce qu'elle s'est mal comportée.
  • 0x8badf00d - (Ate Bad Food) utilisé par les journaux de crash iOS pour indiquer qu'une application a mis trop de temps à faire quelque chose et a été tuée par le délai d'expiration du chien de garde.
  • 0xdeadfa11 - (Dead Fall) utilisé par la journalisation des plantages iOS lorsqu'une application est quittée de force par un utilisateur.
  • 0xDEADD00D - utilisé par Android pour indiquer un abandon de la VM.
  • 0xDEAD10CC (Dead Lock) utilisé par la journalisation des incidents iOS lorsqu'une application verrouille une ressource en arrière-plan.
  • 0xBAADF00D (Bad Food) utilisé par le LocalAlloc fonction dans Windows pour le débogage.
  • 0xCAFED00D (Cafe dude) utilisé par la compression pack200 de Java.
  • 0xCAFEBABE (Cafe babe) utilisé par Java comme identifiant pour les fichiers de classe compilés
  • 0x0D15EA5E (Maladie) utilisé par Nintendo sur le Gamecube et Wii pour indiquer qu'un démarrage normal s'est produit.
  • 0x1BADB002 (1 mauvais démarrage) utilisé par le démarrage multiple spécification comme un nombre magique
  • 0xDEADDEAD - utilisé par Windows pour indiquer un crash de débogage lancé manuellement , autrement connu sous le nom d'écran bleu de la mort.

Ce ne sont pas les seuls là-bas, bien sûr, mais juste une courte liste d’exemples qui semblent amusants. Vous en savez plus? Dites le nous dans les commentaires.

Voir des exemples par vous-même

Vous pouvez voir plus d'exemples en ouvrant un éditeur hexadécimal, puis en ouvrant n'importe quel nombre de types de fichiers. Il existe de nombreux éditeurs hexadécimaux gratuits disponibles pour Windows, OS X ou Linux - juste assurez-vous d'être prudent lors de l'installation du logiciel gratuit pour ne pas être infecté par des logiciels malveillants ou des logiciels espions.

À titre d'exemple supplémentaire, les images de récupération pour les téléphones Android comme ClockworkMod commencent par «ANDROID!» si lu au format ASCII.

Note: ne changez rien pendant que vous regardez autour de vous. Les éditeurs hexadécimaux peuvent casser des choses!

IPhone Secret Codes!

Samsung Secret Codes To Speed Up Your Phone

Call Of Duty: Black Ops - Hidden Menu Secret And Computer Codes - Mini-Games And Cheats

JavaScript Security: Hide Your Code?

Secret Phone Codes You Didn't Know Existed!

CODES Honor Play - Secret Menu / Hidden Mode / EMUI Tricks


Confidentialité et sécurité - Most Popular Articles

Comment changer votre compte d'utilisateur dans Ubuntu Bash Shell de Windows 10

Confidentialité et sécurité Mar 13, 2025

Quand tu pour la première fois installer Ubuntu ou une autre distribution Linux sur Windows 10 , vous êtes invité à créer un nom d'utilisateur et un mot de passe..


Comment révoquer l'accès à une application tierce à partir de Soundcloud

Confidentialité et sécurité Sep 20, 2025

SoundCloud, une plate-forme alternative pour publier et vendre de la musique et d'autres contenus uniquement audio, propose une API qui permet à d'autres sites Web et applications ..


D'autres personnes sont-elles autorisées à utiliser mes tweets?

Confidentialité et sécurité Jun 15, 2025

CONTENU NON CACHÉ Tant que vous n'avez pas a rendu votre compte Twitter privé , chaque pensée que vous diffusez peut être vue par n'importe qui dans le monde. C..


Toutes les fonctionnalités qui nécessitent un compte Microsoft dans Windows 10

Confidentialité et sécurité Dec 19, 2024

CONTENU NON CACHÉ Windows 10, comme Windows 8 avant lui, est intégré aux services en ligne de Microsoft. Microsoft préférerait que vous vous connectiez à Windows avec votre ..


Comment un VPN peut-il améliorer la vitesse de téléchargement?

Confidentialité et sécurité May 3, 2025

CONTENU NON CACHÉ Nous pouvons tous convenir que des vitesses de téléchargement plus rapides sont préférables et supposerons qu'un VPN pourrait ralentir un peu les choses, ma..


SafetyNet a expliqué: Pourquoi Android Pay et d'autres applications ne fonctionnent pas sur les appareils enracinés

Confidentialité et sécurité Jul 11, 2025

L'enracinement de votre appareil Android vous donne accès à une plus grande variété d'applications et un accès plus profond au système Android. Mais certaines applications, co..


Google Wallet vs Apple Pay: ce que vous devez savoir

Confidentialité et sécurité Dec 3, 2024

CONTENU NON CACHÉ Apple Pay est brillant, nouveau et reçoit beaucoup de presse. Mais les utilisateurs d'Android ont leur propre système de paiement similaire depuis des années..


Débutant: désautoriser tous les ordinateurs associés à votre compte iTunes

Confidentialité et sécurité Aug 2, 2025

CONTENU NON CACHÉ Si vous avez eu plusieurs ordinateurs différents au fil des ans qui exécutaient iTunes et autorisés pour votre compte, vous devrez peut-être tous les annuler. Dans ce..


Catégories