Binary

如何查看二進製文件?

  • June 29, 2020

據我了解,編譯器會生成一個由 CPU 可以讀取的 1 和 0 組成的二進製文件。我有一個二進製文件,但如何打開它以查看其中的 1 和 0?文本編輯器說它無法打開它…

PS 我有一個彙編編譯的二進製文件,它應該是 1 和 0 的純二進制程式碼?

根據tyranid回答

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 條目更詳細地介紹了這一點。

引用自:https://unix.stackexchange.com/questions/282215