Binary
“7f”幻數的ELF Magic含義?
我正在研究 ELF 二元解剖學/結構,並且有很多資源可以描述 ELF 的魔力是什麼。我理解
45 4c 46 = ELF
簽名的東西,但沒有任何消息來源涉及的是裡面的7f
內容7f 45 4c 46
。我發現一個消息來源說它是“固定字節”,但這是什麼意思?只是一些隨機的固定字節,如果事情有點不同,可能是別的東西嗎?
這是 ELF 文件的第一個字節。
Linux 有一個“幻數”系統,用於辨識特定的文件類型。除了對
file
實用程序有幫助之外,它們還被核心用來辨識執行檔。“魔法”概念由來已久,但在製造商(如 Sun、Dell、HP 等)或封裝製造商之間的具體價值很少或根本沒有相關性。
使用任何初始可列印字元(例如 E)都可以是純文字。使用 0x80(八進制 0200)及以上可以標記 UTF-8 多字節字元。許多 ASCII 控製字元都會有問題(NUL、NL、TAB)。沒有很多選擇。因此,初始 0x7F (DEL) 字節是防止任何此類混淆的合理選擇。
您可以查看本地手冊頁中的
magic
和file
。DEL 為 0x7F 其實絕非偶然。當數據通常保存在紙帶上時,可以通過打掉所有的 chads(加上第 8 位,用於偶數奇偶校驗)來消除打錯的情況。大多數讀者完全跳過了 NUL 和 DEL 字元。