hexdump
hexdump命令一般用來查看”二進制“文件的十六進制編碼,但實際上它的用途不止如此,手冊頁上的說法是“ascii, decimal, hexadecimal, octal dump“,而且它能查看任何文件,而不只限於二進制文件了。
規范的十六進制和ASCII碼顯示(Canonical hex+ASCII display)
root@new55 ~]# echo /etc/passwd | hexdump -C 00000000 2f 65 74 63 2f 70 61 73 73 77 64 0a |/etc/passwd.| 0000000c
單字節八進制顯示(One-byte octal display)
[root@new55 ~]# echo /etc/passwd | hexdump -b 0000000 057 145 164 143 057 160 141 163 163 167 144 012 000000c
單字節字符顯示(One-byte character display)
0000000 / e t c / p a s s w d \n 000000c
雙字節十進制顯示(Two-byte decimal display)
[root@new55 ~]# echo /etc/passwd | hexdump -d 0000000 25903 25460 28719 29537 30579 02660 000000c
雙字節八進制顯示(Two-byte octal display)
[root@new55 ~]# echo /etc/passwd | hexdump -o 0000000 062457 061564 070057 071541 073563 005144 000000c
雙字節十六進制顯示(Two-byte hexadecimal display)
[root@new55 ~]# echo /etc/passwd | hexdump -x 0000000 652f 6374 702f 7361 7773 0a64 000000c
[root@new55 ~]# echo /etc/passwd | hexdump -v 0000000 652f 6374 702f 7361 7773 0a64 000000c
od
[root@www ~]# od [-t TYPE] 文件 選項或參數: -t :后面可以接各種『類型 (TYPE)』的輸出,例如: a :利用默認的字節來輸出; c :使用 ASCII 字節來輸出 d[size] :利用十進位(decimal)來輸出數據,每個整數占用 size bytes ; f[size] :利用浮點數值(floating)來輸出數據,每個數占用 size bytes ; o[size] :利用八進位(octal)來輸出數據,每個整數占用 size bytes ; x[size] :利用十六進位(hexadecimal)來輸出數據,每個整數占用 size bytes ;
請將/usr/bin/passwd的內容使用ASCII方式來展現
[root@www ~]# od -t c /usr/bin/passwd 0000000 177 E L F 001 001 001 \0 \0 \0 \0 \0 \0 \0 \0 \0 0000020 002 \0 003 \0 001 \0 \0 \0 260 225 004 \b 4 \0 \0 \0 0000040 020 E \0 \0 \0 \0 \0 \0 4 \0 \0 \a \0 ( \0 0000060 035 \0 034 \0 006 \0 \0 \0 4 \0 \0 \0 4 200 004 \b 0000100 4 200 004 \b 340 \0 \0 \0 340 \0 \0 \0 005 \0 \0 \0 .....(后面省略).... # 最左邊第一欄是以 8 進位來表示bytes數。以上面范例來說,第二欄0000020代表開頭是 # 第 16 個 byes (2x8) 的內容之意。
請將/etc/issue這個文件的內容以8進位列出儲存值與ASCII的對照表
[root@www ~]# od -t oCc /etc/issue 0000000 103 145 156 164 117 123 040 162 145 154 145 141 163 145 040 065 C e n t O S r e l e a s e 5 0000020 056 062 040 050 106 151 156 141 154 051 012 113 145 162 156 145 . 2 ( F i n a l ) \n K e r n e 0000040 154 040 134 162 040 157 156 040 141 156 040 134 155 012 012 l \ r o n a n \ m \n \n 0000057 # 如上所示,可以發現每個字節可以對應到的數值為何! # 例如e對應的記錄數值為145,轉成十進位:1x8^2+4x8+5=101。
利用這個命令,可以將 data file 或者是 binary file 的內容數據給他讀出來喔! 雖然讀出的來數值默認是使用非文字檔,亦即是 16 進位的數值來顯示的, 不過,我們還是可以透過 -t c 的選項與參數來將數據內的字節以 ASCII 類型的字節來顯示, 雖然對於一般使用者來說,這個命令的用處可能不大,但是對於工程師來說, 這個命令可以將 binary file 的內容作一個大致的輸出,他們可以看得出東西的啦~ ^_^
如果對純文字檔使用這個命令,你甚至可以發現到 ASCII 與字節的對照表!
備注:
利用這個命令,可以將 data file 或者是 binary file 的內容數據給他讀出來喔! 雖然讀出的來數值默認是使用非文字檔,亦即是 16 進位的數值來顯示的, 不過,我們還是可以透過 -t c 的選項與參數來將數據內的字節以 ASCII 類型的字節來顯示, 雖然對於一般使用者來說,這個命令的用處可能不大,但是對於工程師來說, 這個命令可以將 binary file 的內容作一個大致的輸出,他們可以看得出東西的啦~ ^_^
如果對純文字檔使用這個命令,你甚至可以發現到 ASCII 與字節的對照表!
參考 http://vbird.dic.ksu.edu.tw/linux_basic/0220filemanager_3.php#od