vim 修改2进制文件

最近在给java添加一个新的bytecode,而修改javac又不顺利,于是决定先手动修改class文件测试一下,记录使用vim的修改过程

修改的时候只需要原生的vim和xxd(一个linux自带查看修改转化十六进制的小程序),之后很简单,首先,使用

vim -b Test.class

以二进制的方式打开class文件(否则万恶的vim会自动在文件末尾添加一个\n,影响转化结果)

之后,使用vim调用内置命令行程序的方法,在normal模式下使用

:%!xxd

将二进制的class文件转化为可读的ascii文件,每一行的前面是正常的十六进制,后面的…a..b..之类的字符是尝试将前面的十六进制行强行转化成ascii字符的结果,’.’代表并转化不了

之后就可以在vim中直接对每一行前面的十六进制数字像正常的文件一样进行修改即可(每一行最后部分的注释们不用修改即可),修改完成后,在normal模式使用

%!xxd -r

即可将ascii文件在转化会正常的二进制文件,之后保存退出即可

你可能感兴趣的:(linux)