【发布时间】:2010-12-08 22:44:00
【问题描述】:
我有一个 Mac OS X 命令行工具,它可以从将一些数据嵌入到二进制文件本身中受益。
我知道 mach-o 文件支持多个段,其中一些可用于存储任意数据。但我找不到执行此操作的命令行工具。
虽然我知道还有其他可能更简单的方法(例如,将数据文件转换为 C 源代码并通过 gcc 将其链接)来将数据放入我的二进制文件中,但这个问题引起了我的兴趣。有人知道魔法吗?
【问题讨论】:
我有一个 Mac OS X 命令行工具,它可以从将一些数据嵌入到二进制文件本身中受益。
我知道 mach-o 文件支持多个段,其中一些可用于存储任意数据。但我找不到执行此操作的命令行工具。
虽然我知道还有其他可能更简单的方法(例如,将数据文件转换为 C 源代码并通过 gcc 将其链接)来将数据放入我的二进制文件中,但这个问题引起了我的兴趣。有人知道魔法吗?
【问题讨论】:
链接器 ld 采用参数 -sectcreate。
从手册页,
-sectcreate segname sectname file The section sectname in the segment segname is created from the contents of file file. The combination of segname and sectname must be unique there cannot already be a section (segname,sectname) from any other input.
GCC 还有一个section 属性,可以将其应用于变量以表明它属于非标准部分。
【讨论】: