首页 > 解决方案 > 二进制编辑

问题描述

我一直在修补多个十六进制编辑器,但没有任何效果。

我正在寻找的是一种在实际二进制文件(不是十六进制)中更改二进制文件的方法。这纯粹是出于教育目的,我知道在两者之间进行转换很简单,但我希望能够像使用十六进制一样更改 1 和 0。

我已经尝试将 vim 与 %!xxd -b 一起使用,但它不适用于 %!xxd -r。我知道如何将文件转换为二进制文件,但我正在寻找一种方法以这种格式动态更改它并能够保存它。

如果我能找到一种方法来通过纯粹用实际二进制编码来实际创建二进制文件,那就更好了。

任何帮助将不胜感激:D

标签: vimbinaryhexreverse-engineeringvi

解决方案


vim或者gvim应该直接为您工作,无需xxd过滤器。

在 (g)vim 中打开文件。将光标放在一个字符上并键入ga以在状态行中查看其字符代码。要插入字符 NNN,请将光标放在您想要的位置,进入插入模式,Ctrl-v然后键入三位十进制代码值。用于Ctrl-v x HH通过十六进制代码输入字符。

确保您的终端未设置为使用 UTF8,因为在 UTF8 中,键入Ctrl-v 128实际上会插入c280字符 128 的 utf-8 编码,而不是80.

LC_ALL=C vim binary-file

是确保您在 vim 中进行基于二进制字符的编辑的最简单方法,但如果您的终端是 utf-8,那可能会做一些奇怪的事情。

LC_ALL=C gvim binary-file

应该打开一个具有正确显示的独立窗口。

仅供参考,如果您确实想在 utf-8 中工作,Ctrl-v u HHHH那么如何使用十六进制代码点 HHHH 输入 Unicode 字符。


推荐阅读