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, 4o 8possono essere usati in modo simile a leet o rebus ; ad esempio, la parola "defecare" può essere espressa sia come DEFECA7Eo 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\Uninstallchiave 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 come long long, rendendo possibile scrivere "0xDEADCELL" (cella morta). In entrambi i casi può anche apparire una U nel suffisso per dichiarare l'intero come unsigned, 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.

Guarda anche

Riferimenti

link esterno