πDesarollo de malware avanzado en MacOS ARM: shellcode y metamorfosis de memoria
IntroducciΓ³n
1. El Concepto de MutaciΓ³n MetamΓ³rfica
1.1 Fundamentos TeΓ³ricos
1.2 El DesafΓo del TamaΓ±o Fijo
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β MACH-O LAYOUT β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β __TEXT Segment (FIXED at build time) β
β βββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Code pages mapped by loader - SIZE IMMUTABLE β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β We can OVERWRITE existing bytes β
β We CANNOT expand the mapped region β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββCaracterΓstica
DiskMode
InMemMode
1.3 La Arquitectura del Motor
2. Grafos de Flujo de Control (CFG)
2.1 DefiniciΓ³n y PropΓ³sito
2.2 Bloques BΓ‘sicos
2.3 ConstrucciΓ³n del CFG: Algoritmo Leader-Based
2.4 IdentificaciΓ³n de Terminadores
3. ManipulaciΓ³n del Control Flow
3.1 Shuffling de Bloques
3.2 El Problema de los Desplazamientos
3.3 ExpansiΓ³n de Jumps Cortos
3.4 Trampolines para Targets Externos
3.5 Control Flow Flattening
4. El Motor de Reubicaciones
4.1 ΒΏPor QuΓ© es CrΓtico?
4.2 Estructura de Datos
4.3 Scanner x86-64
4.4 Scanner ARM64
5. Consideraciones Multi-Arquitectura
5.1 La Realidad del Mercado
5.2 Diferencias en DecodificaciΓ³n
Aspecto
x86-64
ARM64
5.3 El DesafΓo de Apple Silicon y PAC
6. Shell Reverso ARM64 para macOS
6.1 El Problema del struct sockaddr_in
6.2 ImplementaciΓ³n
6.3 Errores Comunes
Error
SΓntoma
CorrecciΓ³n
7. Flujo de MutaciΓ³n Completo
8. El Problema de W^X
9. Firmas de CΓ³digo y XProtect
9.1 El Dilema
9.2 Estrategia Operacional
10. Conclusiones
Referencias
AnteriorStardust: Arquitectura de implantes PIC y abstracciΓ³n de shellcode moderna e integracion con HavocC2SiguienteBuilding an Evasive Loader: Integrating Havoc, Donut, and Early Bird Injection
Γltima actualizaciΓ³n