Jump to content

Hexspeak

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by AnomieBOT (talk | contribs) at 11:51, 31 March 2016 (Dating maintenance tags: {{Citation needed}}). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Hexspeak, like leetspeak, is a novelty form of variant English spelling using the hexadecimal numbers. Created by programmers as memorable magic numbers, hexspeak words can serve as a clear and unique identifier with which to mark memory or data.

Hexadecimal notation represents numbers using the 16 digits 0123456789ABCDEF. Using only the letters ABCDEF it is possible to spell several words. Further words can be made by treating some of the decimal numbers as letters - the digit "0" can represent the letter "O", and "1" can represent the letters "I" or "L". Less commonly, "5" can represent "S", "7" represent "T", "12" represent "R" and "6" or "9" can represent "G" or "g", respectively. Numbers such as 2 or 8 can be used in a manner similar to leet or rebuses; e.g. the word "defecate" can be expressed either as DEFECA7E or DEFEC8. (2 bears a resemblance to Z, but because that letter is the least used in the English language, such a usage is rare.)[citation needed]

Notable magic numbers

Many computer processors, operating systems, and debuggers make use of magic numbers, especially as a magic debug value.

  • 0x0000000FF1CE ("office") is used as the last part of product codes (guid) for Microsoft Office components (visible in registry under HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall registry key).
  • 0x00BAB10C ("über (ooba) block") is used as the magic number for the ZFS uberblock.
  • 0x8BADF00D ("ate bad food") is used by Apple in iOS crash reports, when an application takes too long to launch, terminate, or respond to system events.[1]
  • 0x1BADB002 ("1 bad boot"[2]) Multiboot header magic number.[3]
  • 0x1CEB00DA ("ice buddha") was used as the origin for the binary file parser IceBuddha.[4]
  • 0xB105F00D ("BIOS food") is the value of the low bytes of last four registers on ARM PrimeCell compatible components (the component_id registers), used to identify correct behaviour of a memory-mapped component.
  • 0xB16B00B5 ("big boobs") was required by Microsoft's Hyper-V hypervisor to be used by Linux guests as their "guest signature".[5] One proposal suggested changing it to 0x0DEFACED ("defaced").[6] Actually, it was initially changed to decimal and then replaced entirely.[7]
  • 0xBADA55 ("bad ass")
  • 0xBAADF00D ("bad food") is used by Microsoft's LocalAlloc(LMEM_FIXED) to indicate uninitialised allocated heap memory when the debug heap is used.[8]
  • 0xBADDCAFE ("bad cafe") is used by Libumem to indicate uninitialized memory area
  • 0xC00010FF ("cool off") is used by Apple in iOS crash reports, when application was killed in response to a thermal event.[1]
  • C15C:0D06:F00D ("cisco dog food") used in the IPv6 address of www.cisco.com on World IPv6 Day. "Dog food" refers to Cisco eating its own dog food with IPv6.
  • 0xCAFEBABE ("cafe babe") is used by Plan 9's libc as a poison value for memory pools.[9][10] It is also used by Mach-O to identify Universal object files, and by the Java programming language to identify Java bytecode class files. It was originally created by NeXTSTEP developers as a reference to the baristas at Peet's Coffee & Tea.[11]
  • 0xCAFED00D ("cafe dude") is used by Java as a magic number for their pack200 compression.[12]
  • 0xCEFAEDFE ("face feed") is used by Mach-O to identify flat (single architecture) object files. In little endian this reads FEEDFACE, "Feed Face".
  • 0xD15EA5E ("disease") is a flag that indicates regular boot on the Nintendo GameCube and Wii consoles.[13][14]
  • 0xDABBAD00 ("dabba doo") is the name of a blog on computer security.[15]
  • 0xDEADBAAD ("dead bad") is used by the Android libc abort() function when native heap corruption is detected.
  • 0xDEADBABE ("Dead Babe") is used by IBM Jikes RVM as a sanity check of the stack of the primary thread.[16]
  • 0xDEADBEAF ("dead beaf") is part of the signature code of Jazz Jackrabbit 2 tileset files.[17] Level files have less room for their signatures and use 0xBABE ("babe") instead.[18] It is also the header of campaign gamesaves used in the Halo Game Series.
  • deadbeef-dead-beef-dead-beef00000075("dead beef") is the GUID assigned to hung/dead virtual machines in Citrix XenServer.
  • 0xDEADBEEF ("dead beef") is frequently used to indicate a software crash or deadlock in embedded systems. DEADBEEF was originally used to mark newly allocated areas of memory that had not yet been initialized—when scanning a memory dump, it is easy to see the DEADBEEF. It is used by IBM RS/6000 systems, Mac OS on 32-bit PowerPC processors and the Commodore Amiga as a magic debug value. On Sun Microsystems' Solaris, it marks freed kernel memory. On OpenVMS running on Alpha processors, DEAD_BEEF can be seen by pressing CTRL-T. The DEC Alpha SRM console has a background process that traps memory errors, identified by PS as "BeefEater waiting on 0xdeadbeef".[19]
  • 0xDEADC0DE ("dead code") is used as a marker in OpenWrt firmware to signify the beginning of the to-be created jffs2 filesystem at the end of the static firmware.
  • 0xDEADDEAD ("dead dead") is the bug check (STOP) code displayed when invoking a Blue Screen of Death either by telling the kernel via the attached debugger, or by using a special keystroke combination.[20] This is usually seen by driver developers, as it is used to get a memory dump on Windows NT based systems. An alternative to 0xDEADDEAD is the bug check code 0x000000E2,[21] as they are both called MANUALLY_INITIATED_CRASH as seen on the Microsoft Developer Network.
  • 0xDEADD00D ("dead dude") is used by Android in the Dalvik virtual machine to indicate a VM abort.
  • 0xDEADFA11 ("dead fall") is used by Apple in iOS crash reports, when the user force quits an application.[1]
  • 0xDEAD10CC ("dead lock") is used by Apple in iOS crash reports, when application holds on to a system resource while running in the background.[1]
  • 0xDEADFEED ("dead feed") is used by Apple in iOS crash reports, when a timeout occurs spawning a service
  • 0xDEFEC8ED ("defecated") is the magic number for OpenSolaris core dumps.[22]
  • 0xE011CFD0 is used as a magic number for Microsoft Office files. In little endian this reads D0CF11E0, "docfile0".[23]
  • face:b00c ("facebook") used in the IPv6 address of www.v6.facebook.com
  • 0xFACEFEED ("face feed") is used by Alpha servers running Windows NT. The Alpha Hardware Abstraction Layer (HAL) generates this error when it encounters a hardware failure.[24]
  • 0xFBADBEEF ("bad beef") is used in the WebKit and Blink layout engines to indicate a known, unrecoverable error such as out of memory.[25]
  • 0xFEE1DEAD ("feel dead") is used as a magic number in the Linux reboot system call.[26]
  • 0xFEEDBABE ("feed babe") is the magic number used to indicate the beginning of an OpenRG flash partition descriptor[27]
  • 0x4B1D ("Forbid'den'") was a password in some calibration consoles for developers to peer deeper into control registers outside the normal calibration memory range.[citation needed]
  • 0xB000 0xDEAD ("Boo Dead") was displayed by the HP 9000 Model 840 when it crashed.[citation needed]

