如何从 bash 查看二进制文件?

问题描述 投票:0回答:13

我想从命令行查看当前目录中文件的内容,但以二进制形式。我怎样才能实现这个目标?

bash shell binary
13个回答
684
投票

xxd
同时支持二进制和十六进制。

bin:

xxd -b file

十六进制:

xxd file

203
投票
hexdump -C yourfile.bin

当然除非你想编辑它。大多数 Linux 发行版默认都有

hexdump
(但显然不是全部)。


80
投票
vi your_filename

点击esc

输入

:%!xxd
查看十六进制字符串,输入 n
:%!xxd -r
返回正常编辑。


42
投票

作为后备总是有

od -xc filename


13
投票

sudo apt-get install bless

Bless 是 GUI 工具,可以查看、编辑、搜索等。 它的重量非常轻。


13
投票

如果您想打开二进制文件(在 CentOS 7 中):

strings <binary_filename>

12
投票

己基格式很好:

sudo apt install hexyl

enter image description here


7
投票
$ echo -n 'Hello world!' | hd
00000000  48 65 6c 6c 6f 20 77 6f  72 6c 64 21              |Hello world!|
0000000c

4
投票

要以十六进制形式在一行中获取全部输出:

xxd -p yourfile.bin | tr -d '\n'

3
投票

请参阅 Vim Tips Wiki 中的改进的十六进制编辑


2
投票

您可以打开emacs(在终端模式下,例如使用

emacs -nw
),然后使用Hexl模式:
M-x hexl-mode

https://www.gnu.org/software/emacs/manual/html_node/emacs/Editing-Binary-Files.html


1
投票

要将文件转换为其二进制代码(十六进制表示),我们说:

xxd filename                                         #

例如:

xxd hello.c                                          #

要查看二进制文件中的所有内容和代码,我们可以使用诸如

readelf
objdump
,
hexdump
,... 之类的命令。

例如,如果我们想查看所有转换的二进制文件(可执行文件、共享库、目标文件)的所有内容,我们说:

hexdump binaryfilename

例如

hexdump /bin/bash

但 readelf 是分析 elf(可执行和链接格式)文件的最佳实用程序。所以如果我们说:

readelf -a /bin/bash

二进制文件 bash 中的所有内容都会显示给我们,我们也可以为 readelf 提供不同的标志来分别查看 elf 文件的所有部分和标头,例如,如果我们只想查看 elf 标头,我们说:

readelf -h /bin/bash

用于读取文件的所有段:

readelf -l /bin/bash

用于读取文件的所有部分:

readelf -S /bin/sh

但再次作为总结,为了读取 Linux 中路径 /bin/bash 中的普通文件(如“hello.c”)和二进制文件(如 bash),我们说:

xxd hello.c

readelf -a /bin/bash

-1
投票

您可以使用hexdump二进制文件

sudo apt-get install hexdump

hexdump -C yourfile.bin
© www.soinside.com 2019 - 2024. All rights reserved.