this thread 中已经有一个漂亮的技巧了。 使用 dd 将字节写入所需地址的二进制文件,有没有办法交换字节(例如交换 0x00 和 0xFF),或替换bytes 使用常用工具(例如dd)?
最佳答案
请您尝试以下操作:
xxd -p input_file | fold -w2 | perl -pe 's/00/ff/ || s/ff/00/' | xxd -r -p > output_file
xxd -p file
以连续十六进制转储方式转储二进制数据file
。fold -w2
每两个字符(= 每个字节)包装输入行。perl -pe 's/00/ff/|| s/ff/00/'
交换输入字符串中的00
和ff
。||
逻辑的工作方式与if .. else ..
条件相同。否则输入00
一旦转换为ff
并立即再次转换回00
。xxd -r -p
是xxd -p
的反向版本,用于转换输入 将十六进制字符串转换为二进制文件。
关于bash - 从命令行交换或替换二进制文件中的字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71182536/