Otkad je prva osoba napisala 5318008 na kalkulatoru, nerds kriju tajne brojeve unutar vašeg računala i pomoću njih pregovaraju o tajnim ručnim prekidima između aplikacija i datoteka. Danas ćemo brzo pogledati neke od primamljivijih primjera.
Većina programskih jezika koristi 32-bitni cijeli broj koji predstavlja određene vrste podataka iza scena - interno se broj pohranjuje u RAM-u ili CPU koristi kao 32 i zer, ali u izvornom kodu će biti napisan u bilo redovitog decimalnog formata ili kao heksadecimalni format koji koristi brojeve od 0 do 9 i slova A do F.
Kada operacijski sustav ili aplikacija žele odrediti vrstu datoteke, može se na početak datoteke pronaći posebni marker koji označava vrstu datoteke. Na primjer, PDF datoteka može započeti s heksadecimalnom vrijednošću 0x255044462D312E33, što je jednako "% PDF-1.3" u ASCII formatu ili ZIP datoteka počinje sa 0x504B, što je jednako "PK", koji se spušta od originalnog korisničkog programa PKZip. Gledajući ovaj "potpis", vrsta datoteke se lako može identificirati čak i bez bilo kojeg drugog metapodataka.
Sastavljene Java Class datoteke počinju s CAFEBABEDatoteka "Linux" može se koristiti s terminala kako bi se utvrdila vrsta datoteke - u stvari, čita čarobne brojeve iz datoteke koju nazivamo "čarolija".
Kada aplikacija želi nazvati funkciju, ona može proslijediti vrijednosti za tu funkciju pomoću standardnih tipova kao što su cijeli broj, što se može izraziti u izvornom kodu u heksadecimalnom formatu. To je osobito istinito za konstante, koje su identifikatori definirani ljudskim čitljivim imenima poput AUTOSAVE_INTERVAL, no oni mapiraju stvarnu vrijednost cijele (ili druge vrste). Dakle, umjesto da programer napravi vrijednost kao što je 60 svaki put kad poziva funkciju u izvornom kodu, mogli bi koristiti konstantu AUTOSAVE_INTERVAL radi bolje čitljivosti. (Konstante su obično lako prepoznate jer su pisane svim velikim slovima).
Svi ovi primjeri mogu biti pod nazivom Magic Numbers jer mogu zahtijevati određeni heksadecimalni broj kako bi funkcija ili vrsta datoteke ispravno funkcionirale ... ako vrijednost nije ispravna, neće funkcionirati. A kad se programer želi malo zabaviti, oni bi mogli definirati te vrijednosti pomoću heksadecimalnih brojeva koji izgovaraju nešto na engleskom jeziku, inače poznat kao hexspeak.
Ako brzo pogledate Linux izvorni kod, vidjet ćete da sustav _reboot () naziva Linux zahtijeva da se prođe "čarobna" varijabla koja je jednaka heksadecimalnom broju 0xfee1dead. Ako je nešto pokušalo nazvati tu funkciju, a da prvo ne prijeđe u tu čarobnu vrijednost, to bi samo vratilo pogrešku.
GUID (globalno jedinstveni identifikator) za particiju za podizanje BIOS-a u GPT particijacijskoj shemi je 21686148-6449-6E6F-744E-656564454649, koja čini ASCII niz "Hah! IdontNeedEFI", aluzija na činjenicu da se GPT normalno koristi na računalima koja su zamijenila BIOS sa UEFI-om, ali to ne mora nužno biti.
Microsoft je poznato skrivao 0x0B00B135 u svojem Hyper-V virtualnom stroju koji podržava izvorni kod poslan na Linux, a zatim su promijenili vrijednost na 0xB16B00B5, i konačno su je prebacili na decimalni prije nego što je uklonjen iz izvornog koda zajedno.
Više zabavnih primjera uključuju:
Naravno, to nisu samo one, već samo kratki popis primjera koji su se činili zabavnim. Znate li više? Recite nam u komentarima.
Možete vidjeti više primjera otvaranjem heksadecimalnog urednika i otvaranjem bilo kojeg broja vrsta datoteka. Postoji mnogo freeware heksadecimalnih izdavača dostupnih za Windows, OS X ili Linux - samo pazite da pazite kada instalirate freeware da ne biste zaraženi crapwareom ili spywareom.
Kao dodatni primjer, slike za oporavak za telefone s Androidom kao što su ClockworkMod počinju s "ANDROID!" Ako su pročitane u ASCII formatu.
Bilješka: nemojte ništa mijenjati dok gledate uokolo. Urednici Hex mogu razbiti stvari!