Magic Numbers: The Secret Codes that Programmers Hide in your PC

Nov 3, 2024
Soukromí a bezpečnost

Od té doby, co první osoba napsala na kalkulačku číslo 5318008, skryli hlupáci ve vašem počítači tajná čísla a používali je k vyjednávání tajných potřesení rukou mezi aplikacemi a soubory. Dnes se krátce podíváme na některé ze zábavnějších příkladů.

Co jsou to magická čísla?

Většina programovacích jazyků používá 32bitový celočíselný typ k reprezentaci určitých typů dat v zákulisí - interně je číslo uloženo v RAM nebo použito CPU jako 32 jednotek a nul, ale ve zdrojovém kódu by bylo zapsáno buď běžný desítkový formát nebo hexadecimální formát, který používá čísla 0 až 9 a písmena A až F.

Když chce operační systém nebo aplikace určit typ souboru, může na začátku souboru vyhledat speciální značku, která označuje typ souboru. Například soubor PDF může začínat hexadecimální hodnotou 0x255044462D312E33, která se rovná „% PDF-1.3“ ve formátu ASCII, nebo soubor ZIP začíná 0x504B, což se rovná „PK“, která pochází z původního nástroje PKZip. Při pohledu na tento „podpis“ lze typ souboru snadno identifikovat i bez dalších metadat.

Zkompilované soubory třídy Java začínají CAFEBABE

Linuxový „soubor“ lze z terminálu použít k určení typu souboru - ve skutečnosti čte magická čísla ze souboru zvané „magie“.

Když aplikace chce volat funkci, může předat hodnoty této funkci pomocí standardních typů, jako je celé číslo, které lze vyjádřit ve zdrojovém kódu v hexadecimálním formátu. To platí zejména pro konstanty, což jsou identifikátory definované lidsky čitelnými názvy, jako je AUTOSAVE_INTERVAL, ale mapují se na skutečné celočíselné (nebo jiné typy) hodnoty. Takže místo toho, aby programátor při každém volání funkce ve zdrojovém kódu vypisoval hodnotu jako 60, mohli pro lepší čitelnost použít konstantu AUTOSAVE_INTERVAL. (Konstanty jsou obvykle snadno rozpoznatelné, protože jsou psány velkými písmeny).

Všechny tyto příklady mohou spadat pod tento výraz Magická čísla , protože k tomu, aby funkce nebo typ souboru správně fungovaly, mohou vyžadovat konkrétní šestnáctkové číslo ... pokud hodnota není správná, nebude to fungovat. A když se programátor chce trochu pobavit, může tyto hodnoty definovat pomocí hexadecimálních čísel, která vysvětlují něco v angličtině, jinak známé jako hexspeak .

Zábava s magickými čísly: Některé pozoruhodné příklady

Každý AppleScript končí FADEDEAD

Pokud se rychle podíváte do zdrojového kódu Linuxu , uvidíte, že systémové volání _reboot () v systému Linux vyžaduje předání „magické“ proměnné, která se rovná hexadecimálnímu číslu 0xfee1dead. Pokud by se něco pokusilo tuto funkci zavolat, aniž by nejprve předalo magickou hodnotu, vrátilo by to chybu.

GUID (globálně jedinečný identifikátor) pro a Spouštěcí oddíl systému BIOS v Schéma rozdělení GPT je 21686148-6449-6E6F-744E-656564454649, který tvoří řetězec ASCII „Hah! IdontNeedEFI“, narážka na skutečnost, že GPT by se normálně používaly v počítače, které nahradily BIOS systémem UEFI , ale nemusí to nutně být.

Microsoft skvěle skryl 0x0B00B135 ve svém virtuálním stroji Hyper-V podporujícím zdrojový kód odeslaný do Linuxu změnili hodnotu na 0xB16B00B5 a nakonec oni přepnul na desítkové před úplným odstraněním ze zdrojového kódu.

