2009-10-22 19 views
11

Tengo una herramienta de línea de comandos de Mac OS X que se beneficiaría de tener algunos datos incrustados en el archivo binario.¿Cómo incrusto datos en una sección TEXT del archivo binario mac-o de Mac OS X?

Sé que los archivos mach-o admiten múltiples segmentos, algunos de los cuales se pueden usar para almacenar datos arbitrarios. Pero no puedo encontrar una herramienta de línea de comandos para hacer eso.

Si bien sé que hay otras formas, probablemente más simples (por ejemplo, convertir el archivo de datos en código fuente C y hacer que gcc lo vincule) para obtener los datos en mi binario, este problema ha despertado mi interés. Alguien sabe la magia?

Respuesta

12

El enlazador, ld, toma un argumento -sectcreate.

Desde la página del manual,

-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 también tiene un atributo section que se puede aplicar a una variable que decir que pertenece en una sección no estándar.

+0

Doh. Obvio en retrospectiva. Gracias. – schwa