当以 LE 格式存储在内存中时,十六进制字符串0068732f6e69622f
表示 ASCII 字符串。/bin/sh
是否有任何 Linux 实用程序可以获取十六进制字符串并将其反转为字节 ( 2f62696e2f736800
),以便xxd -r -ps
显示/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
交换每对字节并丢弃dd
stderr 上的嘈杂输出:f2
->2f
,26
->62
, ...