Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
attesor — Ingeniería inversa impulsada por IA de Rosetta (2 para Linux). Descargo de responsabilidad: debido al acuerdo de usuario, no tocaré el código. Todo lo hace la IA, por lo que podría haber una implementación desordenada. | Kitploit
Herramientas/GitHubGitHub/inokinoki/attesor
Ingeniería InversaSeguridad de HardwareAnálisis de BinariosAprendizaje y EducaciónReversing Asistido por IAAnálisis de Firmware
GitHubinokinoki/attesor

attesor

Ingeniería inversa impulsada por IA de Rosetta (2 para Linux). Descargo de responsabilidad: debido al acuerdo de usuario, no tocaré el código. Todo lo hace la IA, por lo que podría haber una implementación desordenada.

Ver Repositorio
72321hace 1 mesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Proyecto de Ingeniería Inversa de Rosetta 2

Licencia: MIT Estado

Un esfuerzo exhaustivo de ingeniería inversa para comprender y documentar la tecnología de traducción binaria Rosetta 2 de Apple.

Tabla de Contenidos

  1. Antecedentes
  2. ¿Qué es Rosetta?
  3. ¿Qué es Rosetta 2?
  4. Cómo Apple distribuye Rosetta 2 en macOS
  5. Arquitectura técnica
  6. Este proyecto
  7. Estructura de archivos
  8. Uso
  9. Progreso
  10. Referencias

Antecedentes

La transición de arquitectura

En noviembre de 2020, Apple anunció sus primeras Mac con Apple Silicon, marcando una transición histórica de los procesadores Intel x86_64 a sus propios chips M1 basados en ARM. Esta fue la tercera gran transición de arquitectura de Apple:

  1. 1994: Motorola 68000 -> PowerPC
  2. 2006: PowerPC -> Intel x86_64
  3. 2020: Intel x86_64 -> Apple Silicon (ARM64)

Cada transición requirió una solución de traducción binaria para ejecutar el software existente durante el período de migración. Rosetta 2 es el sistema de traducción binaria más sofisticado de Apple hasta ahora.


¿Qué es Rosetta?

Rosetta (2006-2011) fue el primer software de traducción binaria dinámica de Apple, que permitía ejecutar aplicaciones PowerPC en Mac basadas en Intel.

Características principales:

  • Traducción dinámica: Traducía código PowerPC a x86_64 en tiempo de ejecución
  • Integración en el sistema operativo: Integrado en Mac OS X 10.4 (Tiger) hasta 10.6 (Snow Leopard)
  • Operación transparente: Los usuarios lanzaban aplicaciones PowerPC normalmente
  • Sobrecarga de rendimiento: Típicamente 20-50% más lento que el código nativo

Rosetta se eliminó en Mac OS X 10.7 (Lion), completando la transición a Intel.


¿Qué es Rosetta 2?

Rosetta 2 es la tecnología avanzada de traducción binaria dinámica de Apple que permite que las aplicaciones compiladas para Macs Intel x86_64 se ejecuten en Macs con Apple Silicon (ARM64).

