Hexspeak - Hexspeak

Hexspeak, подобно гадкий язык, это новая форма варианта английский написание с использованием шестнадцатеричных цифр. Создано программистами как запоминающееся магические числа, слова hexspeak могут служить четким и уникальным идентификатором для пометки памяти или данных.

Шестнадцатеричная запись представляет числа с использованием 16 цифр 0123456789ABCDEF. Используя только буквы ABCDEF можно написать несколько слов. Дальнейшие слова можно составить, рассматривая некоторые десятичные числа как буквы - цифру "0"может представлять букву" О "и"1"может представлять буквы" I "или" L ". Реже"5"может представлять" S ","7"представляют" Т ","12"представляют" R "и"6" или же "9"может представлять" G "или" g "соответственно. Такие числа, как 2, 4 или же 8 можно использовать аналогично позвольте или же ребусы; например слово «испражняться» можно выразить как DEFECA7E или же DEFEC8.

Известные магические числа

Много компьютерные процессоры, операционные системы, и отладчики использовать магические числа, особенно как магическое значение отладки.

КодДесятичныйОписание
0x0000000FF1CE1044942("офис") используется как последняя часть кодов товаров (GUID ) за Microsoft Office компоненты (отображаются в реестре в разделе HKLM SOFTWARE Microsoft Windows CurrentVersion Uninstall раздела реестра).
0x00BAB10C12235020("über (ooba) block") используется как магическое число для ZFS уберблок.
0x1BADB002464367618(«1 плохая загрузка»[1]) Магический номер заголовка мультизагрузки.[2]
0x4B1D19229("запретить") было паролем в некоторых консолях калибровки, чтобы разработчики могли глубже заглядывать в регистры управления за пределами обычного диапазона калибровочной памяти.[нужна цитата ]
0x8BADF00D2343432205("съел плохую еду") используется яблоко в iOS отчеты о сбоях, когда приложение слишком долго запускается, завершается или реагирует на системные события.[3]
0xABADBABE2880289470("плохой малыш") использовался / используется Microsoft Windows 7 для запуска точки останова отладчика, вероятно, когда подключено USB-устройство[4]
0xB105F00D2969956365("BIOS food") - это значение младших байтов последних четырех регистров на компонентах, совместимых с ARM PrimeCell (регистры component_id), используемое для определения правильного поведения отображаемого в память компонента.
0xB16B00B52976579765("большие сиськи") требовалось Microsoft с Hyper-V гипервизор, который будет использоваться гостями Linux в качестве «гостевой подписи».[5] Одно предложение предлагало изменить его на 0x0DEFACED ("испорченный").[6] Но на самом деле он был сначала изменен на десятичный, а затем полностью заменен.[7]
0x0B00B135184594741("олухи") также требовались Microsoft с Hyper-V гипервизор, который будет использоваться пользователем XEN в качестве идентификатора пользователя.[8] Он был удален 22 января 2010 года. [9]
0xBAAAAAAD3131746989("baaaaaad") используется яблоко с iOS отчет об исключениях, чтобы указать, что журнал представляет собой снимок всей системы, а не отчет о сбоях.[10]
0xBAADF00D3131961357(«плохая еда») используется Microsoft LocalAlloc (LMEM_FIXED) для указания неинициализированной выделенной памяти кучи, когда используется куча отладки.[11]
0xBAD222223134333474("плохо слишком часто") используется яблоко с iOS журнал исключений, чтобы указать, что приложение VoIP было прекращено iOS из-за слишком частого возобновления работы.[10]
0xBADDCAFE3135097598("плохое кафе") используется Либумем для обозначения неинициализированной области памяти.
0xBEEFBABE3203381950("beef babe") используется Frogger (игра, 1997) обнаружить переполнение буфера стека.
0xB000 0xDEAD2952847021("бу мертв") был отображен HP 9000 Модель 840 когда разбилась.[нужна цитата ]
0xC00010FF3221229823("остыть") используется яблоко в iOS отчеты о сбоях, когда приложение было остановлено в ответ на тепловое событие.[3]
C15C: 0D06: F00D212601099710477("корм для собак cisco"), используемый в IPv6-адрес из www.cisco.com на Всемирный день IPv6. «Корм для собак» относится к Cisco. ест собачий корм с IPv6.
0xCAFEBABE3405691582("детка из кафе") используется План 9 libc как опасное значение для пулов памяти.[12] Он также используется Мачо идентифицировать Универсальный объектные файлы и Язык программирования Java идентифицировать Байт-код Java файлы классов. Первоначально он был создан Следующий шаг разработчиков в качестве ссылки на бариста в Кофе и чай Пита.[13]
0xCAFED00D3405697037("чувак из кафе") используется Ява как магическое число для их pack200 сжатие.[14]
0xCEFAEDFE3472551422("подача лица") используется Мачо для идентификации плоских объектных файлов (с единой архитектурой). В прямой порядок байтов это гласит FEEDFACE, «Кормить грань».
0x0D15EA5E219540062("нулевое заболевание") - это флаг, указывающий на регулярную загрузку на Nintendo GameCube и Wii консоли.[15][16]
0xDABBAD003669732608("dabba doo") - это название блога о компьютерной безопасности.[17]
0xDEAD2BAD3735890861("очень плохо") использовалось для обозначения выделенных областей памяти, которые еще не были инициализированы на Секвент Dynix / PTX системы.
0xDEADBAAD3735927469("dead bad") используется функцией Android libc abort () при обнаружении повреждения собственной кучи.
0xDEADBABE3735927486("мертвый младенец") используется IBM Jikes RVM как проверка работоспособности стека первичного потока.[18]
0xDEADBEAF3735928495("мертвый биф") является частью кода подписи Джазовый зайчик 2 файлы наборов тайлов.[19] В файлах уровней меньше места для подписей и использования 0xBABE ("детка") вместо этого.[20] Это также заголовок сохраненных игр кампании, используемых в серии игр Halo.
deadbeef-dead-beef-dead-beef00000075(«мертвая говядина») - это GUID назначен зависшим / мертвым виртуальные машины в Citrix XenServer.
0xDEADBEEF3735928559(«мертвая говядина») часто используется для обозначения сбоя программного обеспечения или тупика во встроенных системах. 0xDEADBEEF изначально использовался для обозначения вновь выделенных областей памяти, которые еще не были инициализированы - при сканировании дампа памяти легко увидеть 0xDEADBEEF. Используется IBM RS / 6000 системы, Mac OS на 32-битном PowerPC процессоры и Коммодор Amiga как волшебное значение отладки. На Sun Microsystems ' Солярис, он отмечает освобожденную память ядра. На OpenVMS работает на процессорах Alpha, 0xDEADBEEF можно увидеть, нажав CTRL-T. Консоль DEC Alpha SRM имеет фоновый процесс, который перехватывает ошибки памяти, идентифицированные PS как «BeefEater, ожидающий 0xdeadbeef».[21]
0xDEADC0DE3735929054("мертвый код ") используется как маркер в OpenWrt микропрограмма для обозначения начала создаваемой файловой системы jffs2 в конце статической микропрограммы.
0xDEADDEAD3735936685("dead dead") - это код проверки ошибок (STOP), отображаемый при вызове Синий экран смерти либо сообщая ядру через подключенный отладчик, либо используя специальную комбинацию клавиш.[22] Обычно это видят разработчики драйверов, поскольку они используются для получения дампа памяти в системах на базе Windows NT. Альтернатива 0xDEADDEAD это код проверки ошибок 0x000000E2,[23] поскольку они оба называются MANUALLY_INITIATED_CRASH, как показано в сети разработчиков Microsoft.
0xDEADD00D3735932941("мертвый чувак") используется Android в Виртуальная машина Dalvik для обозначения прерывания виртуальной машины.
0xDEADFA113735943697("мертвое падение" или "мертвое падение") используется яблоко в iOS отчеты о сбоях, когда пользователь принудительно закрывает приложение.[3]
0xDEAD10CC3735883980("тупиковый замок") используется яблоко в iOS отчеты о сбоях, когда приложение удерживает системный ресурс во время работы в фоновом режиме.[3]
0xDEADFEED3735944941("мертвый корм") используется яблоко в iOS отчеты о сбоях, когда истекает время ожидания службы
0xDECAFBAD3737844653("decaf bad") часто встречается в кодировании как легко распознаваемое магическое число при шестнадцатеричном дампе памяти.
0xDEFEC8ED3741239533("испражненный") - магическое число для OpenSolaris дампы керна.[24]
0xD0D0CACA3503344330("дуу дуу кака ") - это неинициализированное значение значений GPIO на Nvidia. Тегра X1[нужна цитата ]
0xE011CFD03759263696("docfile0") используется как магическое число для файлов Microsoft Office. В прямой порядок байтов это гласит D0CF11E0, "docfile0".[25]
лицо: b00c4207849484("facebook ") используется в IPv6-адреса из www.facebook.com.[26]
0xFACEFEED4207869677(«Face Feed») используется Alpha-серверами под управлением Windows NT. Альфа Уровень аппаратной абстракции (HAL) генерирует эту ошибку, когда обнаруживает аппаратный сбой.[27]
0xFBADBEEF4222467823("плохая говядина") используется в WebKit и Мигать механизмы компоновки, чтобы указать на известную неисправимую ошибку, например нехватку памяти.[28]
0xFEE1DEAD4276215469(«чувствовать себя мертвым») используется как магическое число в Linux перезагрузить системный вызов.[29]
0xFEEDBABE4276992702(«кормить малышку») - это магическое число, используемое для обозначения начала OpenRG дескриптор раздела флеш-памяти.[30]
0xFEEDC0DE4276994270("код подачи") используется в качестве шаблона заполнения ОС-9 Операционная система при инициализации его баран.[31]
0xFEEDFACECAFEBEEF18369614221190020847(«feed face cafe beef») - это магический номер, используемый для отправки в качестве пароля по последовательному каналу для спасения некоторых контроллеров, созданных NXP, от сбоев загрузки.[32][33][34]
0xFFBADD114290436369("Плохо DLL "): Использован Windows внутренне.[нужна цитата ]

