La commande otool -h permet d'analyser le header d'un fichier au format Mach-O.
Je lis à la page 12 de "Mac OS X ABI Mach-O File Format Reference" que le header du format Mach-O a toujours la structure suivante:
struct mach_header
{
uint32_t magic;
cpu_type_t cputype;
cpu_subtype_t cpusubtype;
uint32_t filetype;
uint32_t ncmds;
uint32_t sizeofcmds;
uint32_t flags;
};
Voyons le résultat de otool -h sur un fichier Mach-O bien connu (/bin/ls), mais sur deux architectures différentes:
Mac OS X Leopard sur Intel (x86):
[pierre@albert] /Users/pierre>otool -h /bin/ls
/bin/ls:
Mach header
magic cputype cpusubtype caps filetype ncmds sizeofcmds flags
0xfeedface 7 3 0x00 2 14 1304 0x00000085
Mac OS X Tiger sur PowerPC (powerpc):
[pierre@blueandwhite] /Users/pierre>otool -h /bin/lsRegardez attentivement cputype: c'est lui qui nous indique sur quelle architecture nous sommes.
/bin/ls:
Mach header
magic cputype cpusubtype filetype ncmds sizeofcmds flags
0xfeedface 18 0 2 11 1608 0x00000085
Voyez aussi la page man de la commande arch
En fait, le format Mach-O est directement hérité de NextStep, qui au long de son existence a été disponible pour plusieurs architectures: PowerPC, x86, PA-RISC et SPARC.
Aucun commentaire:
Enregistrer un commentaire