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

389

我想从命令行以二进制形式查看当前目录中文件的内容。如何实现?

13个回答

2

1

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

xxd filename                                         #

e.g:

xxd hello.c                                          #

要查看二进制文件中的所有内容和代码,我们可以使用像readelfobjdumphexdump等命令。
例如,如果我们想要查看二进制文件(可执行文件、共享库、目标文件)的所有内容,我们可以执行以下命令:
hexdump binaryfilename

e.g.

hexdump /bin/bash

但是readelf是分析ELF(可执行和链接格式)文件的最佳工具。因此,如果我们说:

readelf -a /bin/bash

我们可以使用readelf命令来查看二进制文件bash的所有内容,同时我们还可以提供不同的标志来分别查看elf文件的所有节和头部,例如,如果我们只想查看elf头部,我们可以这样说:

readelf -h /bin/bash

读取文件的所有段落:

readelf -l /bin/bash

读取文件的所有部分:

readelf -S /bin/sh

再次总结一下,对于在Linux中读取普通文件(如“hello.c”)和二进制文件(如路径为/bin/bash的bash)我们可以这样说:

xxd hello.c

readelf -a /bin/bash

-1

您可以使用hexdump二进制文件

sudo apt-get install hexdump

hexdump -C yourfile.bin

1
这只是 https://dev59.com/2XI-5IYBdhLWcg3wm5vN#1765339 的副本。 - sportzpikachu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接