从命令行交换或替换二进制文件中的字节
Swap or replace bytes in a binary file from command line
this thread已经有绝招了
使用 dd 将字节写入所需地址的二进制文件,有没有办法交换字节(例如交换 0x00 和 0xFF ), 或者用常用工具替换字节(如dd)?
请您尝试以下操作:
xxd -p input_file | fold -w2 | perl -pe 's/00/ff/ || s/ff/00/' | xxd -r -p > output_file
xxd -p file
以连续 hexdump 方式转储二进制数据 file
。
fold -w2
每两个字符(=每个字节)换行输入行。
perl -pe 's/00/ff/ || s/ff/00/'
交换输入字符串中的 00
和 ff
。
||
逻辑作为 if .. else ..
条件。否则输入 00
一旦转换为 ff
并立即再次转换回 00
。
xxd -r -p
是 xxd -p
的反转版本,它转换输入
十六进制字符串转换为二进制文件。
this thread已经有绝招了 使用 dd 将字节写入所需地址的二进制文件,有没有办法交换字节(例如交换 0x00 和 0xFF ), 或者用常用工具替换字节(如dd)?
请您尝试以下操作:
xxd -p input_file | fold -w2 | perl -pe 's/00/ff/ || s/ff/00/' | xxd -r -p > output_file
xxd -p file
以连续 hexdump 方式转储二进制数据file
。fold -w2
每两个字符(=每个字节)换行输入行。perl -pe 's/00/ff/ || s/ff/00/'
交换输入字符串中的00
和ff
。||
逻辑作为if .. else ..
条件。否则输入00
一旦转换为ff
并立即再次转换回00
。xxd -r -p
是xxd -p
的反转版本,它转换输入 十六进制字符串转换为二进制文件。