Bash
在將十六進製字元串傳遞給“xxd -r”以查看其二進制內容之前,如何將其修改為 LE 格式?
十六進製字元串
0068732f6e69622f
表示 ASCII 字元串/bin/sh
,當它以 LE 格式儲存在記憶體中時。是否有任何 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).
$ 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
, …