Как вставить данные в раздел TEXT бинарного файла Mac OS X? - PullRequest
12 голосов
/ 22 октября 2009

У меня есть инструмент командной строки Mac OS X, для которого было бы полезно иметь некоторые данные, встроенные в сам двоичный файл.

Я знаю, что файлы mach-o поддерживают несколько сегментов, некоторые из которых можно использовать для хранения произвольных данных. Но я не могу найти инструмент командной строки для этого.

Хотя я знаю, что есть и другие, возможно, более простые способы (например, преобразовать файл данных в исходный код C и связать его с помощью gcc), чтобы передать данные в мой двоичный файл, эта проблема заинтересовала меня. Кто-нибудь знает магию?

1 Ответ

12 голосов
/ 22 октября 2009

Компоновщик, 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 , который можно применить к переменной, чтобы сказать, что он принадлежит нестандартному разделу.

...