Magiczne liczby: tajne kody, które programiści ukrywają na twoim komputerze

Nov 3, 2024
Prywatność i ochrona

Odkąd pierwsza osoba zapisała na kalkulatorze 5318008, frajerzy ukrywali tajne liczby w twoim komputerze i używali ich do negocjowania tajnych uścisków dłoni między aplikacjami i plikami. Dzisiaj przyjrzymy się bliżej niektórym z bardziej zabawnych przykładów.

Co to są magiczne liczby?

Większość języków programowania używa 32-bitowych liczb całkowitych do reprezentowania pewnych typów danych za kulisami - wewnętrznie liczba jest przechowywana w pamięci RAM lub używana przez procesor jako 32 jedynki i zera, ale w kodzie źródłowym byłaby zapisana w albo zwykły format dziesiętny lub format szesnastkowy, który wykorzystuje cyfry od 0 do 9 oraz litery od A do F.

Gdy system operacyjny lub aplikacja chce określić typ pliku, może szukać na początku pliku specjalnego znacznika, który oznacza typ pliku. Na przykład plik PDF może zaczynać się od wartości szesnastkowej 0x255044462D312E33, która równa się „% PDF-1.3” w formacie ASCII, lub plik ZIP zaczyna się od 0x504B, co jest równe „PK”, co pochodzi od oryginalnego narzędzia PKZip. Patrząc na ten „podpis”, można łatwo zidentyfikować typ pliku, nawet bez innych metadanych.

Skompilowane pliki klas Java zaczynają się od CAFEBABE

Narzędzie Linux „file” może być użyte z terminala do określenia typu pliku - w rzeczywistości, to jest czyta magiczne liczby z pliku zwana „magią”.

Gdy aplikacja chce wywołać funkcję, może przekazywać wartości do tej funkcji przy użyciu standardowych typów, takich jak liczba całkowita, które można wyrazić w kodzie źródłowym w formacie szesnastkowym. Jest to szczególnie prawdziwe w przypadku stałych, które są identyfikatorami zdefiniowanymi za pomocą nazw czytelnych dla człowieka, takich jak AUTOSAVE_INTERVAL, ale są one mapowane na rzeczywiste wartości całkowite (lub innego typu). Więc zamiast wpisywania przez programistę wartości takiej jak 60 za każdym razem, gdy wywołuje funkcję w kodzie źródłowym, mógłby użyć stałej AUTOSAVE_INTERVAL dla lepszej czytelności. (Stałe są zwykle łatwe do rozpoznania, ponieważ są zapisane wielkimi literami).

Wszystkie te przykłady mogą być objęte tym terminem Magiczne liczby , ponieważ mogą wymagać określonej liczby szesnastkowej, aby funkcja lub typ pliku działały prawidłowo… jeśli wartość nie jest poprawna, nie zadziała. A kiedy programista chce się trochę zabawić, może zdefiniować te wartości za pomocą liczb szesnastkowych, które oznaczają coś w języku angielskim, znanym również jako szesnastkowy .

Zabawa z magicznymi liczbami: kilka godnych uwagi przykładów

Każdy AppleScript kończy się na FADEDEAD

Jeśli spojrzysz szybko do kodu źródłowego Linuksa , zobaczysz, że wywołanie systemowe _reboot () w Linuksie wymaga przekazania zmiennej „magicznej”, równej liczbie szesnastkowej 0xfee1dead. Gdyby coś próbowało wywołać tę funkcję bez wcześniejszego przekazywania tej magicznej wartości, po prostu zwróciłoby błąd.

Identyfikator GUID (unikatowy identyfikator globalny) dla Partycja rozruchowa systemu BIOS w Schemat partycjonowania GPT to 21686148-6449-6E6F-744E-656564454649, który tworzy ciąg ASCII „Hah! IdontNeedEFI”, co jest aluzją do faktu, że GPT byłby normalnie używany w komputery, które zastąpiły BIOS UEFI , ale niekoniecznie musi tak być.

Microsoft słynie ukrył 0x0B00B135 w ich wirtualnej maszynie Hyper-V obsługującej kod źródłowy przesłanej do systemu Linux zmienili wartość na 0xB16B00B5 i wreszcie oni zmieniłem go na dziesiętny zanim został całkowicie usunięty z kodu źródłowego.

