ZDX ACADEMY

Understanding Apple Mach-O Binary Internals · Orientation and a byte-level toolchain

Language:EnglishES

Lo que realmente promete un formato binario

Canonical title: What a binary format actually promises

Un archivo Mach-O no es "código máquina con un encabezado". Es un acuerdo estructurado entre productores y consumidores de código ejecutable.

El productor puede ser un compilador, ensamblador, enlazador, empaquetador o herramienta de firma de código. Los consumidores incluyen el kernel, dyld, depuradores, herramientas de simbolización, analizadores estáticos, reporteros de fallos y tu propio analizador.

Esa distinción importa porque el archivo contiene varios tipos diferentes de verdad:

El primer hábito para este curso es simple: no memorices una captura de pantalla del diseño de un archivo. Aprende a preguntar qué consumidor necesita cada campo y qué puede inferir legítimamente ese consumidor.

Los cuatro valores mágicos que deberías reconocer

Mach-O clásico usa valores mágicos distintos para archivos de 32 bits y 64 bits y para representaciones nativas versus con bytes intercambiados. Los contenedores universales ("fat") tienen sus propios valores mágicos.

Cuando inspeccionas los primeros cuatro bytes, no estás simplemente identificando "un binario de Apple". Estás determinando qué ruta de análisis es válida.

Para Mach-O de 64 bits little‑endian en plataformas Apple modernas, los bytes aparecen habitualmente como:

cf fa ed fe

Interpretado como un entero de 32 bits little‑endian, eso es MH_MAGIC_64.

No dejes que el orden visual de los bytes te confunda: los bytes en disco y el valor entero impreso en un archivo de encabezado son dos vistas del mismo valor bajo una convención de endianidad.

Hábito de verificación

Para cada afirmación generada por una herramienta en este curso, practica encontrar los bytes o la estructura que la justifiquen. Las herramientas son útiles; no son oráculos.

Course outline