使用sed修改二进制文件
二进制文件实际也是类似于文本文件,可以用bash命令sed直接修改,关键是找到要修改哪里
例如我现在有文件:
先使用工具查看它原始字符:
然后找出你需要修改的位置,或者把转出来的内容发给ai,让他解析一下你需要修改的位置在哪里,
例如此文件,ai指出我需要修改的是版本号,位置在630行左右,

然后自己在文件中看:

其实是620和630两行,
在二进制文件中其实是完整字符:
69 00 67 00 00 00 08 00 31 00 2e 00 32 00 2e 00 30 00 2e 00 31 00 38 00 00 00 02 00 31 00 38 00
对应的是ig 1.2.0.18 18
把这段16进制,直接替换为新值就可以了,保证位数一致:
plaintext
OLD_HEX="69 00 67 00 00 00 08 00 31 00 2e 00 32 00 2e 00 30 00 2e 00 31 00 38 00 00 00 02 00 31 00 38 00"
NEW_HEX="69 00 67 00 00 00 08 00 31 00 2e 00 32 00 2e 00 30 00 2e 00 31 00 38 00 00 00 02 00 31 00 36 00"
sed -i "s/$OLD_HEX/$NEW_HEX/g" hex.txt