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文件在轉化會正常的二進制文件,之後保存退出即可

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章