如何查看二進製文件?
據我了解,編譯器會生成一個由 CPU 可以讀取的 1 和 0 組成的二進製文件。我有一個二進製文件,但如何打開它以查看其中的 1 和 0?文本編輯器說它無法打開它…
PS 我有一個彙編編譯的二進製文件,它應該是 1 和 0 的純二進制程式碼?
hexdump -C yourfile.bin
除非你當然想編輯它。大多數 Linux 發行版
hexdump
預設都有(但顯然不是全部)。更新
根據Emilio Bool的回答:
xxd
二進制和十六進制對於 bin :
xxd -b file
對於十六進制:
xxd file
不同的人已經回答了查詢的某些方面,但不是全部。
電腦上的所有文件都儲存為 1 和 0。圖像、文本文件、音樂、可執行應用程序、目標文件等。
它們都是 0 和 1。唯一的區別是它們的解釋不同,具體取決於打開它們的方式。
當您使用 查看文本文件
cat
時,執行檔(cat
在本例中)會讀取所有 1 和 0,並通過將它們轉換為相關字母表或語言中的字元來呈現給您。當您使用圖像查看器查看文件時,它會將所有的 1 和 0 轉換為圖像,具體取決於文件的格式和一些邏輯來解決所有問題。
編譯後的二進製文件也不例外,它們儲存為 1 和 0。
arzyfex 的答案為您提供了以不同方式查看這些文件的工具,但是將文件作為二進製文件讀取適用於電腦上的任何文件,就像將其查看為八進制、十六進製或實際上是 ASCII 一樣,它可能在每個文件中都沒有意義這些格式。
如果您想了解可執行二進製文件的作用,您需要以一種向您展示彙編語言(作為開始)的方式查看它,您可以使用它,
objdump -d /path/to/binary
這是一個反彙程式序,它獲取二進制內容並將其轉換回彙程式序(這是一種非常低級的程式語言)。
objdump
預設情況下並不總是安裝,因此可能需要根據您的 Linux 環境進行安裝。一些外部閱讀。
注意:正如@Wildcard 指出的那樣,重要的是要注意文件不包含字元1 和 0(正如您在螢幕上看到的那樣),它們包含實際的數字數據,單個資訊位(位於 (1)或關閉 (0)。即使這樣的描述也只是對事實的近似。他們的關鍵點是,如果您確實找到了顯示 1 和 0 的查看器,即使它仍在解釋文件中的數據,然後向您顯示 0 和 1 的 ASCII 字元。數據以二進制格式儲存(請參閱上面的二進制數連結)。 Pierre-Olivier 的社區 wiki 條目更詳細地介紹了這一點。