Magiska siffror: de hemliga koder som programmerare gömmer sig på din dator

Nov 3, 2024
Sekretess och säkerhet

Ända sedan den första personen skrev ut 5318008 på en miniräknare har nördar gömt hemliga nummer inuti din dator och använt dem för att förhandla hemliga handskakningar mellan applikationer och filer. Idag tittar vi snabbt på några av de mer underhållande exemplen.

Vad är magiska nummer?

De flesta programmeringsspråk använder en 32-bitars heltalstyp för att representera vissa typer av data bakom kulisserna - internt lagras numret i RAM eller används av CPU: n som 32 enor och nollor, men i källkoden skulle det skrivas ut i antingen vanligt decimalformat, eller som hexadecimalt format, som använder siffrorna 0 till 9 och bokstäverna A till F.

När operativsystemet eller ett program vill bestämma vilken filtyp det kan se till början av filen efter en speciell markör som anger filtypen. Till exempel kan en PDF-fil börja med hex-värdet 0x255044462D312E33, vilket motsvarar "% PDF-1.3" i ASCII-format, eller en ZIP-fil börjar med 0x504B, vilket motsvarar "PK", som kommer från det ursprungliga PKZip-verktyget. Genom att titta på denna "signatur" kan en filtyp lätt identifieras även utan andra metadata.

Kompilerade Java Class-filer börjar med CAFEBABE

Linux-filens "fil" kan användas från terminalen för att bestämma typen av fil - i själva verket den läser magiska siffror från en fil kallad "magi".

När en applikation vill anropa en funktion kan den skicka värden till den funktionen med hjälp av standardtyper som heltal, som kan uttryckas i källkoden i hexadecimalt format. Detta gäller särskilt för konstanter, som är identifierare definierade med mänskliga läsbara namn som AUTOSAVE_INTERVAL, men de mappar till faktiska heltal (eller annan typ) värden. Så istället för att en programmerare skriver ut ett värde som 60 varje gång de anropar funktionen i källkoden, kan de använda AUTOSAVE_INTERVAL-konstanten för bättre läsbarhet. (Konstanter känns vanligtvis lätt igen eftersom de är skrivna med alla versaler).

Alla dessa exempel kan falla under termen Magiska siffror , eftersom de kan behöva ett specifikt hexadecimalt tal för att en funktion eller filtyp ska fungera ordentligt ... om värdet inte är korrekt fungerar det inte. Och när en programmerare vill ha lite kul kan de definiera dessa värden med hexadecimala tal som stavar något på engelska, annars känt som hexspeak .

Roligt med magiska siffror: några anmärkningsvärda exempel

Varje AppleScript slutar med FADEDEAD

Om du tittar snabbt in i Linux-källkoden , ser du att systemanropet _reboot () på Linux kräver att en "magisk" variabel skickas som motsvarar hexadecimalt tal 0xfee1dead. Om något försökte ringa den funktionen utan att först ge det magiska värdet, skulle det bara returnera ett fel.

GUID (globalt unik identifierare) för a BIOS-startpartition i GPT-partitioneringsschema är 21686148-6449-6E6F-744E-656564454649, som bildar ASCII-strängen "Hah! IdontNeedEFI", en anspelning på det faktum att GPT normalt skulle användas i datorer som ersatte BIOS med UEFI , men det behöver inte nödvändigtvis vara det.

Microsoft berömt gömde 0x0B00B135 i deras Hyper-V virtuella maskin som stöder källkoden som skickas till Linux de ändrade värdet till 0xB16B00B5 , och slutligen de bytte till decimal innan den togs helt bort från källkoden.

