phhsnews.com


phhsnews.com / Numéros magiques: les codes secrets que les programmeurs cachent dans votre PC

Numéros magiques: les codes secrets que les programmeurs cachent dans votre PC


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 négocier des poignées de main secrètes entre applications et fichiers. Voici quelques-uns des exemples les plus amusants:

Qu'est-ce qu'un numéro magique?

La plupart des langages de programmation utilisent un type entier 32 bits pour représenter certains types de données en arrière-plan - en interne, le numéro est stocké en RAM ou utilisé par la CPU comme 32 uns et zéros, mais dans le code source, il serait écrit en format décimal régulier, ou en format hexadécimal, qui utilise les chiffres 0 à 9 et les lettres A à F.

Lorsque le système d'exploitation ou une application veut déterminer le type d'un fichier, il peut regarder au début du fichier un marqueur spécial qui indique le type du fichier. Par exemple, un fichier PDF peut commencer avec la valeur hexadécimale 0x255044462D312E33, qui est égale à "% PDF-1.3" au format ASCII, ou un fichier ZIP commençant par 0x504B, ce qui correspond à "PK", qui descend de l'utilitaire PKZip original. En regardant cette "signature", un type de fichier peut être facilement identifié même sans aucune autre méta-donnée

Les fichiers Java Class compilés commencent par CAFEBABE

Le "fichier" utilitaire Linux peut être utilisé depuis le terminal pour déterminer le type d'un fichier - en fait, il lit les nombres magiques à partir d'un fichier appelé "magie".

Lorsqu'une application veut appeler une fonction, elle peut passer des valeurs à cette fonction en utilisant des types standards comme entier, qui peut être exprimé 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 un humain, tels que AUTOSAVE_INTERVAL, mais ils correspondent à des valeurs entières réelles (ou d'autres types). Ainsi, au lieu d'un programmeur tapant une valeur comme 60 chaque fois qu'ils appellent la fonction dans le code source, ils pourraient 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 appartenir au terme Magic Numbers 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, elle ne fonctionnera pas. Et quand un programmeur veut s'amuser un peu, ils peuvent définir ces valeurs en utilisant des nombres hexadécimaux qui épellent quelque chose en anglais, autrement dit hexspeak.

Fun With Magic Numbers: Quelques exemples notables

Chaque AppleScript se termine par FADEDEAD

Si vous jetez un coup d'œil dans le code source de Linux, vous verrez que l'appel système _reboot () sous Linux nécessite la transmission d'une variable "magic" qui équivaut au nombre hexadécimal 0xfee1dead. Si quelque chose tentait d'appeler cette fonction sans passer d'abord par cette valeur magique, elle retournerait simplement une erreur

. Le GUID (identifiant unique global) pour une partition de démarrage BIOS dans le schéma de partitionnement GPT est 21686148-6449-6E6F-744E -656564454649, qui constitue la chaîne ASCII "Hah! IdontNeedEFI", une allusion au fait que GPT serait normalement utilisé dans les ordinateurs qui ont remplacé le BIOS avec UEFI, mais il ne doit pas nécessairement être.

Microsoft célèbre caché 0x0B00B135 dans leur code source supportant la machine virtuelle Hyper-V soumise à Linux, ils ont changé la valeur en 0xB16B00B5, et finalement ils l'ont commutée en décimal avant qu'elle ne soit complètement supprimée du code source.

Plus d'exemples amusants:

  • 0xbaaaaaad - utilisé par iOS crash logging pour indiquer qu'un journal est une pile de tout le système.
  • 0xbad22222 - utilisé par iOS crash logging pour indiquer qu'une application VoIP a été tué par iOS parce qu'il s'est mal comporté.
  • 0x8badf00d - (Ate Bad Food) utilisé par iOS crash l ogs pour indiquer qu'une application a pris trop de temps pour faire quelque chose et a été détruite par le délai d'attente du chien de garde.
  • 0xdeadfa11 - (Dead Fall) utilisé par iOS crash logging lorsqu'une application est forcée par un utilisateur.
  • 0xDEADD00D - used par Android pour indiquer un abandon de machine virtuelle.
  • 0xDEAD10CC (Dead Lock) utilisé par iOS crash logging lorsqu'une application verrouille une ressource en arrière-plan
  • 0xBAADF00D (Bad Food) utilisé par la fonction LocalAlloc dans Windows pour le débogage.
  • 0xCAFED00D (Cafe mec) utilisé par Java pack200 compression
  • 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 un démarrage normal.
  • 0x1BADB002 (1 mauvais démarrage ) utilisé par la spécification multiboot sous la forme d'un nombre magique
  • 0xDEADDEAD - utilisé par Windows pour indiquer un crash de débogage initié manuellement, également appelé Blue Screen of Death.

Ce ne sont pas les seuls qui existent, bien sûr , mais juste une courte liste d'exemples qui semblaient amusants. En savoir plus? Dites-nous dans les commentaires.

Voir des exemples pour vous-même

Vous pouvez voir d'autres exemples en ouvrant un éditeur hexadécimal et en ouvrant un certain nombre de types de fichiers. Il existe de nombreux éditeurs hexadécimaux freeware disponibles pour Windows, OS X ou Linux - assurez-vous juste que vous êtes prudent lors de l'installation freeware pour ne pas être infecté par des logiciels espions ou crapware.

Comme exemple, des images de récupération pour les téléphones Android comme ClockworkMod commencez par "ANDROID!" si vous lisez au format ASCII.

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


Comment faire des fichiers audio plus fort

Comment faire des fichiers audio plus fort

Les fichiers audio de faible volume peuvent être presque inutiles et très frustrants, surtout si vous ne pouvez pas réenregistrer l'audio original. Que ce soit une chanson MP3 que vous essayez d'écouter sur votre ordinateur portable ou un fichier audio enregistré qui n'est pas assez fort, augmenter le volume sur presque n'importe quel fichier audio peut facilement être fait en utilisant un logiciel de montage audio en ligne.Dans

(How-to)

Comment contrôler les modifications de fichiers et de dossiers dans Windows

Comment contrôler les modifications de fichiers et de dossiers dans Windows

Si quelqu'un d'autre utilise votre ordinateur ou si vous avez besoin de voir les modifications apportées à vos fichiers et dossiers pendant une période donnée, vous pouvez Utilisez l'application pratique FolderChangesView de Nirsoft. Nirsoft est un excellent fournisseur de freeware qui produit de super petits outils pour votre PC, et la meilleure partie est qu'ils n'emballent jamais de crapware avec leurs programmes comme beaucoup d'autres éditeurs de logiciels.

(how-to)