Alternative letters

Many computer languages require that a hexadecimal number be marked with a prefix or suffix (or both) to identify it as a number. Sometimes the prefix or suffix is used as part of the word.

  • The C programming language uses the "0x" prefix to indicate a hexadecimal number, but the "0x" is usually ignored when reading it as a word. C also allows the suffix L to declare an integer as long, or LL to declare it as long long, making it possible to write "0xDEADCELL" (dead cell). In either case a U may also appear in the suffix to declare the integer as unsigned, making it possible to write "0xFEEDBULL" (feed bull).
  • In the Intel assembly language, hexadecimal numbers are denoted by a "h" suffix, making it possible to write "0beach" (beach). Note that numbers in this notation that begin with a letter must be prefixed with a zero to distinguish them from variable names.
  • Visual Basic uses a &H prefix, for example, "&HEADED" (headed).
  • In Pascal and 6502 assembly language, hexadecimal numbers are denoted by a "$" prefix. This allows for words starting with the letter "S", for example "$EED" (seed).
  • In Б3-34 programmable calculators alternative hexadecimal alphabet was used, where the symbol "−", "L", "C", "Г", "E", " " (space) were used instead of Latin letters. Using these it was possible to display messages like "EГГ0Г" (error).

See also

References

  1. ^ a b c d "Technical Note TN2151: Understanding and Analyzing iPhone OS Application Crash Reports".
  2. ^ "Multiboot mailing list archive".
  3. ^ "Multiboot specifications".
  4. ^ "IceBuddha.com".
  5. ^ "Staging: hv: vmbus_drv: Move the content of hv.h to hyperv_vmbus.h".
  6. ^ "hv: Change the guest ID value".
  7. ^ https://github.com/torvalds/linux/commit/83ba0c4f3f317270dae5597d8044b795d119914c
  8. ^ "Win32 Debug CRT Heap Internals".
  9. ^ "9front system".
  10. ^ babe, cafe. "0xcafebabe".
  11. ^ "Why Cafebabe". Artima.com. Retrieved 2009-10-01.
  12. ^ "Pack200: A Packed Class Deployment Format For Java Applications". Retrieved 2010-11-03.
  13. ^ "Yet Another Gamecube Documentation: Dolphin-OS Globals".
  14. ^ "Wiibrew: Memory Map".
  15. ^ "0xdabbad00.com".
  16. ^ "DEADBABE sanity check". Retrieved 2009-10-01.
  17. ^ "J2T File Format".
  18. ^ "J2L File Format".
  19. ^ "Jargon File entry for DEADBEEF". Catb.org. Retrieved 2009-10-01.
  20. ^ "Bug Check 0xDEADDEAD: MANUALLY_INITIATED_CRASH, MSDN". msdn.microsoft.com. 2009-10-01. Archived from the original on October 2, 2009. Retrieved 2009-10-13. {{cite web}}: Unknown parameter |deadurl= ignored (|url-status= suggested) (help)
  21. ^ "Bug Check 0xE2: MANUALLY_INITIATED_CRASH, MSDN". msdn.microsoft.com. 2009-10-01. Archived from the original on July 31, 2009. Retrieved 2009-10-13. {{cite web}}: Unknown parameter |deadurl= ignored (|url-status= suggested) (help)
  22. ^ "Opensolaris header line 45 for 0xDEFEC8ED". src.opensolaris.org. Retrieved 2011-07-12.
  23. ^ "Documents That Are Supported by the Office Filter".
  24. ^ "Technet article for 0xFACEFEED". Support.microsoft.com. 2006-11-01. Retrieved 2009-10-01.
  25. ^ "Chromium Assertions.h line 133". Retrieved 2014-03-27.
  26. ^ "include/linux/reboot.h".
  27. ^ https://lists.openwrt.org/pipermail/openwrt-devel/2013-June/020315.html. {{cite web}}: Missing or empty |title= (help)