Hexspeak
起源和寫法
編輯Hexspeak最早是程式設計師用來清晰獨特地標記記憶體和資料的一些魔術數字,使用以0-9與A-F構成的16進制數表示一些簡單的英文單詞。Hexspeak的轉寫規則為:數字「0」表示字母「O」,「1」表示「I」或「L」,「5」表示「S」,「7」表示「T」,「6」、「9」則各自表示「G」與「g」,其它的數字則可利用畫謎和Leet的規則來借代字母,例如「defecate」就可用「DEFECA7E」或「DEFEC8」來表示。
較有名的魔術數
編輯16進制魔術數在許多處理器、作業系統和除錯工具中都得到應用,且尤常作為測試參數使用。
- 0x0000000FF1CE是微軟Office組件產品代碼的最後一部分,可於註冊表的HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall的鍵值中尋得。
- 0x00BAB10C(oo-ba-block)在ZFS的uberblock里使用。
- 0x1BADB002(「I bad boot」)為多重引導(Multiboot Specification)標頭。[1]
- 0xD15EA5E(「disease」)是任天堂GameCube與Wii控制台正常啟動的標識符。[6][7]
- 0xDEADBABE(「Dead Babe」)在IBM的Jikes研究虛擬機上使用,用於確認主線程的棧是否正常。[8]
- 0xDEADBEEF(「dead beef」)在嵌入式系統中常用於標示軟體崩潰或是死結,在IBM RS/6000系統、32位PowerPC處理器上的Mac OS系統以及Commodore International的Amiga電腦上都有使用;而在Sun的Solaris作業系統中,這一魔術數則用於標記已釋放的記憶體儲存空間。另外,在Alpha處理器上的OpenVMS作業系統中,按下CTRL+T就可以看到DEAD_BEEF。DEC Alpha的存儲資源管理控制台亦有一個用於檢測記憶體錯誤的後台進程,PS識別為「BeefEater waiting on 0xdeadbeef」[9]。
- 0xDEADDEAD(「dead dead」)是藍白當機畫面時顯示的錯誤代碼[10] 。由於此代碼在基於Windows NT的系統上用於進行核心文件,因而常為驅動開發者所見。0xDEADDEAD還有一個變種──0x000000E2[11],這兩者在微軟開發者網絡中都被稱為MANUALLY_INITIATED_CRASH。
- 0xDEFEC8ED(「defecated」)在OpenSolaris的核心文件中使用。[12]
- C15C:0D06:F00D(cisco dog food)於世界IPv6日在www.cisco.com的IPv6地址中使用。「Dog food」指的就是就是Cisco在IPv6上「eating its own dog food」(也即用自家的設備)的做法。
不同情況下的區別
編輯- 在C語言中,16進制數用「0x」前綴標識。
- 在Elektronika B3-34型可程式計算器上16進制數是用俄語字母而非拉丁字母表示的,也即「−」、「L」、「C」、「Г」、「E」與空格,以此便可表示如「EГГ0Г」(即ERROR)這樣的信息。
參見
編輯註釋
編輯- ^ Multiboot specifications. [2011-09-04]. (原始內容存檔於2012-07-02).
- ^ 2.0 2.1 Technical Note TN2151: Understanding and Analyzing iPhone OS Application Crash Reports. [2011-09-04]. (原始內容存檔於2012-07-02).
- ^ Win32 Debug CRT Heap Internals. [2011-09-04]. (原始內容存檔於2012-07-02).
- ^ Why Cafebabe. Artima.com. [2009-10-01]. (原始內容存檔於2012-07-02).
- ^ Pack200: A Packed Class Deployment Format For Java Applications. [2010-11-03].
- ^ Yet Another Gamecube Documentation: Dolphin-OS Globals. [2011-09-05]. (原始內容存檔於2012-07-02).
- ^ Wiibrew: Memory Map. [2011-09-05]. (原始內容存檔於2012-07-02).
- ^ DEADBABE sanity check. [2009-10-01]. (原始內容存檔於2012-07-02).
- ^ Jargon File entry for DEADBEEF. Catb.org. [2009-10-01]. (原始內容存檔於2012-07-02).
- ^ Bug Check 0xDEADDEAD: MANUALLY_INITIATED_CRASH, MSDN. msdn.microsoft.com. 2009-10-01 [2009-10-13]. (原始內容存檔於2009-10-02).
- ^ Bug Check 0xE2: MANUALLY_INITIATED_CRASH, MSDN. msdn.microsoft.com. 2009-10-01 [2009-10-13]. (原始內容存檔於2009-07-31).
- ^ Opensolaris header line 45 for 0xDEFEC8ED. src.opensolaris.org. [2011-07-12]. (原始內容存檔於2011-09-29).
- ^ Documents That Are Supported by the Office Filter. [2011-09-04]. (原始內容存檔於2012-07-02).
- ^ Technet article for 0xFACEFEED. Support.microsoft.com. 2006-11-01 [2009-10-01]. (原始內容存檔於2012-07-02).
- ^ include/linux/reboot.h. (原始內容存檔於2012-07-02).