我有一个 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属性,它可以应用于一个变量来表示它属于一个非标准的部分。