linux下小工具xxd使用

来源:互联网 发布:ro心动网络 编辑:程序博客网 时间:2024/04/28 03:53

xxd的作用就是将一个文件以十六进制的形式显示出来,具体选项如下。


-a : 它的作用是自动跳过空白内容,默认是关闭的

-c : 它的后面加上数字表示每行显示多少字节的十六进制数,默认是16字节。

-g : 设定以几个字节为一块,默认为2字节。

-l : 显示多少字节的内容。

-s : 后面接【+-】和address.加号表示从地址处开始的内容,减号表示距末尾address开始的内容。

具体用法:

xxd -a -c 12 -g 1 -l 512 -s +0x200 [inputfile]

【自动跳过空白】【每行显示12字节】【一个字节一块】【显示512字节内容】【从0x200开始】【输入文件】

lishuo@lishuo-laptop:~$xxd -a -c 12 -g 1 -l 512 -s +0x2600 ~/桌面/i/a.img

0002600: 41 6c 00 6f 00 61 00 64 00 65 00 0f Al.o.a.d.e

000260c: 00 ab 72 00 2e 00 62 00 69 00 6e 00 r…b.i.n.

0002618: 00 00 00 00 ff ff ff ff 4c 4f 41 44 ……LOAD

0002624: 45 52 20 20 42 49 4e 20 00 64 94 8e ER BIN .d

0002630: 78 3a 78 3a 00 00 94 8e 78 3a 03 00 x:x:…x:

000263c: 51 16 00 00 41 6b 00 65 00 72 00 6e Q…Ak.e.r.n



---------------------


转自: http://fancyxinyu.blog.163.com/blog/static/18232136620111183019942/

linux 命令 xxd linux下查看二进制文件

当我们需要把二进制转成c语言中使用的16进制字符数组时,命令xxd是很有用的。

xxd 帮助信息如下:关键选项标黑。

[root@localhost ]# xxd --help
Usage:
xxd [options] [infile [outfile]]
or
xxd -r [-s [-]offset] [-c cols] [-ps] [infile [outfile]]
Options:
-a toggle autoskip: A single '*' replaces nul-lines. Default off.
-b binary digit dump (incompatible with -p,-i,-r). Default hex.
-c cols format <cols> octets per line. Default 16 (-i: 12, -ps: 30).
-E show characters in EBCDIC. Default ASCII.
-g number of octets per group in normal output. Default 2. 每个goup的字节数,默认为2,可设置。
-h print this summary.
-i output in C include file style. :输出为c包含文件的风格,数组方式存在。
-l len stop after <len> octets. :转换到len个字节后停止转换。
-ps output in postscript plain hexdump style.
-r reverse operation: convert (or patch) hexdump into binary.
-r -s off revert with <off> added to file positions found in hexdump.
-s [+][-]seek start at <seek> bytes abs. (or +: rel.) infile offset.
-u use upper case hex letters. : 字节大写方式
-v show version: "xxd V1.10 27oct98 by Juergen Weigert".

比如运行:

> xxd -g 1 -i -u -l 10000000 nm.ts > xxd_test.txt

生成的文本显示:

unsigned char __0513_1634_ch32_666_10_ts[] = {
0X47, 0X02, 0X03, 0X13, 0XF8, 0X5A, 0XC5, 0X40, 0X26, 0XE4, 0XD0, 0XDE,
0XAD, 0XB8, 0X76, 0X89, 0X85, 0X23, 0X06, 0X04, 0X6E, 0X05, 0X8B, 0X09,
0XC0, 0X5C, 0X96, 0X4F, 0X18, 0X51, 0X41, 0XC8, 0X40, 0X9F, 0X06, 0X93,
0X38, 0XC1, 0XBB, 0X1A, 0XBC, 0XAC, 0X47, 0XFF, 0X5E, 0X54, 0XEB, 0XA7,
0X14, 0X36, 0X85, 0X8A, 0X90, 0X14, 0X17, 0XA2, 0X9D, 0XC0, 0X84, 0X56,
0XCB, 0X97, 0X78, 0XC8, 0X57, 0X15, 0X3E, 0X61, 0X6F, 0XFE, 0XC9, 0X39,
0XEF, 0XD3, 0XB6, 0X6A, 0XD2, 0XE4, 0XFB, 0X4C, 0X05, 0XF6, 0X03, 0XED,
0X50, 0XB3, 0XE7, 0X46, 0X57, 0X24, 0X71, 0X16, 0X38, 0X45, 0X53, 0X19,
0X56, 0X25, 0X3C, 0X8D, 0X4C, 0XA9, 0X28, 0X9A, 0XB2, 0X99, 0X76, 0X52,
0X28, 0XE9, 0XD6, 0XD6, 0X11, 0X94, 0X89, 0X19, 0X4D, 0XEA, 0X68, 0X76,
0X53, 0XC6, 0XAA, 0X3A, 0XD4, 0XA1, 0X25, 0XA5, 0X03, 0XB0, 0X73, 0XA0,
0XAE, 0X11, 0XC9, 0XBD, 0X37, 0X17, 0X11, 0X5F, 0X30, 0X34, 0X34, 0X0B

.....

};

unsigned int nm.ts_len = 10000000;

另外,在vim中也可以把文件转换为16进制来显示:

:%!xxd

返回正常显示:

:%!xxd -r

linux下查看二进制文件
以十六进制格式输出:
od [选项] 文件
od -d 文件十进制输出
-o 文件八进制输出
-x 文件十六进制输出
xxd 文件输出十六进制

在vi命令状态下:
:%!xxd :%!od 将当前文本转化为16进制格式
:%!xxd -c 12 每行显示12个字节
:%!xxd -r 将当前文本转化回文本格式


0 0