我一直在修补多个十六进制编辑器,但没有任何效果。
我正在寻找的是一种在实际二进制文件中(而不是十六进制)更改二进制文件的方法。这纯粹是出于教育目的,我知道在两者之间进行转换是微不足道的,但是我希望能够像修改十六进制一样更改1和0。
我已经尝试过将Vim与%!xxd -b一起使用,但随后将无法与%!xxd -r一起使用。我知道如何将文件转换为二进制文件,但我正在寻找一种以这种格式动态更改并保存文件的方法。
更好的是,如果我能找到一种方法来通过纯粹用实际的二进制代码进行编码来实际创建二进制文件。
任何帮助将不胜感激:D
答案 0 :(得分:1)
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字符的方法。
答案 1 :(得分:0)