1. 程式人生 > >Linux 16進位制檢視命令、工具

Linux 16進位制檢視命令、工具

2. od - dump files in octal and other formats
  顧名思義是檢視八進位制,可以通過指定引數為檢視十六進位制
  -A 指定左邊側欄顯示的地址基數,預設為八進位制
  -t 指定輸出單元的進位制格式和位元組數
  -x = -t x2 輸出單元為雙位元組(注意:每單元內排列順序從左到右為 [高位元組|低位元組])
  例:
[email protected]:~/test$ od -t x1 asm | more
0000000 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
0000020 02 00 03 00 01 00 00 00 54 80 04 08 34 00 00 00

[email protected]
:~/test$ od -A x -t x1 asm | more
000000 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
000010 02 00 03 00 01 00 00 00 54 80 04 08 34 00 00 00


[email protected]:~/test$ od -A x -x asm | more
000000 457f 464c 0101 0001 0000 0000 0000 0000
000010 0002 0003 0001 0000 8054 0804 0034 0000


2. hexdump - ascii, decimal, hexadecimal, octal dump
  檢視十六機制的首選工具。
  -c 每單元以位元組為單位,顯示出對應的ASCII碼
  -C 每單元以位元組為單位,同時顯示十六機制和ASCII碼
  例:
[email protected]
:~/test$ hexdump -c asm | more
0000000 177   E   L   F 001 001 001  /0  /0  /0  /0  /0  /0  /0  /0  /0
0000010 002  /0 003  /0 001  /0  /0  /0   T 200 004  /b   4  /0  /0  /0

[email protected]:~/test$ hexdump -C asm | more
00000000  7f 45 4c 46 01 01 01 00  00 00 00 00 00 00 00 00  |.ELF............|
00000010  02 00 03 00 01 00 00 00  54 80 04 08 34 00 00 00  |........T...4...|


3. xxd - make a hexdump or do the reverse.
  能夠顯示檔案對應的十六機制格式,同時還能將修還後的十六進位制格式反寫回檔案,一般與vim結合使用。(利用vim的:! 引數執行外部命令)
使用過程如下:
(1)用vim開啟要檢視檔案
    vim txtfile
(2)在vim命令模式下輸入
  :%!xxd
  解釋: %表示檔案的所有行,!xxd表示執行外部命令xxd,結合在一起,就是把當前vim上顯示的所有行傳遞給xxd,xxd把處理後的結果重新顯示在vim上。
(3)這時候可以直接在上面修改十六進位制值。注意:當前修改了十六進位制值,右邊側欄的ASCII碼並不會相應改變。
(4)修改完畢後,反寫回原檔案。在vim命令模式下輸入
 :%!xxd -r
只有十六進位制的修改部分才會被採用,右邊側欄的ASCII碼值忽略不管。
如果你不熟悉vim,可以參考vim自帶的vimtutor,然後再參考
vim cookbook
,主流的技巧就算是掌握了。
帶GUI的十六進位制編輯器,可以參考ghex和bless,有很多。

題外話,在cu上看到一篇抱怨windows下UltraEdit 的帖子。

相關推薦

Linux 16檢視命令工具

