Ingeniería Inversa de macOS / Mach-O
ACCIÓN REQUERIDA (leer y ejecutar inmediatamente)
AHORA: Leer../field-journal/precedent-reverse.mdAHORA: Confirmar el objetivo como macOS/Mach-O/App bundle (iOS IPA →mobile-reverse/)SIGUIENTE: tool-index; jtool2/lldb etc.ACTUAR: Información de firma y carga → Estático → Dinámico (lldb/Frida)
Escenarios de aplicación
- Archivo ejecutable Mach-O / dylib / framework
- .app bundle, LaunchAgent/Daemon
- Símbolos y runtime de Objective-C / Swift
- Notarización/firma, Hardened Runtime, análisis de comportamiento relacionado con TCC
- Análisis estático/dinámico de malware en macOS (en conjunto con malware-analysis)
Flujo de trabajo
1. Paquete y firma
file target
codesign -dv --verbose=4 target
spctl -a -vv target 2>&1
otool -L target
2. Estático
□ class-dump / swift-demangle / Hopper / Ghidra / IDA
□ Cadenas y nombres de servicio XPC, API sensible a TCC
□ Dependencias LC_LOAD_dylib y rpath
3. Dinámico
□ lldb / Frida
□ fs_usage / log stream para observación
□ Red: combinado con protocol-reverse o proxy
Cadena de herramientas
| Herramienta | Uso |
|---|---|
| otool / nm / codesign | Integradas en el sistema |
| Hopper / Ghidra / IDA | Descompilación |
| class-dump / dsdump | ObjC |
| Frida / lldb | Dinámico |
| jtool2 | Mach-O |
Referencias
references/macho-triage.md../mobile-reverse/(iOS)../ghidra-reverse/../malware-analysis/
Contexto de ruta
Agua arriba: MASTER R31
Agua abajo: iOS → mobile-reverse; muestra genérica → malware-analysis
Autoevaluación de finalización de la tarea
- ¿Se ha registrado el estado de firma/Hardened Runtime?
- ¿Hay conclusiones a nivel de dirección/símbolo?
- ¿Checklist?