Альтернативные буквы

Многие компьютерные языки требуют, чтобы шестнадцатеричное число было помечено префиксом или суффиксом (или обоими), чтобы идентифицировать его как число. Иногда приставка или суффикс используются как часть слова.

  • В Язык программирования C использует префикс «0x» для обозначения шестнадцатеричного числа, но «0x» обычно игнорируется, когда люди читают такие значения как слова. C также позволяет суффиксу L объявлять целое число как длинный, или LL, чтобы объявить его как долго долго, что позволяет записать "0xDEADCELL" (мертвая ячейка). В любом случае U может также появиться в суффиксе, чтобы объявить целое число как беззнаковый, что позволяет писать "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» и «» (пробел). Используя их, можно было отображать сообщения типа «EГГ0Г» (ошибка).

PlayStation 3 RSX

В аспектах обратной инженерии Sony PlayStation 3, было обнаружено, что ряд кодов hexspeak запускает, влияет или присутствует в аспектах связи с гипервизором PlayStation 3 и через него в связи с его графическим процессором, Синтезатор реальности RSX.[35]

Эти проекты в значительной степени родились из доморощенного PS3, работающего на PS3. Другое что позволило установить Linux, изначально с чрезвычайно ограниченным доступом к графическому процессору.

КодОписание
0x1337BEEF, 0x1337F001, 0x1337BEEFНайдено как часть дескриптора RSX.
0xF00DBEEFЗначение семафора RSX
0x1337C0D3 и 0x1337BABEНачните значение семафора и заполните его из системы.[36]

