Magiske tal: De hemmelige koder, som programmører skjuler på din pc

Nov 3, 2024
Privatliv og sikkerhed

Lige siden den første person skrev 5318008 ud på en lommeregner, har nørder gemt hemmelige numre inde på din pc og brugt dem til at forhandle hemmelige håndtryk mellem applikationer og filer. I dag ser vi hurtigt på nogle af de mere underholdende eksempler.

Hvad er magiske tal?

De fleste programmeringssprog bruger en 32-bit heltalstype til at repræsentere bestemte typer data bag kulisserne - internt gemmes nummeret i RAM eller bruges af CPU'en som 32 ener og nuller, men i kildekoden ville det blive skrevet ud i begge almindeligt decimalformat eller som hexadecimalt format, der bruger tallene 0 til 9 og bogstaverne A til F.

Når operativsystemet eller et program ønsker at bestemme filtypen, kan det se i starten af ​​filen efter en særlig markør, der angiver filtypen. For eksempel kan en PDF-fil muligvis starte med hex-værdien 0x255044462D312E33, der svarer til "% PDF-1.3" i ASCII-format, eller en ZIP-fil starter med 0x504B, hvilket svarer til "PK", der stammer fra det originale PKZip-værktøj. Ved at se på denne "signatur" kan en filtype let identificeres, selv uden andre metadata.

Kompilerede Java Class-filer starter med CAFEBABE

Linux-filens "fil" kan bruges fra terminalen til at bestemme typen af ​​en fil - faktisk den læser de magiske tal fra en fil kaldet "magi."

Når en applikation ønsker at kalde en funktion, kan den overføre værdier til den funktion ved hjælp af standardtyper som heltal, som kan udtrykkes i kildekoden i hexadecimalt format. Dette gælder især for konstanter, som er identifikatorer defineret med menneskeligt læsbare navne som AUTOSAVE_INTERVAL, men de kortlægges til faktiske heltal (eller anden type) værdier. Så i stedet for at en programmør indtaster en værdi som 60, hver gang de kalder funktionen i kildekoden, kan de bruge AUTOSAVE_INTERVAL-konstanten for bedre læsbarhed. (Konstanter genkendes normalt let, fordi de er skrevet med alle store bogstaver).

Alle disse eksempler kan falde ind under udtrykket Magiske numre , fordi de muligvis kræver et specifikt hexadecimalt tal for at en funktion eller filtype kan fungere korrekt ... hvis værdien ikke er korrekt, fungerer den ikke. Og når en programmør vil have det sjovt, kan de definere disse værdier ved hjælp af hexadecimale tal, der staver noget på engelsk, ellers kendt som hexspeak .

Sjov med magiske tal: Nogle bemærkelsesværdige eksempler

Hver AppleScript slutter med FADEDEAD

Hvis du kigger hurtigt ind i Linux-kildekoden , vil du se, at _reboot () systemopkaldet på Linux kræver, at der sendes en "magisk" variabel, der svarer til det hexadecimale tal 0xfee1dead. Hvis noget forsøgte at kalde den funktion uden først at videregive den magiske værdi, ville det bare returnere en fejl.

GUID (globalt unik identifikator) for en BIOS-startpartition i GPT-partitioneringsordning er 21686148-6449-6E6F-744E-656564454649, som danner ASCII-strengen "Hah! IdontNeedEFI", en hentydning til det faktum, at GPT normalt ville blive brugt i computere, der erstattede BIOS med UEFI , men det behøver ikke nødvendigvis at være det.

Microsoft berømt skjulte 0x0B00B135 i deres Hyper-V virtuelle maskinstøttende kildekode, der blev sendt til Linux, derefter de ændrede værdien til 0xB16B00B5 , og til sidst de skiftede det til decimal før den blev fjernet fra kildekoden helt.

