在VI和XXD中打开二进制文件

问题描述 投票:-1回答:1

我试图使用Ubuntu修改Linux中可执行程序的二进制数据。

我有一个名为a.out的文件。我可以使用xxd a.out | less将其转储为十六进制。然后在另一个终端窗口,我运行vi a.out

Vi的数据在许多地方与xxd输出略有不同。两者都显示文件中的地址,但数据不同。例如,在可执行文件的最开头,在xxd中有两个字节C006,在VI中显示为c380

有谁知道他们为什么不同?由于某种原因,似乎VI正在修改某些数据。

linux vi hexdump xxd
1个回答
0
投票

我认为你误解了管道(|)与less的关系。

xxd a.out将在终端上显示a.out的十六进制输出。

xxd a.out | less,只是将xxd的输出发送到less,这样你就可以在命令行上滚动它

我认为你的意思是xxd a.out > file_to_open_in_vi.txt。这实际上会将您的xxd输出转储到一个文本文件中,然后您可以使用vi打开该文件。

© www.soinside.com 2019 - 2024. All rights reserved.