Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
attesor — Reverse engineering potenziato dall'IA di Rosetta (2 per Linux). Dichiarazione di non responsabilità: a causa dell'accordo con l'utente, non toccherò il codice. Tutto è fatto dall'IA, quindi potrebbe esserci un'implementazione disordinata. | Kitploit
Strumenti/GitHubGitHub/inokinoki/attesor
Reverse EngineeringSicurezza HardwareAnalisi di BinariApprendimento e FormazioneReverse Engineering Assistito dall'IAAnalisi del Firmware
GitHubinokinoki/attesor

attesor

Reverse engineering potenziato dall'IA di Rosetta (2 per Linux). Dichiarazione di non responsabilità: a causa dell'accordo con l'utente, non toccherò il codice. Tutto è fatto dall'IA, quindi potrebbe esserci un'implementazione disordinata.

Vedi Repository
723201 mese faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Progetto di Reverse Engineering di Rosetta 2

Licenza: MIT Stato

Un approfondito sforzo di reverse engineering per comprendere e documentare la tecnologia di traduzione binaria Rosetta 2 di Apple.

Indice dei Contenuti

  1. Contesto
  2. Cos'è Rosetta?
  3. Cos'è Rosetta 2?
  4. Come Apple Distribuisce Rosetta 2 in macOS
  5. Architettura Tecnica
  6. Questo Progetto
  7. Struttura dei File
  8. Utilizzo
  9. Progressi
  10. Riferimenti

Contesto

La Transizione dell'Architettura

A novembre 2020, Apple ha annunciato i primi Mac con Apple Silicon, segnando una transizione storica dai processori Intel x86_64 ai propri chip M1 basati su ARM. È stata la terza importante transizione di architettura di Apple:

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

Ogni transizione ha richiesto una soluzione di traduzione binaria per eseguire il software esistente durante il periodo di migrazione. Rosetta 2 è il sistema di traduzione binaria più sofisticato di Apple finora.


Cos'è Rosetta?

Rosetta (2006-2011) è stato il primo software di traduzione binaria dinamica di Apple, che consentiva alle applicazioni PowerPC di funzionare sui Mac basati su Intel.

Caratteristiche Principali:

  • Traduzione Dinamica: Traduceva il codice PowerPC in x86_64 in fase di esecuzione
  • Integrazione nel Sistema Operativo: Integrato in Mac OS X 10.4 (Tiger) fino a 10.6 (Snow Leopard)
  • Operazione Trasparente: Gli utenti lanciavano le app PowerPC normalmente
  • Overhead delle Prestazioni: Tipicamente dal 20% al 50% più lento del codice nativo

Rosetta è stato rimosso in Mac OS X 10.7 (Lion), completando la transizione Intel.


Cos'è Rosetta 2?

Rosetta 2 è la tecnologia avanzata di traduzione binaria dinamica di Apple che consente alle applicazioni compilate per Intel x86_64 Mac di funzionare su Mac con Apple Silicon (ARM64).

Panoramica dell'Architettura```

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

### Tecnologie Chiave

1. **Traduzione Ahead-of-Time (AOT)**
   - Traduce i binari x86_64 in ARM64 al momento dell'installazione
   - Memorizza il codice tradotto in una cache per avvii successivi più rapidi
   - Riduce il sovraccarico di runtime rispetto alla traduzione JIT pura

2. **Traduzione Just-in-Time (JIT)**
   - Traduce blocchi di codice su richiesta durante l'esecuzione
   - Gestisce codice caricato dinamicamente e codice auto-modificante
   - Mantiene una cache di traduzione per l'efficienza

3. **Traduzione del Set di Istruzioni**
   - Mapping delle istruzioni x86_64 -> ARM64
   - Traduzione delle istruzioni vettoriali SSE/AVX -> NEON
   - Flag x86_64 -> codici di condizione ARM64

4. **Traduzione delle Chiamate di Sistema**
   - Traduce le syscall di macOS x86_64 in equivalenti ARM64
   - Gestisce diverse convenzioni di chiamata
   - Gestisce lo stato dei registri attraverso i confini delle syscall

5. **Supporto Runtime**
   - Emulazione del rilevamento delle funzionalità della CPU
   - Gestione della memoria locale del thread
   - Gestione dei segnali e delle eccezioni

---

## Come Apple Distribuisce Rosetta 2 in macOS

### Posizione di Installazione

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

oah sta per "Old Architecture Hardware" - una continuazione dell'era di transizione PowerPC.

Installazione Automatica

Su Mac con Apple Silicon, Rosetta 2 non è installato per impostazione predefinita. Viene attivato in due modi:

  1. Prompt del primo avvio ``` The "Rosetta" software is not installed on your Mac. Rosetta translates apps from Intel-based Macs for use on Apple Silicon Macs.
  2. Installazione da riga di comando ```bash softwareupdate --install-rosetta --agree-to-license

Componenti Forniti

ComponenteDescrizione
RosettaLinux/rosettaBinario ARM64 principale contenente il motore di traduzione
RosettaLinux/rosettadDemone di sistema che gestisce i servizi di traduzione
debugserver -> /usr/libexec/rosetta/debugserverSupporto per il debug dei processi tradotti
libRosettaRuntimeLibreria runtime collegata durante la traduzione
translate_tool -> /usr/libexec/rosetta/translate_toolStrumento di traduzione per creare binari tradotti

Integrazione con macOS

  1. Integrazione con launchd: Il demone Rosetta viene eseguito come servizio di sistema
  2. Firma del codice: I binari tradotti vengono firmati automaticamente
  3. Gatekeeper: Le app tradotte con Rosetta superano i controlli di sicurezza
  4. System Integrity Protection: Protetto da modifiche

Architettura Tecnica

Processo di Traduzione```

┌──────────────────────────────────────────────────────────────────┐ │ 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 │ └──────────────────────────────────────────────────────────────────┘

### Sfide chiave della traduzione

1. **Mappatura dei registri**
   - x86_64 ha 16 GPR; ARM64 ha 31 GPR
   - Registro flag x86_64 -> flag NZCV di ARM64
   - Emulazione di RIP (instruction pointer)
Scarica lo strumento