Flere sjove eksempler inkluderer:

  • 0xbaaaaaad - brugt af iOS crash logging for at angive, at en log er et stakbillede af hele systemet.
  • 0xbad22222 - bruges af iOS crash logging til at indikere, at en VoIP-app er blevet dræbt af iOS, fordi den fejlagtigt opførte sig.
  • 0x8badf00d - (Ate Bad Food) brugt af iOS crash logs for at indikere, at et program tog for lang tid at gøre noget og blev dræbt af vagthundens timeout.
  • 0xdeadfa11 - (Dead Fall) bruges af iOS crash logging, når en app tvangsafsluttes af en bruger.
  • 0xDEADD00D - bruges af Android til at angive, at en VM afbrydes.
  • 0xDEAD10CC (Dead Lock) bruges af iOS crash logging, når en applikation låser en ressource i baggrunden.
  • 0xBAADF00D (dårlig mad) brugt af LocalAlloc funktion i Windows til fejlfinding.
  • 0xCAFED00D (Cafe dude) brugt af Java's pack200-komprimering.
  • 0xCAFEBABE (Cafe babe) brugt af Java som identifikator for kompilerede klassefiler
  • 0x0D15EA5E (sygdom) brugt af Nintendo på Gamecube og Wii for at indikere, at der opstod en normal opstart.
  • 0x1BADB002 (1 dårlig opstart) brugt af multiboot specifikation som et magisk nummer
  • 0xDEADDEAD - bruges af Windows til at angive en manuelt initieret fejlfindingsnedbrud , ellers kendt som Blue Screen of Death.

Disse er selvfølgelig ikke de eneste derude, men bare en kort liste over eksempler, der syntes sjove. Kender du til mere? Fortæl os i kommentarerne.

Se eksempler for dig selv

Du kan se flere eksempler ved at åbne en hex-editor og derefter åbne et vilkårligt antal filtyper. Der er masser af freeware hex-redaktører til rådighed til Windows, OS X eller Linux - bare sørg for at være forsigtig, når du installerer freeware for ikke at blive inficeret med crapware eller spyware.

Som et ekstra eksempel starter gendannelsesbilleder til Android-telefoner som ClockworkMod med "ANDROID!" hvis det læses i ASCII-format.

Bemærk: ikke ændre noget, mens du kigger rundt. Hex-redaktører kan bryde ting!

.indgangsindhold .indgangsfod

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


Privatliv og sikkerhed - Mest populære artikler

Din smartphone har en særlig sikkerhedschip. Sådan fungerer det

Privatliv og sikkerhed Oct 23, 2025

UCACHED INDHOLD Googles nye Pixel 3-telefoner har en “ Titan M ”Sikkerhedschip. Apple har noget lignende med sin "Secure Enclave" på iPhones . S..


Vises det at lægge et Facebook-kamera i dit hus kan være et privatlivsproblem

Privatliv og sikkerhed Oct 17, 2025

UCACHED INDHOLD Lige efter at være blevet hacket for et par uger tilbage, Facebook annoncerede portalen, en smart videoopkaldsenhed til dit hjem, som de sagde vill..


Sådan fungerer macOS Mojaves privatlivsbeskyttelse

Privatliv og sikkerhed Aug 22, 2025

UCACHED INDHOLD Apple tilføjer mere beskyttelse af privatlivets fred i macOS 10.14 Mojave . Mac-applikationer skal anmode om tilladelse, før de får adgang til da..


Sådan bruges Safaris privatlivs- og sikkerhedsfunktioner på iPhone

Privatliv og sikkerhed May 7, 2025

UCACHED INDHOLD Mobile Safari - webbrowseren på din iPhone og iPad - har en række fortrolighedsfunktioner, som du muligvis ikke bruger, som at blokere alle cookies og forhindre ..


Kan domænebesættere opdage, når folk fremsætter WHOIS-anmodninger?

Privatliv og sikkerhed May 11, 2025

UCACHED INDHOLD Det kan være meget frustrerende, hvis du finder ud af, at det uanvendte domænenavn, du ønskede, pludselig er blevet registreret lige ud under dig af et domæner..


Kodi er ikke en piratkopiering ansøgning

Privatliv og sikkerhed Jul 26, 2025

UCACHED INDHOLD Der er en piratkopi-app, der giver brugerne mulighed for at finde ethvert tv-show, film eller sang, du kan forestille dig. Streams og downloads er begge nemme at f..


Hvordan svindlere smeder e-mail-adresser, og hvordan du kan fortælle

Privatliv og sikkerhed Sep 28, 2025

Overvej dette en offentlig servicemeddelelse: Svindlere kan smede e-mail-adresser. Dit e-mail-program siger muligvis, at en besked er fra en bestemt e-mail-adresse, men det kan vær..


Forældrevejledningen til Minecraft

Privatliv og sikkerhed Jul 8, 2025

Minecraft er og vil i en overskuelig fremtid forblive et af de mest populære videospil blandt børn. Bag alle disse millioner og millioner af downloads er der mere end et par nysge..


Kategorier