1、在Fedora桌面打开“Applications”-“System Tools”-“Terminal”打开命令终端,为vi编辑做准备。
2、在终端切换到要编辑的二进制文件目录,然后输入“vi -b test.bin”,其中“test.bin”是我要编辑的二进制文件。当然也可以直接指定vi要打开编辑的文件路径。“-b”参数,就是告诉vi编辑器,我是在用二进制模式打开文件的。
3、打开文件之后,我们是很难看到文件实际内容的,因为是二进制的,文件不是可读的,因此也不能直接编辑和修改的。这时,我们可以使用命令“:%xxd”强制将其转化为可读的十六进制显示,就可以使用正常的vi命令对文件进行编辑了。
4、转化之后的文件内容以十六进制表示,左侧是文件偏移值。我们计划将文件编译00000010开始的4个十六进制字符“FFFFFFFF”修改一下。
5、使用正常的vi编辑器命令将十六进制字符“FFFFFFFF”修改为“88888888”,修改完成后,使用esc命令返回到vi的命令模式,然后使用命令“:%xxd -r”就可以将其重新转化为二进制模式了。
连续除以2,让余数倒排即可,我写了个输出成int的,只不过这个int是二进制而已,你可以参考
int to2(int n){
int r=0
int shang,yushu
shang=n
while(shang!=0)
{
yushu=shang%2
r=r*10+yushu
shang=shang/2
}
return r
}
用Vim编辑器修改二进制文件需要Vim和xxd命令配合,首先用Vim的-d选项来打开文件,一定要加-d选项:vim-d
test.bin,然后在Vim中执行如下命令::%!xxd,接着就可以任意编辑修改二进制文件了。修改完成后,先在Vim中执行::%!xxd
-r,然后用:wq就可以保存修改了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)