【问题标题】:Convert hexdump to byte sequence将 hexdump 转换为字节序列
【发布时间】:2011-08-01 17:48:31
【问题描述】:

我正在尝试通过在 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\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-mode中显示为01eb

00000000: 0000 01eb 0000 4d8f 0000 09a0 0000 0314  ......M.........

到目前为止,我有:

:nine:M:$OFFSET:$MAGIC::/home/robb/nine/nine:    

但我不确定我需要用什么值替换 $OFFSET$MMAGIC

【问题讨论】:

  • 1 表示偏移量,因为您想指向第二个数字和 01eb,这是您的幻数。没有?

标签: linux hex hexdump


【解决方案1】:

它从文件中的第 3 个字节开始。字节偏移量从零开始,所以$OFFSET 应该是 2。

您的01eb 需要以十六进制编码,因此$MAGIC\x01\xeb。您的 shell 可能需要在每个 \x 之前添加一个额外的反斜杠才能转义它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-09
    • 2021-05-23
    • 2013-02-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多