逆转内存转储的字节顺序的影响

逆转内存转储的字节顺序的影响

我有一系列管道命令,可以获取表示为十六进制字符串的内存转储。此内存转储包含一些我想要读取的 ASCII 文本。内存转储的字节序意味着每当我通过管道将其传输到 时xxd -p -r,我都会得到按顺序出现的 4 个字符组,但每个组中的字符以相反的顺序出现。我正在寻找<something>可以撤消该订单的内容。

例如,<something>会这样做:

$ echo "lleHoW o!dlr" | <something>
Hello World!

或者

$ echo "43218765" | <something>
12345678

答案1

这是一个简单的基于正则表达式的重写。

sed 's/\(.\)\(.\)\(.\)\(.\)/\4\3\2\1/g'

(为了更改字节顺序,您可以使用 将十六进制转储转换为二进制数据xxd -r,交换字节顺序,然后进行十六进制转储。但这不会交换一个字节中的两个十六进制数字,我认为 xxd 不支持。)

相关内容