¿Qué se requiere para que se cargue un ejecutable Mach-O?

Estoy intentando escribir a mano un ejecutable Mach-O. Hay tres comandos de carga:

LC_SEGMENT_64 cargando__PAGEZEROLC_SEGMENT_64 cargando__TEXT, con un solo__text secciónLC_UNIXTHREAD con un conjunto apropiadorip

Cada comando coincide con las estructuras enmach/loader.h y encabezados relacionados.otool -l enumera la información como se esperaba y no informa ningún error. Según todas las cuentas, es un archivo de objeto bien formado, pero OS X 10.10.5 finaliza la tarea (SIGKILL).

¿Qué características de un ejecutable Mach-O se verifican antes de que OS X lo cargue? ¿Dónde se encuentra esta información? ¿Estas características cambian de versión a versión? (Aparentemente falta la "Referencia de OS-X ABI Mach-O" a menudo citada).

Aquí hay unhexdump parcialmente anotado del binario

otool control de cordura (extracto):

$ otool -l machtest
machtest:
Load command 0
      cmd LC_SEGMENT_64
  cmdsize 72
  segname __PAGEZERO
…
Load command 1
      cmd LC_SEGMENT_64
  cmdsize 152
  segname __TEXT
…
Section
  sectname __text
   segname __TEXT
…
Load command 2
        cmd LC_UNIXTHREAD
…

Respuestas a la pregunta(2)

Su respuesta a la pregunta