2009-10-22 4 views
11

J'ai un outil de ligne de commande Mac OS X qui aurait avantage à avoir des données incorporées dans le fichier binaire lui-même.Comment incorporer des données dans la section TEXT d'un fichier binaire de Mac OS X?

Je sais que les fichiers mach-o supportent plusieurs segments, dont certains peuvent être utilisés pour stocker des données arbitraires. Mais je ne peux pas trouver un outil de ligne de commande pour le faire. Bien que je sache qu'il existe d'autres moyens, probablement plus simples (par exemple convertir le fichier de données en code source C et le faire se connecter par gcc) pour obtenir les données dans mon binaire, ce problème a piqué mon intérêt. Quelqu'un connaît la magie?

Répondre

12

L'éditeur de liens, ld, prend un argument -sectcreate.

De la page man,

-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 a également un attribut section qui peut être appliqué à une variable à dire qu'il appartient dans une section non standard.

+0

Doh. Évident rétrospectivement. Merci. – schwa