您能推荐一款可以从 shell 运行的十六进制编辑器吗?我需要能够编辑而不仅仅是查看内容。
答案1
xxd
我发现,对于此类任务,此工具是最常用的工具(在最新的 Ubuntu 和 macOS 上均默认可用)。如果需要,您可以使用 删除右侧的 ascii 可读部分,-p
然后可以使用 函数还原(将 ascii 输入更改为二进制数据)-r
。以下是一些简单的示例用法:
使用 ascii 视图转换为十六进制:
echo example | xxd
转换为十六进制转储(右侧没有 ascii 视图):
echo example | xxd -p
从十六进制转储转换回二进制数据:
echo 746573740a | xxd -p -r
在 shell 脚本中,您可以用它实现更复杂的效果。我实际上已经使用它和“dd”来扫描特定序列并以预定义的方式修改它们,所有这些都是在 shell 脚本中使用 bash、dd
和xxd
完成的。实际上,您也不需要 dd,因为您可以“搜索”到特定位置并将所需的字节序列写入该位置。这种方法的最大优点是易于编写脚本。
答案2
apt-cache show dhex
基于 ncurses 的十六进制编辑器,具有 diff 模式
这不仅仅是另一个十六进制编辑器:它包含一个 diff 模式,可用于轻松方便地比较两个二进制文件。由于它基于 ncurses 且可主题化,因此可以在任意数量的系统和场景上运行。通过利用搜索日志,可以轻松跟踪文件不同迭代中的更改。
如果您不熟悉 vim 或 emacs,这个似乎没有太多的学习曲线。
答案3
答案4
这个使用起来非常简单:
sudo apt-get install hexcurse