Fler roliga exempel inkluderar:

  • 0xbaaaaaad - används av iOS-kraschloggning för att indikera att en logg är en stack av hela systemet.
  • 0xbad22222 - används av iOS-kraschloggning för att indikera att en VoIP-app har dödats av iOS för att den inte beter sig.
  • 0x8badf00d - (Ate Bad Food) som används av iOS-kraschloggar för att indikera att en applikation tog för lång tid att göra något och dödades av vakthundens timeout.
  • 0xdeadfa11 - (Dead Fall) används av iOS-kraschloggning när en app tvingas avslutas av en användare.
  • 0xDEADD00D - används av Android för att indikera att en virtuell dator avbryts.
  • 0xDEAD10CC (Dead Lock) som används av iOS-kraschloggning när ett program låser en resurs i bakgrunden.
  • 0xBAADF00D (dålig mat) som används av LocalAlloc funktion i Windows för felsökning.
  • 0xCAFED00D (Cafe dude) används av Java's pack200-komprimering.
  • 0xCAFEBABE (Cafe babe) används av Java som identifierare för kompilerade klassfiler
  • 0x0D15EA5E (Sjukdom) som används av Nintendo på Gamecube och Wii för att indikera att en normal start har hänt.
  • 0x1BADB002 (1 dålig start) som används av multiboot specifikation som ett magiskt nummer
  • 0xDEADDEAD - används av Windows för att indikera a manuellt initierad felsökningskrasch , annars känd som Blue Screen of Death.

Det här är naturligtvis inte de enda där, utan bara en kort lista med exempel som verkade roliga. Känner du till mer? Berätta för oss i kommentarerna.

Se exempel för dig själv

Du kan se fler exempel genom att öppna en hex-editor och sedan öppna ett valfritt antal filtyper. Det finns gott om freeware hex-redigerare tillgängliga för Windows, OS X eller Linux - bara se till att du är försiktig när du installerar freeware för att inte smittas med crapware eller spionprogram.

Som ett extra exempel börjar återställningsbilder för Android-telefoner som ClockworkMod med "ANDROID!" om den läses i ASCII-format.

Notera: ändra inte någonting medan du tittar runt. Hex-redaktörer kan bryta saker!

.post-innehåll .inmatningsfot

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


Sekretess och säkerhet - Mest populära artiklar

Hur en lösenordshanterare skyddar dig mot nätfiskebedrägerier

Sekretess och säkerhet Jul 10, 2025

OBEHANDLAT INNEHÅLL Abscent / Shutterstock.com Lösenordshanterare gör det enkelt att använd starka, unika lösenord öv..


Varför det är farligt att dela din födelsedag online

Sekretess och säkerhet Feb 4, 2025

OBEHANDLAT INNEHÅLL Ruth Black / Shutterstock En födelsedag är inte något du kan tänka på som privat information som du bör hålla hemli..


Hur döljer du din onlinestatus i WhatsApp

Sekretess och säkerhet Apr 5, 2025

Som standard visar WhatsApp dina vänner om du är online nu eller när du senast var online. Om du föredrar kan du dölja din status .. Du kanske bara vill kontrollera di..


Hur fabriksåterställer du din Roku

Sekretess och säkerhet Jun 30, 2025

OBEHANDLAT INNEHÅLL Ge bort din Roku? Oavsett om du ger den till en vän eller säljer den online vill du förmodligen inte lämna ditt Roku-konto anslutet till enheten. ..


Vad är RFID och är det verkligen ett säkerhetsproblem?

Sekretess och säkerhet Sep 22, 2025

OBEHANDLAT INNEHÅLL RFID är en teknik som omger oss varje dag. Det finns i våra kreditkort, pass och några av de produkter vi köper. Även många av våra husdjur har RFID-ma..


Så här inaktiverar du låsskärmen i Windows 10

Sekretess och säkerhet Apr 24, 2025

Med Windows 10 års jubileumsuppdatering , Microsoft låter dig inte längre inaktivera låsskärmen med en grupppolicy eller registerhack. Men det fin..


Så här ställer du in föräldrakontroll i Netflix

Sekretess och säkerhet Jul 10, 2025

OBEHANDLAT INNEHÅLL Netflix har massor av innehåll, men inte allt är lämpligt för yngre tittare. Populära shower som har blivit synonyma med tjänsten som House of Cards och..


Geek Rants: Varför Internet är som det vilda västern

Sekretess och säkerhet May 5, 2025

OBEHANDLAT INNEHÅLL När vi tänker på det gamla väst, kommer vi ihåg hur vild och farlig det var och de möjligheter det gav. Internet är verkligen inte mycket annorlunda. L..


Kategorier