二进制编辑
Editing in binary
我一直在修改多个十六进制编辑器,但没有任何效果。
我正在寻找的是一种以实际二进制(而非十六进制)更改二进制的方法。这纯粹是出于教育目的,我知道在两者之间进行转换很简单,但我希望能够像十六进制一样更改 1 和 0。
我试过将 vim 与 %!xxd -b 一起使用,但它无法与 %!xxd -r 一起使用。我知道如何将文件转换为二进制文件,但我正在寻找一种以这种格式动态更改它并能够保存它的方法。
如果我能找到一种方法,通过纯粹用实际二进制编码来实际创建二进制文件,那就更好了。
任何帮助将不胜感激:D
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
应该打开一个独立的 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:\>
我一直在修改多个十六进制编辑器,但没有任何效果。
我正在寻找的是一种以实际二进制(而非十六进制)更改二进制的方法。这纯粹是出于教育目的,我知道在两者之间进行转换很简单,但我希望能够像十六进制一样更改 1 和 0。
我试过将 vim 与 %!xxd -b 一起使用,但它无法与 %!xxd -r 一起使用。我知道如何将文件转换为二进制文件,但我正在寻找一种以这种格式动态更改它并能够保存它的方法。
如果我能找到一种方法,通过纯粹用实际二进制编码来实际创建二进制文件,那就更好了。
任何帮助将不胜感激:D
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
应该打开一个独立的 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:\>