Смотрите также

Рекомендации

  1. ^ "Архив мультизагрузочной рассылки".
  2. ^ «Характеристики мультизагрузки».
  3. ^ а б c d «Техническое примечание TN2151: Понимание и анализ отчетов о сбоях приложений iPhone OS». Архивировано из оригинал на 2012-07-05.
  4. ^ "Кто такой 0xabadbabe и почему?".
  5. ^ "Staging: hv: vmbus_drv: переместить содержимое hv.h в hyperv_vmbus.h".
  6. ^ "hv: изменить значение идентификатора гостя".
  7. ^ https://github.com/torvalds/linux/commit/83ba0c4f3f317270dae5597d8044b795d119914c
  8. ^ "Staging: hv: добавить виртуальную шину Hyper-V".
  9. ^ "Staging: hv: Удалите устаревший код xen и проверьте наличие Hyper-V".
  10. ^ а б https://developer.apple.com/library/ios/technotes/tn2151/_index.html
  11. ^ "Внутреннее устройство кучи отладки Win32 CRT".
  12. ^ «9фронтальная система».
  13. ^ "Почему Cafebabe". Artima.com. Получено 2009-10-01.
  14. ^ «Pack200: формат развертывания упакованных классов для приложений Java». Получено 2010-11-03.
  15. ^ «Еще одна документация Gamecube: глобалы Dolphin-OS».
  16. ^ "Wiibrew: карта памяти".
  17. ^ "0xdabbad00.com".
  18. ^ "Проверка вменяемости DEADBABE". Получено 2009-10-01.[постоянная мертвая ссылка ]
  19. ^ "Формат файла J2T".
  20. ^ "Формат файла J2L".
  21. ^ "Запись жаргонного файла для DEADBEEF". Catb.org. Получено 2009-10-01.
  22. ^ «Проверка ошибок 0xDEADDEAD: MANUALLY_INITIATED_CRASH, MSDN». msdn.microsoft.com. 2009-10-01. Архивировано из оригинал 2 октября 2009 г.. Получено 2009-10-13.
  23. ^ «Проверка ошибки 0xE2: MANUALLY_INITIATED_CRASH, MSDN». msdn.microsoft.com. 2009-10-01. Архивировано из оригинал 31 июля 2009 г.. Получено 2009-10-13.
  24. ^ "Строка 45 заголовка Opensolaris для 0xDEFEC8ED". src.opensolaris.org. Архивировано из оригинал на 2011-09-29. Получено 2011-07-12.
  25. ^ «Документы, поддерживаемые фильтром Office».
  26. ^ «Facebook бросает вызов самореференциальному IPv6». Получено 2017-10-21.
  27. ^ «Статья Technet для 0xFACEFEED». Support.microsoft.com. 2006-11-01. Получено 2009-10-01.
  28. ^ "Chromium Assertions.h строка 133". Получено 2014-03-27.
  29. ^ "включить / linux / reboot.h".
  30. ^ "OpenWrt-Devel: PATCH - добавить поддержку для Option GlobeSurfer 3". Архивировано из оригинал на 2016-03-29. Получено 2015-12-14.
  31. ^ "OS-9 для процессоров 68K OEM Руководство по установке".
  32. ^ «Примечание по приложению NXP: приложение модуля Qorivva Boot Assist» (PDF).
  33. ^ «Сообщество NXP: устройство с цензурой - пароль известен».
  34. ^ «Сообщество NXP: ошибка загрузчика RAppID».
  35. ^ "RSXFIFOCommands - PS3 Developer Wiki". psdev вики. 2014-05-20. Получено 2017-11-01.
  36. ^ "rpc3 / sys_rsx.cpp". RPCS3 на гитхабе. 2017-10-28. Получено 2017-11-01.

внешняя ссылка