Hexspeak
Hexspeak, like leetspeak, is a novelty form of variant English spelling using the hexadecimal digits. 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
, 4
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
.
Notable magic numbers[]
Many computer processors, operating systems, and debuggers make use of magic numbers, especially as a magic debug value.
Code | Decimal | Description |
---|---|---|
0x0000000FF1CE |
1044942 | ("office") is used as the last part of product codes (GUID) for Microsoft Office components (visible in registry under the HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall registry key).
|
0x00BAB10C |
12235020 | ("über (ooba) block") is used as the magic number for the ZFS uberblock. |
0x1BADB002 |
464367618 | ("1 bad boot"[1]) Multiboot header magic number.[2] |
0x4B1D |
19229 | ("forbid") was a password in some calibration consoles for developers to peer deeper into control registers outside the normal calibration memory range.[citation needed] |
0x8BADF00D |
2343432205 | ("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.[3] |
0xABADBABE |
2880289470 | ("a bad babe") was/is used by Microsoft's Windows 7 to trigger a debugger break-point, probably when a USB device is attached[4] |
0xB105F00D |
2969956365 | ("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 |
2976579765 | ("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] But in actuality, it was initially changed to decimal and then replaced entirely.[7]
|
0x0B00B135 |
184594741 | ("boobies") was likewise required by Microsoft's Hyper-V hypervisor to be used by a user of XEN as their user id.[8] It was removed on January 22, 2010.[9] |
0xBAAAAAAD |
3131746989 | ("baaaaaad") is used by Apple's iOS exception report to indicate that the log is a stackshot of the entire system, not a crash report.[10] |
0xBAADF00D |
3131961357 | ("bad food") is used by Microsoft's LocalAlloc(LMEM_FIXED) to indicate uninitialised allocated heap memory when the debug heap is used.[11] |
0xBAD22222 |
3134333474 | ("bad too repeatedly") is used by Apple's iOS exception log to indicate that a VoIP application has been terminated by iOS because it resumed too frequently.[10] |
0xBADDCAFE |
3135097598 | ("bad cafe") is used by Libumem to indicate uninitialized memory area. |
0xCAFEB0BA |
3405689018 | ("cafe boba") is used by datp as canned return value for QKit MFCC keyword detection for Host GUI development since his colleague likes coffee (and maybe boba, too). |
0xB0BABABE |
2965027518 | ("boba babe") is used by pton as Host GUI Ack to QKit MFCC keyword detection response. |
0xBEEFBABE |
3203381950 | ("beef babe") is used by the 1997 video game Frogger to detect a stack buffer overflow. |
0xB000 0xDEAD |
2952847021 | ("boo dead") was displayed by PA-RISC based HP 3000 and HP 9000 computers upon encountering a "system halt" (aka "low level halt").[12] |
0xC00010FF |
3221229823 | ("cool off") is used by Apple in iOS crash reports, when application was killed in response to a thermal event.[3] |
C15C:0D06:F00D |
212601099710477 | ("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 |
3405691582 | ("cafe babe") is used by Plan 9's libc as a poison value for memory pools.[13] 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.[14] |
0xCAFED00D |
3405697037 | ("cafe dude") is used by Java as a magic number for their pack200 compression.[15] |
0xCEFAEDFE |
3472551422 | ("face feed") is used by Mach-O to identify flat (single architecture) object files. In little endian this reads FEEDFACE , "Feed Face".
|
0x0D15EA5E |
219540062 | ("zero disease") is a flag that indicates regular boot on the Nintendo GameCube and Wii consoles.[16][17] |
0xDABBAD00 |
3669732608 | ("dabba doo") is the name of a blog on computer security.[18] |
0xDEAD2BAD |
3735890861 | ("dead too bad") was used to mark allocated areas of memory that had not yet been initialised on Sequent Dynix/ptx systems. |
0xDEADBAAD |
3735927469 | ("dead bad") is used by the Android libc abort() function when native heap corruption is detected. |
0xDEADBABE |
3735927486 | ("dead babe") is used by IBM Jikes RVM as a sanity check of the stack of the primary thread.[19] |
0xDEADBEAF |
3735928495 | ("dead beaf") is part of the signature code of Jazz Jackrabbit 2 tileset files.[20] Level files have less room for their signatures and use 0xBABE ("babe") instead.[21] It is also the header of campaign gamesaves used in the Halo game series.
|
deadbeef-dead-beef-dead-beef00000075 |
295990755083049101712519384016336453749 | ("dead beef") is the GUID assigned to hung/dead virtual machines in Citrix XenServer. |
0xDEADBEEF |
3735928559 | ("dead beef") is frequently used to indicate a software crash or deadlock in embedded systems. 0xDEADBEEF 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 0xDEADBEEF . 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. The DEC Alpha SRM console has a background process that traps memory errors, identified by PS as "BeefEater waiting on 0xdeadbeef".[22]
|
0xDEADC0DE |
3735929054 | ("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 |
3735936685 | ("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.[23] 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 ,[24] as they are both called MANUALLY_INITIATED_CRASH as seen on the Microsoft Developer Network.
|
0xDEADD00D |
3735932941 | ("dead dude") is used by Android in the Dalvik virtual machine to indicate a VM abort. |
0xDEADFA11 |
3735943697 | ("dead fall" or "dead fail") is used by Apple in iOS crash reports, when the user force quits an application.[3] |
0xDEAD10CC |
3735883980 | ("dead lock") is used by Apple in iOS crash reports, when an application holds on to a system resource while running in the background.[3] |
0xDEADFEED |
3735944941 | ("dead feed") is used by Apple in iOS crash reports, when a timeout occurs spawning a service. |
0xDECAFBAD |
3737844653 | ("decaf bad") is often found in coding as an easily recognized magic number when hex dumping memory. |
0xDEFEC8ED |
3741239533 | ("defecated") is the magic number for OpenSolaris core dumps.[25] |
0xD0D0CACA |
3503344330 | ("doo-doo caca") is the uninitialized value of GPIO values on the Nvidia Tegra X1.[citation needed] |
0xE011CFD0 |
3759263696 | ("docfile0") is used as a magic number for Microsoft Office files. In little endian this reads D0CF11E0 , "docfile0".[26]
|
0xF1AC |
61868 | ("FLAC") is used as the Free Lossless Audio Codec's audio format tag.[27] |
face:b00c |
4207849484 | ("facebook") used in the IPv6 addresses of www.facebook.com.[28] |
0xFACEFEED |
4207869677 | ("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.[29] |
0xFBADBEEF |
4222467823 | ("bad beef") is used in the WebKit and Blink layout engines to indicate a known, unrecoverable error such as out of memory.[30] |
0xFEE1DEAD |
4276215469 | ("feel dead") is used as a magic number in the Linux reboot system call.[31] |
0xFEEDBABE |
4276992702 | ("feed babe") is the magic number used to indicate the beginning of an OpenRG flash partition descriptor.[32] |
0xFEEDC0DE |
4276994270 | ("feed code") is used as filling pattern by the OS-9 operating system when initializing its RAM.[33] |
0xFEEDFACECAFEBEEF |
18369614221190020847 | ("feed face cafe beef") is the magic number used to send as a password via serial wire to rescue some NXP created controller devices from boot failures.[34][35][36] |
0xFFBADD11 |
4290436369 | ("bad DLL"): Used by Windows internally.[citation needed] |
0xF00DBABE |
4027431614 | ("food babe"): The Ledger Nano hardware cryptocurrency wallet used this magic number in the process of signing that was exploited.[37] |
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 people read such values as words. C also allows the suffix L to declare an integer as
long
, or LL to declare it aslong long
, making it possible to write "0xDEADCELL" (dead cell). In either case a U may also appear in the suffix to declare the integer asunsigned
, making it possible to write "0xFEEDBULL" (feed bull). - In the (non-Unix) 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. A Unix-style assembler uses C language convention instead (but non-Unix-style assemblers are also available on x86 Unix-type OSes).
- Visual Basic and all previous Microsoft BASICs such as QuickBasic, GWBasic, BASICA and ColorBASIC, use a &H prefix, for example, "&HEADED" (headed) and "&HADC0FFEE" (had coffee).
- In Pascal and several assembly languages (6502,6809,...), 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, an alternative hexadecimal alphabet was used, where the symbols "−", "L", "C", "Г", "E", and " " (space) were used instead of Latin letters. Using these, it was possible to display messages like "EГГ0Г" (error).
PlayStation 3 RSX[]
In reverse engineering aspects of the Sony PlayStation 3, a number of hexspeak codes were found to either trigger, affect or were present in aspects of communicating to and through the PlayStation 3 Hypervisor in communication to its GPU, the RSX Reality Synthesizer.[38]
These projects were largely born out of PS3 homebrew operating on the PS3's OtherOS which allowed Linux to be installed, initially with extremely limited GPU access.
Code | Description |
---|---|
0x1337BEEF , 0x1337F001 , 0x1337BEEF |
Found as part of the RSX Descriptor. |
0xF00DBEEF |
The RSX Semaphore Value |
0x1337C0D3 and 0x1337BABE |
Begin semaphore value and pad, from the system.[39] |
See also[]
References[]
- ^ "Multiboot mailing list archive".
- ^ "Multiboot specifications".
- ^ Jump up to: a b c d "Technical Note TN2151: Understanding and Analyzing iPhone OS Application Crash Reports". Archived from the original on 2012-07-05.
- ^ "Who's 0xabadbabe and why?".
- ^ "Staging: hv: vmbus_drv: Move the content of hv.h to hyperv_vmbus.h".
- ^ "hv: Change the guest ID value".
- ^ https://github.com/torvalds/linux/commit/83ba0c4f3f317270dae5597d8044b795d119914c
- ^ "Staging: hv: add the Hyper-V virtual bus".
- ^ "Staging: hv: Remove xen legacy code and check for Hyper-V".
- ^ Jump up to: a b https://developer.apple.com/library/ios/technotes/tn2151/_index.html
- ^ "Win32 Debug CRT Heap Internals".
- ^ "MPE Error Messages (page 30-66)" (PDF).
- ^ "9front system".
- ^ "Why Cafebabe". Artima.com. Retrieved 2009-10-01.
- ^ "Pack200: A Packed Class Deployment Format For Java Applications". Retrieved 2010-11-03.
- ^ "Yet Another Gamecube Documentation: Dolphin-OS Globals".
- ^ "Wiibrew: Memory Map".
- ^ "0xdabbad00.com".
- ^ "DEADBABE sanity check". Retrieved 2009-10-01.[permanent dead link]
- ^ "J2T File Format".
- ^ "J2L File Format".
- ^ "DEADBEEF". Jargon File. Retrieved 2009-10-01.
- ^ "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.
- ^ "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.
- ^ "Opensolaris header line 45 for 0xDEFEC8ED". src.opensolaris.org. Archived from the original on 2011-09-29. Retrieved 2011-07-12.
- ^ "Documents That Are Supported by the Office Filter".
- ^ "Audio Subtype GUIDs - Win32 apps". Microsoft. 2018-05-31. Retrieved 2021-03-06.
- ^ "Facebook casts a hex with self-referential IPv6". Retrieved 2017-10-21.
- ^ "0xFACEFEED". Technet. Microsoft. 2006-11-01. Retrieved 2009-10-01.
- ^ "Chromium Assertions.h line 133". Retrieved 2014-03-27.
- ^ "include/linux/reboot.h".
- ^ "OpenWrt-Devel: PATCH - add suport for Option GlobeSurfer 3". Archived from the original on 2016-03-29. Retrieved 2015-12-14.
- ^ "OS-9 for 68K Processors OEM Installation Manual".
- ^ "NXP Application Note: Qorivva Boot Assist Module Application" (PDF).
- ^ "NXP Community: Censored Device - Password Known".
- ^ "NXP Community: RAppID boot loader error".
- ^ "LiveOverflow@YouTube: Hardware Wallet Hack: Ledger Nano S".
- ^ "RSXFIFOCommands - PS3 Developer Wiki". psdev wiki. 2014-05-20. Retrieved 2017-11-01.
- ^ "rpc3/sys_rsx.cpp". RPCS3 on github. 2017-10-28. Retrieved 2017-11-01.
External links[]
- Source code
- Obfuscation
- Computer humor
- Hexadecimal numeral system