Comparación Mach-O
ABDiff puede comparar binarios Mach-O en un árbol estructurado de solo lectura. Esta vista es útil para revisar plataforma, dependencias, framework paths y cambios en el API.
Iniciar una comparación Mach-O
- Coloca dos archivos binarios de Mach-O en la ventana para abrir la vista de comparación de Mach-O.
- Suelta un archivo Mach-O en un panel para reemplazar solo ese lado.
Lo que muestra la vista
- Un árbol de dos columnas con controles de sangría y divulgación.
- Las diffs se resaltan usando los mismos colores agregados/eliminados/modificados que otras comparaciones.
- Un botón de resumen compara metadatos clave (tamaño, segmentos de CPU, versión de plataforma, recuento de segmentos, rutas de ejecución y exportaciones).
Estructura de árbol
Cada archivo Mach-O se agrupa por segmento de arquitectura (por
ejemplo, Slice arm64) y luego por categoría:
- Encabezado: CPU, tipo de archivo, indicadores de encabezado.
- Cargar comandos: plataforma + versiones mínimas de SO + SDK, dependencias de dylib y rpaths.
- Candidatos de API privada: señales heurísticas de frameworks privados, símbolos importados, APIs de búsqueda en tiempo de ejecución y cadenas sospechosas.
- Segmentos: segmentos de diseño de memoria con descripciones opcionales.
- Exportaciones: símbolos públicos agrupados en Objective-C, C/C++, símbolos Swift demandados y generados por el compilador.
Ver opciones
Usa el menú de opciones de la barra inferior para personalizar el árbol:
- Mostrar solo diffs oculta entradas iguales y mantiene los grupos de ancestros con cambios.
- Mostrar solo APIs privadas reduce el árbol a candidatos heurísticos de API privada y mantiene sus grupos ancestros.
- Mostrar descripciones alterna los sufijos descriptivos para la mayoría de los elementos.
Los candidatos de API privada son heurísticos. Pueden mostrar evidencia fuerte, como un framework privado enlazado, o señales más débiles, como helpers de búsqueda en tiempo de ejecución y literales de cadena sospechosos.
Navegación clave
| Acción | Atajo |
|---|---|
| Fila anterior/siguiente | ↑ / ↓ |
| Cambio anterior/siguiente | ⌥ ↑ / ⌥↓ |
| Saltar a la primera/última fila | ⌘ ↑ / ⌘↓ |
| Cambiar panel activo | ⇥ |
| Expandir/contraer grupo | → / ← |
- Los objetivos
⌥↑/⌥↓cambiaron las filas de hojas y omiten las filas del grupo. - Si una fila de destino modificada está dentro de grupos contraídos, los antepasados se expanden automáticamente.
- En las filas de hojas,
←/→cambia de panel solo cuando el panel de destino tiene contenido.
Comportamiento de solo lectura
La comparación Mach-O es sólo informativa. La edición está deshabilitada.