2. od - dump files in octal and other formats   顧名思義是檢視八進位制,可以通過指定引數為檢視十六進位制   -A 指定左邊側欄顯示的地址基數,預設為八進位制   -t 指定輸出單元的進位制格式和位元組數   -x = -t x2 輸出單元為雙位元組(注意:每單

C# 16與字串位元組陣列之間的轉換(轉)

1.請問c#中如何將十進位制數的字串轉化成十六進位制數的字串 //十進位制轉二進位制 Console.WriteLine("十進位制166的二進位制表示: "+Convert.ToString(166, 2)); //十進位制轉八進位制 Console.WriteLine("十進位制166的八進位

16轉換位元組陣列工具

public class StringUtil { public static String str = "696d706f7274"; public static void main(String[] args) { System.out.println(new

ubuntu下以16形式檢視class檔案反編譯class檔案

十六進位制檢視class檔案 以HelloWorld為例,建立一個HelloWorld.java檔案,內容如下:public class HelloWorld { public static void main(String[] args) { Str

Linux檢視16檔案

在vim中檢視 :%!xxd -g 1 表示每1個位元組為1組 :%!xxd -g 2 表示每2個位元組為1組(預設) :%!xxd -g 4 表示每4個位元組為1組 :%!xxd -r    將vim恢復成原來的顯示 示例:"vim rtpreciver_

python常用的十進位制16字串位元組串之間的轉換(長期更新帖)

進行協議解析時,總是會遇到各種各樣的資料轉換的問題,從二進位制到十進位制,從位元組串到整數等等 廢話不多上,直接上例子 整數之間的進位制轉換: 10進位制轉16進位制: hex(16)  ==>  0x10 16進位制轉10進位制: int('0

關於QT內部16十進位制QByteArray,QString

QT裡面的資料轉化成十六進位制比較麻煩,其他的int或者byte等型都有專門的函式,而十六進位制沒有特定的函式去轉化,這我在具體的專案中已經解決(參考網上大神)->小專案程式 QT裡面雖然有什麼QString str; str.toInt();等函式,但是用不好的話,會出很大的問題。

python2/3中 將base64資料寫成圖片,並將圖片資料轉為16資料的方法bytes/string的區別

1.python2將base64資料寫成圖片,並將資料轉為16進位制字串的方法 import binascii img = u'R0lGODlhagAeAIcAAAAAAAAARAAAiAAAzABEAABERABEiABEzACIAACIRACIiACIzADMAADMRADMiADMzADd3

Swift String通過下標獲取子串計算字串的寬高16轉10String轉換為AttributedString使用正則驗證合法性

String通過下標獲取子串 extension String { func index(_ offset: Int) -> Index { return self.index(startIndex, offsetBy: offset) }

python--常用的十進位制16字串位元組串之間的轉換

進行協議解析時,總是會遇到各種各樣的資料轉換的問題,從二進位制到十進位制,從位元組串到整數等等 整數之間的進位制轉換: 10進位制轉16進位制: hex(16) ==> 0x10 16進位制轉10進位制: int(‘0x10’, 16) ==> 16 類似的還有oct(),

linux-AT&T彙編,把32暫存器的值以16字串打印出來

將暫存器的值以16進位制顯示,程式如下:.section .bbs .lcomm buf,10 #定義一個10位元組長度的記憶體區,用來儲存計算出來的字元 .section .text .globl _start _start: //初始化暫存器 movl $0x01abc

C# 281016...各種間的輕鬆轉換

在.NET Framework中,System.Convert類中提供了較為全面的各種型別、數值之間的轉換功能。其中的兩個方法可以輕鬆的實現各種進位制的數值間的轉換: Convert.ToInt32(string value, int fromBase): 可以把不同進位制數

python經常使用的十進位制16字串位元組串之間的轉換(長期更新帖)

進行協議解析時。總是會遇到各種各樣的資料轉換的問題,從二進位制到十進位制,從位元組串到整數等等 廢話不多上。直接上樣例   整數之間的進位制轉換: 10進位制轉16進位制: hex(16)  ==>  0x10 16進位制轉10進位制: int('0x10

十進位制轉換為2816

package test; /**  * 進位制轉換  * @author  *  */ public class Test { private static final int NU

python常用的十進位制16字串位元組串之間的轉換

整數之間的進位制轉換: 10進位制轉16進位制: hex(16)  ==>  0x1016進位制轉10進位制: int('0x10', 16)  ==>  16類似的還有oct(), bin()-------------------字串轉整數:10進位制字串:

printfsscanf進行16資料轉換問題

問題1:原程式的目的是將字串形式的mac地址存放在char型陣列當中(如有更好的獲取方法留言說下,謝謝),程式碼如下,在mac執行如下程式碼後,變數int型值發生了變化。 #include <stdio.h> typedef unsigned int ui

C#數字16字串和位元組之間互轉

一個位元組包含8個二進位制位,一個十六進位制可表示4個二進位制位,所以,一個位元組可以由2個十六進位制表示 總結如下: (1)一個byte 對應兩位十六進位制位,而不是八位(32位二進位制位); (2)轉化為十六進位制之後,不足兩位的,高位要補零。

Python內建轉換函式(實現16和ASCII轉換)

在進行wireshark抓包時你會發現底端視窗報文內容左邊是十六進位制數字,右邊是每兩個十六進位制轉換的ASCII字元,這裡使用Python程式碼實現一個十六進位制和ASCII的轉換方法。 hex() 轉換一個整數物件為十六進位制的字串 >>> hex(16) '0x10' >&

原碼,反碼,補碼, 216,byte位元組,雙位元組

計算機都以 補碼形式存在: 1.正數的原碼、反碼、補碼都一樣 負數的補碼==原碼(除符號位) 按位取反再+1;原碼==補碼(除符號位)按位取反再+1; 十進位制 原碼 反碼 補碼

字元陣列16輸出方法

函式實現: static void LOGHEX(const char *pszPrompt, uchar *psParaInfo, int iParaLen) { int i; LOG("%s", pszPrompt); for(i = 0; i < iParaLen;