Mezi zábavnější příklady patří:

  • 0xbaaaaaad - používá Protokolování selhání systému iOS k označení, že protokol je souhrnem celého systému.
  • 0xbad22222 - používá se při protokolování selhání systému iOS k označení, že aplikace VoIP byla iOS zabita, protože se chovala špatně.
  • 0x8badf00d - (Ate Bad Food) používaný protokoly o selhání systému iOS k označení, že aplikaci trvalo příliš dlouho, než něco udělal, a byl zabit timeoutem watchdog.
  • 0xdeadfa11 - (Dead Fall) použitý při protokolování selhání iOS, když je aplikace vynuceně ukončena uživatelem.
  • 0xDEADD00D - používá Android k označení přerušení VM.
  • 0xDEAD10CC (Dead Lock) používaný protokolováním selhání iOS, když aplikace uzamkne prostředek na pozadí.
  • 0xBAADF00D (špatné jídlo) používané v LocalAlloc funkce ve Windows pro ladění.
  • 0xCAFED00D (Cafe Dude) používaný kompresí Java200 v Javě.
  • 0xCAFEBABE (Cafe babe) používaný Java jako identifikátor pro kompilované soubory tříd
  • 0x0D15EA5E (Disease) používaný Nintendem na internetu Gamecube a Wii označující normální spuštění systému.
  • 0x1BADB002 (1 špatné spuštění) používaný serverem multiboot specifikace jako magické číslo
  • 0xDEADDEAD - používá Windows k označení a ručně zahájené selhání ladění , jinak známá jako Modrá obrazovka smrti.

Nejsou samozřejmě jediní, ale jen krátký seznam příkladů, které se zdály zábavné. Víš o něčem jiném? Řekněte nám to v komentářích.

Podívejte se na příklady sami

Další příklady můžete vidět otevřením hexadecimálního editoru a otevřením libovolného počtu typů souborů. Pro Windows, OS X nebo Linux je k dispozici spousta freewarových hexadecimálních editorů - jen při instalaci freeware buďte opatrní neinfikovat se crapwarem nebo spywarem.

Jako další příklad se obrázky pro obnovení pro telefony s Androidem, jako je ClockworkMod, začínají slovy „ANDROID!“ pokud jsou čteny ve formátu ASCII.

Poznámka: nedělejte nic, když se rozhlížíte kolem. Hex editori mohou věci rozbít!

.vstupní obsah .vstup do zápatí

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


Soukromí a bezpečnost - Nejoblíbenější články

Jak systém iOS 13 „Ztišení neznámých volajících“ zastaví spam v telefonu

Soukromí a bezpečnost Sep 18, 2025

iOS 13 má novou funkci, která vás může jen zachránit před veškerým spamem a robotickými hovory. Nová funkce Ztlumit neznámé volající ztlumí všechny hovory přicház..


Jak spravovat oprávnění aplikací v systému Windows 10

Soukromí a bezpečnost Oct 10, 2025

Moderní aplikace pro Windows 10 mají oprávnění, která můžete ovládat, stejně jako moderní aplikace pro iPhone, iPad a Android. Můžete ovládat přístup ke zdrojům, ja..


Jak používat Instapaper v EU

Soukromí a bezpečnost Jun 18, 2025

Instapaper je v současné době v EU blokován kvůli zákony o obecném nařízení o ochraně osobních údajů (GDPR) která vstoupila v platnost v..


Jak blokovat soubory cookie (s výjimkou stránek, které používáte) v libovolném prohlížeči

Soukromí a bezpečnost Oct 30, 2025

Soubory cookie mohou být užitečné, pokud je máte pod kontrolou. Dnes se podíváme na to, jak můžete ovládat soubory cookie jejich blokováním, kromě případů, kdy chcet..


Jak vyloučit určité uživatele v odpovědi na Twitteru

Soukromí a bezpečnost May 19, 2025

NEBEZPEČNÝ OBSAH Twitter provedl nedávné změny ve svém webovém rozhraní, které odstraní uživatelská jména z odpovědí, ale je tak o něco obtížnější vyloučit u..


Jak odstranit historii vyhledávání v Průzkumníku souborů Windows

Soukromí a bezpečnost Nov 29, 2024

NEBEZPEČNÝ OBSAH Při psaní do vyhledávacího pole v Průzkumníku souborů ve Windows se pod polem zobrazí seznam návrhů. Tyto návrhy pocházejí z historie předchozích..


Jak „Důvěryhodná zařízení“ fungují v systému Windows 10 (a proč už nemusíte „Důvěřovat tomuto PC“)

Soukromí a bezpečnost Oct 28, 2025

NEBEZPEČNÝ OBSAH Po přihlášení pomocí účtu Microsoft vás systém Windows 8 požádal o „Důvěřujte tomuto počítači“. Tato zpráva je v systému Windows 10 odstr..


Měli byste upgradovat na 64bitový Chrome. Je bezpečnější, stabilnější a rychlejší

Soukromí a bezpečnost Jul 30, 2025

Používáte Chrome v systému Windows? Existuje velká šance, že 32bitovou verzi stále používáte. Měli byste upgradovat na 64bitovou verzi. Je bezpečnější - nemluvě o r..


Kategorie