二进制编辑

Editing in binary

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

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

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

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

任何帮助将不胜感激:D

vimgvim 应该可以直接为您工作,无需 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

应该打开一个独立的 window 并正确显示。

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

windows 打开 cmd.exe 或 notepad++ 或任何编辑器
启用数字锁定键
在笔记本电脑上,您需要使用功能键或字母键上方的蓝色/灰色银色数字(使用顶行的数字将不起作用,因为它们映射到不同的扫描码。

按alt键+255对应0xff
按alt键+254对应0xfe

查看下面的演示

C:\>copy con rawbin.bin
 ■²ⁿ√·∙⌂~}─^Z
^Z
        1 file(s) copied.

C:\>xxd rawbin.bin
0000000: fffe fdfc fbfa f97f 7e7d c41a 0d0a       ........~}....

C:\>