Bardziej zabawne przykłady obejmują:

  • 0xbaaaaaad - używany przez Rejestrowanie awarii iOS aby wskazać, że dziennik jest obrazem stosu całego systemu.
  • 0xbad22222 - używany przez rejestrowanie awarii systemu iOS w celu wskazania, że ​​aplikacja VoIP została zabita przez iOS, ponieważ źle się zachowała.
  • 0x8badf00d - (Ate Bad Food) używane w dziennikach awarii iOS do wskazania, że ​​aplikacja zajęła zbyt dużo czasu i została zabita przez przekroczenie limitu czasu watchdoga.
  • 0xdeadfa11 - (Dead Fall) używane przez rejestrowanie awarii systemu iOS, gdy użytkownik wymusza zamknięcie aplikacji.
  • 0xDEADD00D - używany przez Androida do wskazania przerwania pracy maszyny wirtualnej.
  • 0xDEAD10CC (Dead Lock) używany przez rejestrowanie awarii systemu iOS, gdy aplikacja blokuje zasób w tle.
  • 0xBAADF00D (złe jedzenie) używane przez LocalAlloc funkcja w systemie Windows do debugowania.
  • 0xCAFED00D (Cafe dude) używany przez kompresję pack200 Javy.
  • 0xCAFEBABE (Cafe babe) używany przez Javę jako identyfikator skompilowanych plików klas
  • 0x0D15EA5E (choroba) używany przez Nintendo w Gamecube i Wii aby wskazać, że nastąpił normalny rozruch.
  • 0x1BADB002 (1 zły rozruch) używany przez multiboot specyfikacja jako magiczna liczba
  • 0xDEADDEAD - używany przez system Windows do wskazania pliku ręcznie zainicjowana awaria debugowania , inaczej nazywany niebieskim ekranem śmierci.

Nie są to oczywiście jedyne dostępne, ale tylko krótka lista przykładów, które wydawały się zabawne. Wiesz coś więcej? Powiedz nam w komentarzach.

Samodzielne dostrzeganie przykładów

Możesz zobaczyć więcej przykładów, otwierając edytor szesnastkowy, a następnie otwierając dowolną liczbę typów plików. Istnieje wiele darmowych edytorów szesnastkowych dostępnych dla systemu Windows, OS X lub Linux - po prostu upewnij się, że jesteś ostrożny podczas instalacji freeware aby nie zarazić się oprogramowaniem crapware lub spyware.

Jako dodatkowy przykład obrazy odzyskiwania dla telefonów z Androidem, takich jak ClockworkMod, zaczynają się od „ANDROID!” jeśli czytane w formacie ASCII.

Uwaga: nie zmieniaj niczego podczas rozglądania się. Edytory szesnastkowe mogą wszystko zepsuć!

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


Prywatność i ochrona - Najpopularniejsze artykuły

Jak powstrzymać serwis Strava przed upublicznieniem adresu domowego

Prywatność i ochrona Jun 26, 2025

TREŚĆ NIENARUSZONA Dieta to jedna z najlepszych aplikacji do śledzenia biegania i jazdy na rowerze, ale także zmora prywatności. Nie tylko mają ludzi wyc..


Jak wykonać kopię zapasową komputera Mac i przywrócić pliki za pomocą Time Machine

Prywatność i ochrona Oct 26, 2025

Regularne kopie zapasowe są niezbędne. Kiedy twój twardy dysk umrze - i to będzie umrzeć w końcu - ważne jest, aby wiedzieć, że masz gdzieś kolejną kopię ..


Jak powstrzymać złodziei tożsamości przed otwieraniem kont w Twoim imieniu

Prywatność i ochrona Feb 28, 2025

TREŚĆ NIENARUSZONA Wszyscy są hakowani na lewo i prawo. Anthem stracił 80 milionów rekordów w 2015 roku. Rząd Stanów Zjednoczonych został zhakowany i utracił dane osobow..


Jak zezwolić tylko znajomym na kontaktowanie się z tobą w Snapchacie

Prywatność i ochrona May 17, 2025

TREŚĆ NIENARUSZONA Domyślnie Snapchat umożliwia każdemu, kto doda Cię, wysyłanie Ci Snapów, co nie jest idealne. Jeśli wolisz nie otrzymywać wiadomości od nieznajomych,..


Jak korzystać z funkcji Spotlight systemu macOS jak mistrz

Prywatność i ochrona Apr 24, 2025

Istnieją dwa rodzaje użytkowników komputerów Mac: ci, którzy stale używają Spotlight i ci, którzy go ignorują. Jeśli należysz do drugiej kategorii, to szkoda: ws..


Jak zablokować kogoś w WhatsApp

Prywatność i ochrona Feb 14, 2025

WhatsApp to świetna usługa, ale każdy, kto ma Twój numer telefonu, może za jej pośrednictwem wysłać do Ciebie wiadomość. Niezależnie od tego, czy chcesz powstrzymać okre..


Wszystko, co musisz wiedzieć o korzystaniu z grup domowych w systemie Windows

Prywatność i ochrona Aug 19, 2025

TREŚĆ NIENARUSZONA Grupy domowe systemu Windows doskonale nadają się do konfigurowania szybkiego i łatwego udostępniania w sieciach domowych i małych firmach. Oto,..


Zachowaj prywatność swoich rozmów za pomocą komunikatorów, gdy są one niedostępne

Prywatność i ochrona Jul 12, 2025

TREŚĆ NIENARUSZONA Może się zdarzyć, że nie chcesz, aby „mężczyzna” wiedział, jakie są Twoje rozmowy przez komunikatory. Dzisiaj przyjrzymy się wtyczce Instant Messenger, kt�..


Kategorie