Linux 将hextump转换为字节序列
我试图在Linux上使用binfmt_misc注册一个特定的程序来运行包含幻数的二进制文件 这是通过以以下格式回显字符串来实现的:Linux 将hextump转换为字节序列,linux,hex,hexdump,Linux,Hex,Hexdump,我试图在Linux上使用binfmt_misc注册一个特定的程序来运行包含幻数的二进制文件 这是通过以以下格式回显字符串来实现的: :name:type:offset:magic:mask:interpreter:flags Linux内核文档在documentation/binfmt_misc中提供了该字符串的几个示例: :i386:M::\x7fELF\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x03:\xff\xff\
:name:type:offset:magic:mask:interpreter:flags
Linux内核文档在documentation/binfmt_misc中提供了该字符串的几个示例:
:i386:M::\x7fELF\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x03:\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfb\xff\xff:/bin/em86:
:i486:M::\x7fELF\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x06:\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfb\xff\xff:/bin/em86:
:DEXE:M::\x0eDEX::/usr/bin/dosexec:
:DOSWin:M::MZ::/usr/local/bin/wine:
我感兴趣的幻数在emacs的hexl模式下显示为01eb
:
00000000: 0000 01eb 0000 4d8f 0000 09a0 0000 0314 ......M.........
到目前为止,我已经:
:nine:M:$OFFSET:$MAGIC::/home/robb/nine/nine:
但我不确定需要用什么值替换
$OFFSET
和$MMAGIC
。它从文件中的第3个字节开始。字节偏移量从零开始,因此$OFFSET
应为2
您的
01eb
需要用十六进制编码,因此$MAGIC
是\x01\xeb
。您的shell可能需要在每个\x
之前加一个反斜杠才能转义。它从文件中的第3个字节开始。字节偏移量从零开始,因此$OFFSET
应为2
您的
01eb
需要用十六进制编码,因此$MAGIC
是\x01\xeb
。您的shell可能需要在每个\x
之前加一个反斜杠才能将其转义。1表示偏移量,因为您希望指向第二个数字和01eb,这是您的幻数。否?1表示偏移量,因为您希望指向第二个数字和01eb,这是您的幻数。不