バイナリの内容を表示するために「xxd -r」に渡す前に、16進文字列をLE形式に変更するにはどうすればよいですか?

バイナリの内容を表示するために「xxd -r」に渡す前に、16進文字列をLE形式に変更するにはどうすればよいですか?

LE形式でメモリに保存されている場合、16進文字列は0068732f6e69622fASCII文字列を表します。/bin/sh

2f62696e2f73680016進文字列をバイト()に変換してxxd -r -ps表示できるLinuxユーティリティはありますか/bin/sh

$ echo -n 0068732f6e69622f | xxd -r -ps
hs/nib/

調べてみましたが、xxd -e以下と併用できません-r

-e little-endian dump (incompatible with -ps,-i,-r).

答え1

$ echo 0068732f6e69622f | rev | dd conv=swab 2>/dev/null | xxd -r -p
/bin/sh
  • rev逆方向入力文字列: 0068732f6e69622f->f22696e6f2378600
  • dd conv=swab 2>/dev/null各バイトペアを交換し、ddstderrからノイズのある出力を削除します。f2-> 2f26-> 62、...

関連情報