Resumen de la arquitectura```

┌─────────────────────────────────────────────────────────────┐ │ User Application (x86_64) │ ├─────────────────────────────────────────────────────────────┤ │ Rosetta 2 Layer │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │ │ │ Translator │ │ Runtime │ │ System Call │ │ │ │ (AOT/JIT) │ │ Library │ │ Translation │ │ │ └─────────────┘ └─────────────┘ └─────────────────────┘ │ ├─────────────────────────────────────────────────────────────┤ │ macOS Kernel (ARM64) │ ├─────────────────────────────────────────────────────────────┤ │ Apple Silicon Hardware │ └─────────────────────────────────────────────────────────────┘

### Tecnologías Clave

1. **Traducción Anticipada (AOT)**
   - Traduce binarios x86_64 a ARM64 durante la instalación
   - Almacena el código traducido en una caché para lanzamientos posteriores más rápidos
   - Reduce la sobrecarga en tiempo de ejecución en comparación con la traducción JIT pura

2. **Traducción Justo a Tiempo (JIT)**
   - Traduce bloques de código bajo demanda durante la ejecución
   - Maneja código cargado dinámicamente y código automodificable
   - Mantiene una caché de traducción para mayor eficiencia

3. **Traducción del Conjunto de Instrucciones**
   - Mapeo de instrucciones de x86_64 a ARM64
   - Traducción de instrucciones vectoriales SSE/AVX a NEON
   - Banderas de x86_64 a códigos de condición de ARM64

4. **Traducción de Llamadas al Sistema**
   - Traduce las syscalls de macOS x86_64 a sus equivalentes ARM64
   - Maneja diferentes convenciones de llamada
   - Gestiona el estado de los registros a través de los límites de las syscalls

5. **Soporte en Tiempo de Ejecución**
   - Emulación de detección de características de la CPU
   - Manejo de almacenamiento local de hilos
   - Manejo de señales y excepciones

---

## Cómo Apple entrega Rosetta 2 en macOS

### Ubicación de Instalación

Rosetta 2 se encuentra en:```
/Library/Apple/usr/libexec/oah/
├── rosetta        # Main translator binary
├── rosettad       # Rosetta daemon
└── librosetta.*   # Runtime libraries

El directorio oah significa "Old Architecture Hardware" - una continuación de la era de transición de PowerPC.

Instalación Automática

En las Mac con Apple Silicon, Rosetta 2 no está instalado de forma predeterminada. Se activa de dos maneras:

  1. Aviso de Primer Inicio ``` The "Rosetta" software is not installed on your Mac. Rosetta translates apps from Intel-based Macs for use on Apple Silicon Macs.
  2. Instalación por línea de comandos ```bash softwareupdate --install-rosetta --agree-to-license

Componentes Entregados

ComponenteDescripción
RosettaLinux/rosettaBinario ARM64 principal que contiene el motor de traducción
RosettaLinux/rosettadDemonio del sistema que gestiona los servicios de traducción
debugserver -> /usr/libexec/rosetta/debugserverSoporte de depuración para procesos traducidos
libRosettaRuntimeBiblioteca de tiempo de ejecución enlazada durante la traducción
translate_tool -> /usr/libexec/rosetta/translate_toolHerramienta de traducción para construir binarios traducidos

Integración con macOS

  1. Integración con launchd: El demonio de Rosetta se ejecuta como un servicio del sistema
  2. Firma de código: Los binarios traducidos se firman automáticamente
  3. Gatekeeper: Las aplicaciones traducidas por Rosetta pasan las comprobaciones de seguridad
  4. Protección de integridad del sistema: Protegido contra modificaciones

Arquitectura Técnica

Proceso de Traducción```

┌──────────────────────────────────────────────────────────────────┐ │ Phase 1: Binary Loading │ │ ─────────────────────────────────────────────────────────────── │ │ 1. Load x86_64 Mach-O binary │ │ 2. Parse segments, sections, symbols │ │ 3. Validate code signatures │ │ 4. Map into translation context │ └──────────────────────────────────────────────────────────────────┘ │ ▼ ┌──────────────────────────────────────────────────────────────────┐ │ Phase 2: AOT Translation │ │ ─────────────────────────────────────────────────────────────── │ │ 1. Disassemble x86_64 code sections │ │ 2. Translate instructions to ARM64 │ │ 3. Apply optimizations │ │ 4. Store in translation cache (~/.oah) │ └──────────────────────────────────────────────────────────────────┘ │ ▼ ┌──────────────────────────────────────────────────────────────────┐ │ Phase 3: Runtime Execution │ │ ─────────────────────────────────────────────────────────────── │ │ 1. Load translated ARM64 code │ │ 2. Set up x86_64 emulation context │ │ 3. Handle JIT translations for dynamic code │ │ 4. Translate syscalls on-the-fly │ └──────────────────────────────────────────────────────────────────┘

### Desafíos Clave de Traducción
Descargar herramienta