0xDEADBEEF
0xDEADBEEF – liczba zapisana w systemie szesnastkowym o wartości dziesiętnej 3735928559, którą można przeczytać jak angielskie słowa "dead beef", co można przetłumaczyć jako 'martwa wołowina'.
Dane zapisane w pamięci komputerowej często są reprezentowane szesnastkowo. Większość tak zakodowanych liczb nie wygląda interesująco i nie przyciąga naszego wzroku. Czasami jednak, przydatne jest ustalenie takiej wartości, która będzie łatwo rozpoznawalna (np. przy debugowaniu lub przy korzystaniu z logów), ale nie ma specjalnego zastosowania w programie.
Programiści często używają tej "magicznej liczby", by wykryć powszechne błędy, jak przepełnienie bufora lub niezainicjowane zmienne, podczas używania debugera. Na przykład, kiedy tylko wartość ta pojawi się w zrzucie pamięci, bardzo prawdopodobne, że programista powinien lepiej przyjrzeć się temu miejscu, w którym się pojawiła. Można też umieszczać tę wartość w tych obszarach pamięci, do których program nie powinien mieć dostępu, przez co łatwiej wykryć błędy w wykonaniu kodu.
Przykłady zastosowania edytuj
Wiele wersji 32-bitowych procesorów PowerPC w swoich rejestrach ustala wartość 0xDEADBEEF podczas restartowania. Używano tego w pierwotnych systemach operacyjnych Mac OS i w serii IBM RS/6000[1].
W języku Java każdy plik klasy skompilowany do kodu pośredniego (z rozszerzeniem .class) zaczyna się ciągiem 0xCAFEBABE[2].
W systemie operacyjnym Solaris algorytmy detekcji błędów zarządzania pamięcią używają stałych o wartościach: 0xBADDCAFE (kiepska kawa)[3], 0xDEADBEEF[4] oraz 0xFEEDFACE[5] (nakarm buzię).
Nazwą "dead beef attack" określa się również atak przeciwko kryptografii asymetrycznej poprzez opublikowanie klucza, którego ID jest takie samo jak ID innego klucza. Atak działa w przypadku, gdy ofiara nie weryfikuje kluczy i został zademonstrowany przez utworzenie klucza o ID równym 0xDEADBEEF[6].
Przypisy edytuj
- ↑ DEADBEEF. catb.org. [dostęp 2016-11-01]. (ang.).
- ↑ Archive Entity Counts and Class Format. [dostęp 2016-11-01]. (ang.).
- ↑ Uninitialized Data: 0xbaddcafe. [dostęp 2016-11-01]. (ang.).
- ↑ Freed Buffer Checking: 0xdeadbeef. [dostęp 2016-11-01]. (ang.).
- ↑ Redzone: 0xfeedface. [dostęp 2016-11-01]. (ang.).
- ↑ dead beef attack. catb.org. [dostęp 2016-11-01]. (ang.).