将某个十六进制模式写入bash中的文件

时间:2012-03-22 15:08:36

标签: linux bash shell memory

我正在尝试进行一些内存测试,并尝试将某个十六进制模式写入bash的常规文件中。如果不使用xxd或hexdump工具/命令,我将如何进行此操作?

谢谢, 尼哥

5 个答案:

答案 0 :(得分:6)

最简单的事情可能是:

printf '\xde\xad\xbe\xef' > file

但通常更方便

perl -e 'print pack "H*", "deadbeef"' > file

答案 1 :(得分:3)

如果我正确地得到你的问题,printf应该这样做:

>printf %X 256
100

答案 2 :(得分:1)

您可以使用od -x吗?这是非常普遍可用的,或者自从时间开始以来一直存在[1]

[1]真的不是时间的曙光。

答案 3 :(得分:0)

内存测试很多比在内存中写入/读取模式更复杂。内存测试对测试程序的功能和整个系统的状态提出了相当严格的限制。从技术上讲,当你运行常规操作系统时,不可能测试100%的内存。

另一方面,您可以从shell运行一些真正的测试程序,或者在下次启动时安排测试执行,并进行一些巧妙的黑客攻击。你可能想看看它在Inquisitor中是如何完成的,即running memtester for in-OS testingscheduling memtest86* run on next boot

如果您绝对必须保留在当前启动的操作系统中,那么memtester可能是您的首选工具 - 尽管请注意它不是非常精确的内存测试。

答案 4 :(得分:0)

在bash中有多种方法可以做到这一点 \ X31 ' \'用于从bash解码中跳过下一个字符 ' X'显示十六进制数字

echo -en \\x31\\x32\\x33 > test 

-e以避免尾随行(否则0x0A将在结尾处重叠)
-n解释反斜杠转义