Шестнадцатеричная речь
Hexspeak — это новая форма варианта английского написания с использованием шестнадцатеричных цифр. Шестнадцатеричные слова, созданные программистами как запоминающиеся магические числа , могут служить четким и уникальным идентификатором для обозначения памяти или данных.
Шестнадцатеричная система записи представляет числа, состоящие из 16 цифр. 0123456789ABCDEF
. Используя только буквы ABCDEF
можно написать несколько слов. Дальнейшие слова можно составить, рассматривая некоторые десятичные числа как буквы — цифры». 0
" может обозначать букву "О" и " 1
" может обозначать буквы "I" или "L". Реже " 5
" может обозначать букву "S", " 7
" представляют букву "Т", " 12
" представляют собой "R" и " 6
" или " 9
" может обозначать "G" или "g" соответственно. Такие числа, как 2
, 4
или 8
может использоваться аналогично leet или ребусам ; например, слово «испражняться» может быть выражено как DEFECA7E
или DEFEC8
.
Известные магические числа
[ редактировать ]Многие компьютерные процессоры , операционные системы и отладчики используют магические числа, особенно в качестве магического значения отладки .
Код | десятичный | Описание |
---|---|---|
0x0000000FF1CE | 1044942 | («office») используется как последняя часть кодов продуктов ( GUID ) для компонентов Microsoft Office (видна в реестре под разделом HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall ключ реестра). |
0x00BAB10C | 12235020 | («блок uber (ooba)») используется в качестве магического числа для уберблока ZFS . |
0x1BADB002 | 464367618 | («1 плохой ботинок» [1] ) Магический номер заголовка мультизагрузки. [2] |
0x4B1D | 19229 | («запретить») был паролем в некоторых калибровочных консолях, позволяющим разработчикам глубже заглянуть в регистры управления за пределами обычного диапазона калибровочной памяти. [ нужна ссылка ] |
0x50FFC001 | 1358938113 | («soff[t] Cool») использовалось в качестве значения отладки Macintosh, чтобы помочь идентифицировать нулевые ссылки, а затем и вызвать сбои шины. [3] [4] |
0x8BADF00D | 2343432205 | («съел плохую еду») используется Apple в отчетах о сбоях iOS , когда приложению требуется слишком много времени для запуска, завершения работы или ответа на системные события. [5] |
0xABADBABE | 2880289470 | («плохой ребенок») использовался/используется Microsoft Windows 7 для запуска точки останова отладчика, вероятно, при подключении USB-устройства. [6] |
0xB105F00D | 2969956365 | («Питание BIOS») — это значение младших байтов последних четырех регистров компонентов, совместимых с ARM PrimeCell (регистры компонент_ид), используемых для определения правильного поведения компонента, отображаемого в памяти. |
0xB16B00B5 | 2976579765 | («большие сиськи») требовался Microsoft гипервизором Hyper-V для использования гостями Linux в качестве «гостевой подписи». [7] В одном из предложений предлагалось изменить его на 0x0DEFACED («испорчен»), [8] но вместо этого сначала оно было изменено на десятичное, а затем полностью заменено. [9] |
0x0B00B135 | 184594741 | («олуши») также требовалось Microsoft гипервизором Hyper-V для использования пользователем XEN в качестве идентификатора пользователя. [10] Он был удален 22 января 2010 года. [11] |
0xBAAAAAAD | 3131746989 | («baaaaaad») используется в Apple от отчете об исключениях iOS , чтобы указать, что журнал представляет собой снимок всей системы, а не отчет о сбое. [12] |
0xBAADF00D | 3131961357 | («плохая еда») используется Microsoft LocalAlloc(LMEM_FIXED) для обозначения неинициализированной выделенной памяти кучи при использовании кучи отладки. [13] |
0xBAD22222 | 3134333474 | («слишком плохо») используется Apple iOS журналом исключений для обозначения того, что приложение VoIP было прекращено iOS из-за того, что оно возобновлялось слишком часто. [12] |
0xBADDCAFE | 3135097598 | («плохое кафе») используется Libumem для обозначения неинициализированной области памяти. |
0xCAFEB0BA | 3405689018 | («cafe boba») используется datp в качестве стандартного возвращаемого значения для обнаружения ключевого слова QKit MFCC для разработки графического интерфейса хоста, поскольку его коллега любит кофе (и, возможно, боба тоже). |
0xB0BABABE | 2965027518 | («boba baby») используется pton в качестве подтверждения хоста GUI для ответа на обнаружение ключевого слова QKit MFCC. |
0xBEEFBABE | 3203381950 | («говяжий малыш») используется в видеоигре Frogger 1997 года для обнаружения переполнения буфера стека . |
0xB000 0xDEAD | 2952847021 | («boo Dead») отображалось на PA-RISC на базе компьютерах HP 3000 и HP 9000 при обнаружении «остановки системы» (также известной как «остановка низкого уровня»). [14] |
0xC00010FF | 3221229823 | («охлаждение») используется Apple в отчетах о сбоях iOS , когда приложение было закрыто в ответ на термическое событие. [5] |
C15C:0D06:F00D | 212601099710477 | («корм для собак Cisco»), используемый в IPv6-адресе www.cisco.com во Всемирный день IPv6 . «Корм для собак» означает, что Cisco ест собственный корм для собак с IPv6. |
0xCAFEBABE | 3405691582 | («детка-кафе») используется libc Plan 9 как токсичное значение для пулов памяти. [15] Он также используется Mach-O для идентификации универсальных объектных файлов и языком программирования Java для идентификации байт-кода Java файлов классов . Первоначально он был создан разработчиками NeXTSTEP как отсылка к бариста Peet's Coffee & Tea . [4] |
0xCAFED00D | 3405697037 | («кафе-чувак») используется Java как магическое число для сжатия Pack200 . [16] |
0xCEFAEDFE | 3472551422 | («подача лица») используется Mach-O для идентификации плоских объектных файлов (с одной архитектурой). В прямом порядке байтов это читается FEEDFACE , «Покормить лицо». |
0x0D15EA5E | 219540062 | («нулевая болезнь») — флаг, указывающий на регулярную загрузку консолей GameCube и Wii . [17] [18] |
0xDABBAD00 | 3669732608 | («дабба ду») — название блога, посвященного компьютерной безопасности. [19] |
0xDEAD2BAD | 3735890861 | («слишком мертвый») использовался для обозначения выделенных областей памяти, которые еще не были инициализированы в Sequent Dynix/ptx системах . |
0xDEADBAAD | 3735927469 | («ужасно плохой») используется функцией Android libc abort() при обнаружении повреждения встроенной кучи. |
0xDEADBABE | 3735927486 | («мертвый ребенок») используется IBM Jikes RVM для проверки работоспособности стека основного потока. [20] |
0xDEADBEAF | 3735928495 | («мертвый биф») является частью сигнатурного кода файлов набора тайлов Jazz Jackrabbit 2 . [21] В файлах уровней меньше места для подписей и использования. 0xBABE («детка») вместо этого. [22] Это также заголовок сохранений кампании, используемых в Halo серии игр . |
deadbeef-dead-beef-dead-beef00000075 | 29599075508304910171 | («мертвая говядина») — это GUID , назначенный зависшим/неработающим виртуальным машинам в Citrix XenServer . |
0xDEADBEEF | 3735928559 | («мертвая говядина») часто используется для обозначения сбоя программного обеспечения или тупиковой ситуации во встроенных системах. 0xDEADBEEF изначально использовался для обозначения вновь выделенных областей памяти, которые еще не были инициализированы — при сканировании дампа памяти легко увидеть 0xDEADBEEF . Он используется системами IBM RS/6000 , Mac OS на 32-битных процессорах PowerPC и Commodore Amiga в качестве волшебного значения отладки. В Sun Microsystems от Solaris он отмечает освобожденную память ядра. Консоль DEC Alpha SRM имеет фоновый процесс, который перехватывает ошибки памяти, идентифицируемые PS как «BeefEater, ожидающий 0xdeadbeef». [23] |
0xDEADC0DE | 3735929054 | (« мертвый код ») используется в качестве маркера в прошивке OpenWrt для обозначения начала создаваемой файловой системы jffs2 в конце статической прошивки. |
0xDEADDEAD | 3735936685 | («dead Dead») — это код проверки ошибок (STOP), отображаемый при вызове « синего экрана смерти » либо путем сообщения ядру через подключенный отладчик, либо с помощью специальной комбинации клавиш. [24] Обычно это видят разработчики драйверов, поскольку оно используется для получения дампа памяти в системах на базе Windows NT. Альтернатива 0xDEADDEAD это код проверки ошибок 0x000000E2 , [25] поскольку они оба называются MANUALLY_INITIATED_CRASH, как видно в сети Microsoft Developer Network. |
0xDEADD00D | 3735932941 | («мертвый чувак») используется Android в виртуальной машине Dalvik для обозначения прерывания работы виртуальной машины. |
0xDEADFA11 | 3735943697 | («полное падение» или «полный сбой») используется Apple в отчетах о сбоях iOS , когда пользователь принудительно закрывает приложение. [5] |
0xDEAD10CC | 3735883980 | («мертвая блокировка») используется Apple в отчетах о сбоях iOS , когда приложение удерживает системный ресурс во время работы в фоновом режиме. [5] |
0xDEADFEED | 3735944941 | («мертвый канал») используется Apple в отчетах о сбоях iOS , когда происходит тайм-аут, вызывающий создание службы. |
0xDECAFBAD | 3737844653 | («без кофеина плохо») часто встречается в программировании как легко распознаваемое магическое число при шестнадцатеричном дампе памяти. |
0xDEFEC8ED | 3741239533 | («испражнено») — это магическое число для OpenSolaris дампов ядра . [26] |
0xD0D0CACA | 3503344330 | (« doo-doo caca ») — это неинициализированное значение значений GPIO на Nvidia Tegra X1. [ нужна ссылка ] |
0xE011CFD0 | 3759263696 | («docfile0») используется как магическое число для файлов Microsoft Office. В прямом порядке байтов это читается D0CF11E0 , "файл_документа0". [27] |
0xF0CACC1A | 4039822362 | («фокачча») — 8-буквенное слово на шестнадцатеричном языке в словаре, имеющее наивысший балл в скрэббл (17 баллов в английской версии). |
0xF1AC | 61868 | («FLAC») используется в качестве бесплатного аудиокодека без потерь . тега аудиоформата [28] |
face:b00c | 4207849484 | (« facebook »), используемый в адресах IPv6 сайта www.facebook.com. [29] |
0xFACEFEED | 4207869677 | («подача лица») используется серверами Alpha под управлением Windows NT. Alpha Уровень абстракции оборудования (HAL) генерирует эту ошибку при обнаружении аппаратного сбоя. [30] |
0xFBADBEEF | 4222467823 | («плохая говядина») используется в механизмах компоновки WebKit и Blink для обозначения известной неисправимой ошибки, например нехватки памяти. [31] |
0xFEE1DEAD | 4276215469 | («чувствовать себя мертвым») используется как магическое число в системном вызове перезагрузки Linux . [32] Другими магическими числами для перезагрузки компьютера являются 672274793, 85072278, 369367448 и 537993216, которые в шестнадцатеричном формате переводятся соответственно в 0x28121969, 0x5121996, 0x16041998 и 0x20112000, даты рождения Линуса Торвальдса и трех его дочерей. [33] |
0xFEEDBABE | 4276992702 | («feed baby») — это магическое число, используемое для обозначения начала дескриптора флэш-раздела OpenRG . [34] |
0xFEEDC0DE | 4276994270 | («код подачи») используется операционной системой OS-9 в качестве шаблона заполнения при инициализации ее оперативной памяти . [35] |
0xFEEDFACECAFEBEEF | 18369614221190020847 | («feed face cafe beef») — это магическое число, используемое для отправки в качестве пароля через последовательный провод, чтобы спасти некоторые контроллерные устройства, созданные NXP, от сбоев загрузки. [36] [37] [38] |
0xFFBADD11 | 4290436369 | («плохая DLL »): используется внутри Windows . [ нужна ссылка ] |
0xF00DBABE | 4027431614 | Ledger Nano («food baby»): аппаратный криптовалютный кошелек использовал этот магический номер в процессе подписи, который был взломан. [39] |
Альтернативные буквы
[ редактировать ]Многие компьютерные языки требуют, чтобы шестнадцатеричное число было отмечено префиксом или суффиксом (или обоими), чтобы идентифицировать его как число. Иногда приставка или суффикс используются как часть слова.
- Язык программирования C использует префикс «0x» для обозначения шестнадцатеричного числа, но «0x» обычно игнорируется, когда люди читают такие значения как слова. C также позволяет суффиксу L объявлять целое число как
long
или LL, чтобы объявить его какlong long
, что позволяет писать «0xDEADCELL» (мертвая ячейка). В любом случае в суффиксе также может появиться буква U, обозначающая целое число какunsigned
, что позволяет писать «0xFEEDBULL» (фид бык). - (не Unix) На языке ассемблера Intel шестнадцатеричные числа обозначаются суффиксом «h», что позволяет писать «0beach» (пляж). Обратите внимание, что числа в этой записи, начинающиеся с буквы, должны иметь префикс нуля, чтобы отличить их от имен переменных. Вместо этого ассемблер в стиле Unix использует соглашение о языке C (но ассемблеры в стиле, отличном от Unix, также доступны в операционных системах типа x86 Unix).
- Visual Basic и все предыдущие версии Microsoft BASIC, такие как QuickBasic, GWBasic, BASICA и ColorBASIC, используют префикс &H, например, «&HEADED» (заголовок) и «&HADC0FFEE» (кофе).
- В Паскале и некоторых языках ассемблера ( 6502 , 6809 ,...) шестнадцатеричные числа обозначаются префиксом «$». Это позволяет использовать слова, начинающиеся с буквы «S», например «$EED» (семя).
- В В3-34 программируемых калькуляторах использовался альтернативный шестнадцатеричный алфавит, где вместо латинских букв использовались символы «−», «L», «C», «Г», «E» и « » (пробел). С их помощью можно было отображать сообщения типа «ЕГГ0Г» (ошибка).
PlayStation 3 RSX
[ редактировать ]При обратном проектировании Sony PlayStation 3 было обнаружено, что ряд шестнадцатеричных кодов либо запускают, либо влияют, либо присутствуют в аспектах связи с гипервизором PlayStation 3 и через него при связи с его графическим процессором, синтезатором реальности RSX . [40]
Эти проекты в основном родились из доморощенной версии PS3, работающей на OtherOS для PS3 , которая позволяла устанавливать Linux, первоначально с крайне ограниченным доступом к графическому процессору.
Код | Описание |
---|---|
0x1337BEEF , 0x1337F001 , 0x1337BEEF | Находится как часть дескриптора RSX. |
0xF00DBEEF | Значение семафора RSX |
0x1337C0D3 и 0x1337BABE | Начните значение семафора и заполнитель из системы. [41] |
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Архив мультизагрузочного списка рассылки» .
- ^ «Характеристики мультизагрузки» .
- ^ «Технические заметки Macintosh, 1992 г.» (PDF) .
- ↑ Перейти обратно: Перейти обратно: а б «Почему Кафебэйб» . Artima.com . Проверено 1 октября 2009 г.
- ↑ Перейти обратно: Перейти обратно: а б с д «Техническое примечание TN2151: Понимание и анализ отчетов о сбоях приложений ОС iPhone» . Архивировано из оригинала 5 июля 2012 г.
- ^ «Кто такой 0xabadbabe и почему?» . 28 октября 2011 г.
- ^ «Постановка: hv: vmbus_drv: переместите содержимое hv.h в Hyperv_vmbus.h» .
- ^ «hv: Изменить значение идентификатора гостя» .
- ^ «Драйверы: Hv: Очистка вычисления гостевого идентификатора · torvalds/Linux@83ba0c4» . Гитхаб .
- ^ «Постановка: hv: добавьте виртуальную шину Hyper-V» . Гитхаб .
- ^ «Промежуточный: hv: удалите устаревший код xen и проверьте наличие Hyper-V» . Гитхаб .
- ↑ Перейти обратно: Перейти обратно: а б «Документация разработчика Apple» .
- ^ «Внутреннее устройство кучи CRT отладки Win32» .
- ^ «Сообщения об ошибках MPE (стр. 30–66)» (PDF) .
- ^ «Система 9 фронтов» .
- ^ «Pack200: формат развертывания упакованных классов для приложений Java» . Проверено 3 ноября 2010 г.
- ^ «Еще одна документация Gamecube: глобальные значения Dolphin-OS» .
- ^ «Вибрю: Карта памяти» .
- ^ «0xdabbad00.com» .
- ^ "DEADBABE проверка здравомыслия" . Проверено 1 октября 2009 г. [ постоянная мертвая ссылка ]
- ^ «Формат файла J2T» .
- ^ «Формат файла J2L» .
- ^ "ДЕДБИФ" . Файл жаргона . Проверено 1 октября 2009 г.
- ^ «Проверка ошибок 0xDEADDEAD: MANUALLY_INITIATED_CRASH, MSDN» . msdn.microsoft.com. 01.10.2009. Архивировано из оригинала 2 октября 2009 года . Проверено 13 октября 2009 г.
- ^ «Проверка ошибок 0xE2: MANUALLY_INITIATED_CRASH, MSDN» . msdn.microsoft.com. 01.10.2009. Архивировано из оригинала 31 июля 2009 года . Проверено 13 октября 2009 г.
- ^ «Строка заголовка Opensolaris 45 для 0xDEFEC8ED» . src.opensolaris.org. Архивировано из оригинала 29 сентября 2011 г. Проверено 12 июля 2011 г.
- ^ «Документы, поддерживаемые фильтром Office» .
- ^ «GUID подтипа аудио — приложения Win32» . Майкрософт. 31 мая 2018 г. Проверено 06 марта 2021 г.
- ^ «Facebook создает шестнадцатеричный код с самоссылающимся IPv6» . Проверено 21 октября 2017 г.
- ^ «0xФЕЙСФИД» . Технет . Майкрософт. 01.11.2006 . Проверено 1 октября 2009 г.
- ^ «Chromium Assertions.h строка 133» . Проверено 27 марта 2014 г.
- ^ «reboot.h « linux « uapi « include - kernel/git/torvalds/linux.git — дерево исходного кода ядра Linux» . git.kernel.org . Проверено 10 ноября 2022 г.
- ^ Исаак; Исаак (04 августа 2015 г.). «Патриция Торвальдс: наследница наследия своего отца?» . Linux-аддиктос . Проверено 10 ноября 2022 г.
- ^ «OpenWrt-Devel: PATCH — добавить поддержку [так в оригинале] для опции GlobeSurfer 3» . Архивировано из оригинала 29 марта 2016 г. Проверено 14 декабря 2015 г.
- ^ «Руководство по установке OEM-процессоров OS-9 для процессоров 68K» . Январь 2008 года.
- ^ «Примечания к приложению NXP: Приложение модуля Qorivva Boot Assist» (PDF) .
- ^ «Сообщество NXP: подвергнутое цензуре устройство — пароль известен» . 30 октября 2014 г.
- ^ «Сообщество NXP: ошибка загрузчика RAppID» . 25 июня 2014 г.
- ^ «LiveOverflow@YouTube: Взлом аппаратного кошелька: Ledger Nano S» . Ютуб . Архивировано из оригинала 12 декабря 2021 г.
- ^ «RSXFIFOCommands — Wiki для разработчиков PS3» . psdev вики. 20 мая 2014 г. Проверено 1 ноября 2017 г.
- ^ «rpc3/sys_rsx.cpp» . RPCS3 на GitHub. 28 октября 2017 г. Проверено 1 ноября 2017 г.