0xDEADBEEF
Z Wikipedii
0xDEADBEEF jest to 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. Prawdopodobieństwo, że trzydziestodwubitowa liczba całkowita przyjmie tę właśnie wartość jest jak jeden do 232=4294967296.
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.
Wiele wersji 32-bitowych procesorów PowerPC w swoich rejestrach ustala wartość 0xDEADBEEF podczas resetowania. Używano tego w pierwotnych systemach operacyjnych Mac OS i w serii IBM RS/6000.
W języku Java każdy skompilowany do kodu maszynowego plik klasy (z rozszerzeniem .class) zaczyna się ciągiem 0xCAFEBABE.
W systemie operacyjnym Solaris algorytmy detekcji błędów zarządzania pamięcią używają stałych o wartościach 0xbaddcafe (kiepska kawa), 0xdeadbeef oraz 0xfeedface (nakarm buzię). [1]
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.
[edytuj] Zobacz też
- Detecting Memory Corruption w Solaris 10 Software Developer Collection
- en:Magic_number_(programming)#Magic_debug_values lista wielu ciekawych wartości w kodzie szestnastkowym