这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » Linux系统下如何优雅地编辑十六进制文件

共1条 1/1 1 跳转至

Linux系统下如何优雅地编辑十六进制文件

院士
2024-06-27 19:21:04     打赏
Linux系统下如何优雅地编辑十六进制文件

最近在玩固件,也就是要将数据内容直接以binary的方式存入文件。这时,如果我只想修改固件文件中的某一个字节数据内容,则使用十六进制编辑器来修改是最省时,最省力的最优方案了。所以,我就研究了一下!强大的VIM已经为我准备好了!接下来,让我分享一下Vim如何以十六进制方式编辑文件吧!

dian.png

在开始演示之前,我们先准备一个二进制文件,也就是上面这张EEPW的典型头像dian.bmp

 [root@localhost vim_exp]# ll
 total 32
 -rw-r--r--. 1 root root 30054 Jun 28 00:51 dian.bmp

我们使用VIM直接打开,可以看到乱码一批,无从下手,也就无法编辑了。

vim_01.png

别急,我们在Vim的打开方式上面带上-b参数,再来看看。

vim_02.png

看上去比刚刚要强了好多,至少可以看到Hex字符了,但肯定还是无法编辑,满足不了我们的需求。我们继续在命令模式下输入下面的命令

 :%!xxd

再看看显示效果是不是舒服多了!

vim_03.png

左侧是地址偏移量,中间部分是Hex内容,可以使用Vim编辑,右侧是ASCII码显示。

现在我们想修改哪个字节移动光标到那个字节,然后直接编辑修改即可。方便不?编辑完成后,依然使用命令:wq来保存退出vim。

这里要注意一下,必须使用:%!xxd -r来返回普通显示模式,否则,对于此文件的打开将默认为十六进制的Hex显示方式。

最后总结一下:

 vim -b eepw.bmp # 以bin方式打开文件
 :%!xxd      # 转换为Hex方式显示
 edit      # Vim的编辑模式
 :%!xxd -r    # 退出Hex方式显示
 :wq       # 保存退出







关键词: Linux     编辑     十六进制    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]