There already is a beautiful trick in this thread to write bytes to binary file at desired address with dd ,is there any way to swap bytes(e.g swap 0x00 and 0xFF), or replace bytes with common tools (such as dd)?
Would you please try the following:
xxd -p input_file | fold -w2 | perl -pe 's/00/ff/ || s/ff/00/' | xxd -r -p > output_file
xxd -p file
dumps the binary data file
in continuous hexdump style.fold -w2
wraps the input lines by every two characters (= every bytes).perl -pe 's/00/ff/ || s/ff/00/'
swaps 00
and ff
in the input string.
The ||
logic works as if .. else ..
condition. Otherwise the input 00
is once converted to ff
and immediately converted back to 00
again.xxd -r -p
is the reversed version of xxd -p
which converts the input
hexadecimal strings into binaries.