您可以推荐一个可以从Shell运行的十六进制编辑器吗?我不仅需要编辑内容,还需要能够进行编辑。
您可以推荐一个可以从Shell运行的十六进制编辑器吗?我不仅需要编辑内容,还需要能够进行编辑。
Answers:
emacs
具有用于十六进制编辑的十六进制模式。
dd
要将要编辑的区域写入文件,然后在emacs中将dd
其打开,然后将其返回即可。
xxd
这个工具是我找到的最常用于此类任务的工具(默认情况下在最新的Ubuntu和macOS上都可用)。如果需要,可以删除右侧的ascii可读部分,-p
并可以使用-r
函数还原(将ascii输入更改为二进制数据)。以下是一些简单的示例用法:
使用ascii视图转换为十六进制:
echo example | xxd
转换为十六进制转储(右侧无ascii视图):
echo example | xxd -p
从hexdump转换回二进制数据:
echo 746573740a | xxd -p -r
您可以在shell脚本中使用它来变得更加复杂。实际上,我已经使用了这个和“ dd”来扫描特定的序列,并以一种预定义的方式从shell脚本中以预定义的方式对其进行修改,只不过使用bash dd
和xxd
。实际上,您也不需要dd,因为您可以“搜索”到特定位置并将所需的字节序列写入该位置。这种方法的最大优点是易于编写脚本。
也有DHEX
apt-cache show dhex
ncurses基于diff模式的十六进制编辑器
这不仅仅是另一个十六进制编辑器:它包括diff模式,可用于轻松方便地比较两个二进制文件。由于它基于ncurses且具有主题性,因此它可以在任何数量的系统和方案上运行。利用搜索日志,可以轻松跟踪文件不同迭代中的更改。
如果您不熟悉vim或emacs,那么这似乎没有太多的学习曲线。
:%!xxd
在文件中添加了新字符(即新行)。
xxd
谁做的:而是Vim本身。
:set binary
!否则,VIM可能会通过在文件末尾添加行尾(CR / LF / CRLF)来破坏文件(取决于您将格式设置为(set ff=[mac/unix/dos]
))。这很有可能破坏可执行文件和数据二进制文件。确实如此。很多。确保VIM处于二进制模式将防止这种情况发生。
我知道这是一个古老的问题,但是我对这里的所有答案都不满意。我正在寻找一个十六进制编辑器,该编辑器允许我创建自己的二进制文件(也称为插入模式),并且可以处理非常大的文件。
我遇到了tweak,它可以同时满足这两个要求以及OP。
- Tweak支持插入模式(如果您正在编辑可执行文件或文件系统映像,则不是特别有用,但是在其他文件格式(例如PNG)中可能非常方便)。
- 在您正在编辑的文件内剪切,复制和粘贴非常有效。无论您要走动的数据量有多大,即使它是CD映像的200Mb部分,Tweak始终可以立即有效地执行操作。
- Tweak支持延迟加载输入文件:它不会立即将所有内容都吸收到内存中,而只是记住编辑缓冲区的哪些部分是输入文件的哪些部分的副本,并在需要时引用磁盘上的文件。仅当您真正需要它来读取整个文件时,Tweak才需要花费大量时间。使用此属性的唯一两个操作是搜索,并将文件的修改后的版本保存到磁盘。其他一切都是即时的。
tweak
,但对我来说很尴尬。如果我真的需要编辑,可以再试一次。man tweak
从终端运行以获取概述和命令列表。
Bless Hex Editor是一个二进制(十六进制)编辑器,当前提供以下功能:
您可以从此处下载它:http ://packages.debian.org/sid/all/bless/download 。
要安装它,请参阅如何通过命令行安装.deb文件?
需要更多?
bless
安装后,可以使用命令从shell运行它。