Esadecimale - Hexspeak
Hexspeak , come leetspeak , è una forma innovativa di variante dell'ortografia inglese che utilizza le cifre esadecimali. Creati dai programmatori come numeri magici memorabili , le parole esadecimali possono fungere da identificatore chiaro e univoco con cui contrassegnare memoria o dati.
La notazione esadecimale rappresenta i numeri utilizzando le 16 cifre 0123456789ABCDEF
. Utilizzando solo le lettere ABCDEF
è possibile scrivere più parole. Ulteriori parole possono essere create trattando alcuni dei numeri decimali come lettere: la cifra " 0
" può rappresentare la lettera "O" e " 1
" può rappresentare le lettere "I" o "L". Meno comunemente, " 5
" può rappresentare "S", " 7
" rappresentare "T", " 12
" rappresentare "R" e " 6
" o " 9
" possono rappresentare rispettivamente "G" o "g". Numeri come 2
, 4
o 8
possono essere usati in modo simile a leet o rebus ; ad esempio, la parola "defecare" può essere espressa sia come DEFECA7E
o DEFEC8
.
Numeri magici notevoli
Molti processori di computer , sistemi operativi e debugger fanno uso di numeri magici, in particolare come valore di debug magico .
Codice | Decimale | Descrizione |
---|---|---|
0x0000000FF1CE |
1044942 | ("office") viene utilizzato come ultima parte dei codici prodotto ( GUID ) per i componenti di Microsoft Office (visibile nel registro sotto la HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall chiave di registro).
|
0x00BAB10C |
12235020 | ("blocco über (ooba)") viene utilizzato come numero magico per l' uberblock ZFS . |
0x1BADB002 |
464367618 | ("1 avvio errato") Numero magico dell'intestazione multiboot. |
0x4B1D |
19229 | ("proibire") era una password in alcune console di calibrazione per consentire agli sviluppatori di scrutare più in profondità nei registri di controllo al di fuori del normale intervallo di memoria di calibrazione. |
0x8BADF00D |
2343432205 | ("mangiato cibo cattivo") viene utilizzato da Apple nei rapporti sugli arresti anomali di iOS , quando un'applicazione impiega troppo tempo per avviarsi, terminare o rispondere a eventi di sistema. |
0xABADBABE |
2880289470 | ("a bad babe") era/viene utilizzato da Windows 7 di Microsoft per attivare un punto di interruzione del debugger, probabilmente quando è collegato un dispositivo USB |
0xB105F00D |
2969956365 | ("BIOS food") è il valore dei byte bassi degli ultimi quattro registri sui componenti compatibili con ARM PrimeCell (i registri component_id), utilizzati per identificare il comportamento corretto di un componente mappato in memoria. |
0xB16B00B5 |
2976579765 | ( "grandi tette") è stato richiesto da Microsoft s' Hyper-V hypervisor per essere utilizzato dagli ospiti Linux come loro 'firma guest'. Una proposta suggeriva di cambiarlo in 0x0DEFACED ("defaced"). Ma in realtà, è stato inizialmente cambiato in decimale e poi sostituito completamente.
|
0x0B00B135 |
184594741 | ( "boobies") è stato anche richiesti da Microsoft s' Hyper-V hypervisor per essere utilizzato da un utente di XEN come ID utente. È stato rimosso il 22 gennaio 2010. |
0xBAAAAAAD |
3131746989 | ( "baaaaaad") viene utilizzato da di Apple 's iOS rapporto eccezione per indicare che il registro è uno stackshot dell'intero sistema, non è un rapporto di crash. |
0xBAADF00D |
3131961357 | ( "bad food") viene utilizzato da Microsoft 's LocalAlloc (LMEM_FIXED) per indicare memoria heap allocata non inizializzate quando si utilizza l'heap di debug. |
0xBAD22222 |
3134333474 | ( "troppo male più volte") viene utilizzato da di Apple 's iOS registro eccezione a indicare che un'applicazione VoIP è stata terminata da iOS perché ripreso troppo spesso. |
0xBADDCAFE |
3135097598 | ("bad cafe") è usato da Libumem per indicare un'area di memoria non inizializzata. |
0xCAFEB0BA |
3405689018 | ("cafe boba") viene utilizzato da datp come valore di ritorno predefinito per il rilevamento delle parole chiave QKit MFCC per lo sviluppo della GUI dell'host poiché al suo collega piace il caffè (e forse anche boba). |
0xB0BABABE |
2965027518 | ("boba babe") viene utilizzato da pton come risposta di rilevamento delle parole chiave dell'host GUI a QKit MFCC. |
0xBEEFBABE |
3203381950 | ("beef babe") è usato dal videogioco del 1997 Frogger per rilevare un overflow del buffer dello stack . |
0xB000 0xDEAD |
2952847021 | ("boo dead") è stato visualizzato dai computer HP 3000 e HP 9000 basati su PA-RISC in caso di "arresto del sistema" (noto anche come "arresto di basso livello"). |
0xC00010FF |
3221229823 | ("cool off") viene utilizzato da Apple nei rapporti sugli arresti anomali di iOS , quando l'applicazione è stata interrotta in risposta a un evento termico. |
C15C:0D06:F00D |
212601099710477 | ("cisco per cani Cisco") utilizzato nell'indirizzo IPv6 di www.cisco.com in occasione della Giornata mondiale dell'IPv6 . "Cibo per cani" si riferisce a Cisco che mangia il proprio cibo per cani con IPv6. |
0xCAFEBABE |
3405691582 | ("cafe babe") è utilizzato dalla libc di Plan 9 come valore veleno per i pool di memoria. Viene anche utilizzato da Mach-O per identificare i file oggetto universali e dal linguaggio di programmazione Java per identificare i file di classe bytecode Java . È stato originariamente creato dagli sviluppatori di NeXTSTEP come riferimento ai baristi di Peet's Coffee & Tea . |
0xCAFED00D |
3405697037 | ("cafe dude") è usato da Java come numero magico per la loro compressione pack200 . |
0xCEFAEDFE |
3472551422 | ("face feed") viene utilizzato da Mach-O per identificare file oggetto flat (architettura singola). In little endian si legge FEEDFACE "Feed Face".
|
0x0D15EA5E |
219540062 | ("zero malattie") è un flag che indica l'avvio regolare sulle console Nintendo GameCube e Wii . |
0xDABBAD00 |
3669732608 | ("dabba doo") è il nome di un blog sulla sicurezza informatica. |
0xDEAD2BAD |
3735890861 | ("dead too bad") veniva utilizzato per contrassegnare le aree di memoria allocate che non erano ancora state inizializzate sui sistemi Sequent Dynix/ptx . |
0xDEADBAAD |
3735927469 | ("dead bad") viene utilizzato dalla funzione Android libc abort() quando viene rilevata la corruzione dell'heap nativo. |
0xDEADBABE |
3735927486 | ("dead babe") viene utilizzato da IBM Jikes RVM come controllo di integrità dello stack del thread primario. |
0xDEADBEAF |
3735928495 | ("dead beaf") fa parte del codice della firma dei file del set di tessere Jazz Jackrabbit 2 . I file di livello hanno meno spazio per le loro firme e usano invece 0xBABE ("babe"). È anche l'intestazione dei salvataggi della campagna utilizzati nella serie di giochi Halo .
|
deadbeef-dead-beef-dead-beef00000075 |
295990755083049101712519384016336453749 | ("dead beef") è il GUID assegnato alle macchine virtuali bloccate/morte in Citrix XenServer . |
0xDEADBEEF |
3735928559 | ("manzo morto") è spesso usato per indicare un arresto anomalo del software o un punto morto nei sistemi embedded. 0xDEADBEEF è stato originariamente utilizzato per contrassegnare le aree di memoria appena allocate che non erano ancora state inizializzate: durante la scansione di un dump della memoria, è facile vedere il file 0xDEADBEEF . Viene utilizzato dai sistemi IBM RS/6000 , Mac OS su processori PowerPC a 32 bit e Commodore Amiga come valore di debug magico. Su Sun Microsystems ' Solaris , segna liberati memoria del kernel. La console DEC Alpha SRM ha un processo in background che intercetta gli errori di memoria, identificati da PS come "BeefEater in attesa di 0xdeadbeef".
|
0xDEADC0DE |
3735929054 | (" codice morto ") viene utilizzato come marcatore nel firmware OpenWrt per indicare l'inizio del filesystem jffs2 da creare alla fine del firmware statico. |
0xDEADDEAD |
3735936685 | ("dead dead") è il codice di controllo dei bug (STOP) visualizzato quando si invoca una schermata blu della morte comunicando al kernel tramite il debugger allegato o utilizzando una combinazione di tasti speciale. Questo viene in genere visto dagli sviluppatori di driver, poiché viene utilizzato per ottenere un dump della memoria sui sistemi basati su Windows NT. Un'alternativa 0xDEADDEAD è il codice di controllo dei bug 0x000000E2 , poiché entrambi sono chiamati MANUALLY_INITIATED_CRASH come si vede su Microsoft Developer Network.
|
0xDEADD00D |
3735932941 | ("dead dude") viene utilizzato da Android nella macchina virtuale Dalvik per indicare l'interruzione di una VM. |
0xDEADFA11 |
3735943697 | ("dead fall" o "dead fail") viene utilizzato da Apple nei rapporti sugli arresti anomali di iOS , quando la forza dell'utente chiude un'applicazione. |
0xDEAD10CC |
3735883980 | ("dead lock") viene utilizzato da Apple nei rapporti sugli arresti anomali di iOS , quando un'applicazione trattiene una risorsa di sistema durante l'esecuzione in background. |
0xDEADFEED |
3735944941 | ("feed morto") viene utilizzato da Apple nei rapporti sugli arresti anomali di iOS , quando si verifica un timeout che genera un servizio. |
0xDECAFBAD |
3737844653 | ("decaffeinato male") si trova spesso nella codifica come un numero magico facilmente riconoscibile quando si esegue il dump esadecimale della memoria. |
0xDEFEC8ED |
3741239533 | ("defecato") è il numero magico per i core dump di OpenSolaris . |
0xD0D0CACA |
3503344330 | (" doo-doo caca ") è il valore non inizializzato dei valori GPIO su Nvidia Tegra X1. |
0xE011CFD0 |
3759263696 | ("docfile0") viene utilizzato come numero magico per i file di Microsoft Office. In little endian si legge D0CF11E0 "docfile0".
|
0xF1AC |
61868 | ("FLAC") viene utilizzato come tag del formato audio del Codec audio senza perdita di dati . |
face:b00c |
4207849484 | (" facebook ") utilizzato negli indirizzi IPv6 di www.facebook.com. |
0xFACEFEED |
4207869677 | ("feed facciale") è utilizzato dai server Alpha che eseguono Windows NT. L'Alpha Hardware Abstraction Layer (HAL) genera questo errore quando rileva un errore hardware. |
0xFBADBEEF |
4222467823 | ("bad beef") viene utilizzato nei motori di layout WebKit e Blink per indicare un errore noto e irreversibile come memoria insufficiente. |
0xFEE1DEAD |
4276215469 | ("sentirsi morto") viene utilizzato come numero magico nella chiamata di sistema di riavvio di Linux . |
0xFEEDBABE |
4276992702 | ("feed babe") è il numero magico utilizzato per indicare l'inizio di un descrittore di partizione flash OpenRG . |
0xFEEDC0DE |
4276994270 | ("codice feed") viene utilizzato come modello di riempimento dal sistema operativo OS-9 durante l'inizializzazione della sua RAM . |
0xFEEDFACECAFEBEEF |
18369614221190020847 | ("feed face cafe beef") è il numero magico utilizzato per inviare una password tramite cavo seriale per salvare alcuni dispositivi controller creati da NXP da errori di avvio. |
0xFFBADD11 |
4290436369 | (" DLL errata "): utilizzato internamente da Windows . |
0xF00DBABE |
4027431614 | ("food babe"): Il portafoglio di criptovaluta hardware Ledger Nano ha utilizzato questo numero magico nel processo di firma che è stato sfruttato. |
Lettere alternative
Molti linguaggi informatici richiedono che un numero esadecimale sia contrassegnato con un prefisso o un suffisso (o entrambi) per identificarlo come numero. A volte il prefisso o il suffisso è usato come parte della parola.
- Il linguaggio di programmazione C usa il prefisso "0x" per indicare un numero esadecimale, ma lo "0x" viene solitamente ignorato quando le persone leggono valori come parole. C permette anche al suffisso L di dichiarare un intero come
long
, o LL di dichiararlo comelong long
, rendendo possibile scrivere "0xDEADCELL" (cella morta). In entrambi i casi può anche apparire una U nel suffisso per dichiarare l'intero comeunsigned
, rendendo possibile scrivere "0xFEEDBULL" (feed bull). - Nel linguaggio assembly Intel (non Unix) , i numeri esadecimali sono indicati da un suffisso "h", rendendo possibile scrivere "0beach" (spiaggia). Nota che i numeri in questa notazione che iniziano con una lettera devono essere preceduti da uno zero per distinguerli dai nomi delle variabili. Un assemblatore in stile Unix utilizza invece la convenzione del linguaggio C (ma gli assemblatori non in stile Unix sono disponibili anche sui sistemi operativi di tipo Unix x86).
- Visual Basic e tutti i precedenti Microsoft BASIC come QuickBasic, GWBasic, BASICA e ColorBASIC, utilizzano un prefisso &H, ad esempio "&HEADED" (headed) e "&HADC0FFEE" (ha avuto il caffè).
- In Pascal e in diversi linguaggi assembly ( 6502 , 6809 ,...), i numeri esadecimali sono indicati da un prefisso "$". Ciò consente parole che iniziano con la lettera "S", ad esempio "$EED" (seme).
- Nelle calcolatrici programmabili Б3-34 , è stato utilizzato un alfabeto esadecimale alternativo, in cui sono stati utilizzati i simboli "-", "L", "C", "Г", "E" e " " (spazio) invece delle lettere latine. Usandoli, è stato possibile visualizzare messaggi come "EГГ0Г" (errore).
PlayStation 3 RSX
Negli aspetti di reverse engineering della PlayStation 3 di Sony , è stato scoperto che un certo numero di codici hexspeak attivavano, influenzavano o erano presenti negli aspetti della comunicazione con e attraverso l'Hypervisor di PlayStation 3 in comunicazione con la sua GPU, RSX Reality Synthesizer .
Questi progetti sono nati in gran parte dall'homebrew di PS3 che opera su OtherOS della PS3 che ha permesso l'installazione di Linux, inizialmente con un accesso GPU estremamente limitato.
Codice | Descrizione |
---|---|
0x1337BEEF , 0x1337F001 ,0x1337BEEF
|
Trovato come parte del descrittore RSX. |
0xF00DBEEF |
Il valore del semaforo RSX |
0x1337C0D3 e 0x1337BABE
|
Inizia il valore del semaforo e il pad, dal sistema. |