xxd命令(反编译、二进制文件转十六进制文件)

xxd命令转换二进制文件为十六进制文件

xxd 1.bin > 2.txt

生成二进制文件可以用vi 查看。

如何把16进制文件还原回二进制文件: 

xxd -r 2.txt 1.bin

xxd 命令用于用二进制或十六进制显示文件的内容,如果没有指定outfile参数,则把结果显示在屏幕上,如果指定了outfile则把结果输出到 outfile中;如果infile参数为 – 或则没有指定infile参数,则默认从标准输入读入。

参数介绍

xxd [options] [infile [outfile]]

xxd -r [-s [-]offset] [-c cols] [-ps] [infile [outfile]]
简单地说,xxd就是一个二进制文件查看器

常用选项:
-b
转到 比特(二进制 数字) 模式, 而不是十六进制模式。在这种模式下, 每个字符被表示成八个 0/1 的数字,而不是一般的十六进制形式。每一行都以一个用十六进制形式表示的行号,后面是ascii (或者 ebcdic) 形式开头。命令行选项 -r, -p 在这个模式下不起作用。
-h
显示帮助信息后退出。

-l N
只输出 N 个字符。

-ps
以 postscript的连续十六进制转储输出,这也叫做纯十六进制转储。

-r(十六进制文件转二进制文件)
逆向操作: 把xxd的十六进制输出内容转换回原文件的二进制内容。

-seek offset
用在 -r 之后: 会在当前文档的 偏移量上增加 .

-s [+][-]seek
从infile的绝对或者相对偏移量 开始.
+ 表示相对于标 输入当前的位置 (如果不 标准输入就没有意义了).
– 表示从档桉末尾 (如果和 + 连用: 从标准输入当前位置) 向前数一些字符, 从那个地方开始. 如果没有 -s 选项, xxd 从 当前位置开始.

-u
十六进制输出时使用大写字母,默认是小写字母

示例:

以二进制形式,查看前16个字节,每行显示1个字节:
xxd -b -l 16 -c 1 a.o

从第16个字节开始(注:16是下标,起始为0算),显示40个字节,每行显示8个字节:
xxd -s 16 -l 40 -c 8 a.o

从第16个字节开始,每行8个,显示40个字节的hex dump
xxd -s 16 -l 40 -c 8 -ps a.o

输出最后10个字节内容
xxd -s -10 a.o

查看文件时,自动跳过大块的0区域来显示
xxd -a a.o

把b.txt以十六进制写到c.o
xxd -r -ps b.txt c.o

猜你喜欢

转载自blog.csdn.net/u012206617/article/details/126217922