Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
attesor — Reverse engineering assisté par IA de Rosetta (2 pour Linux). Avertissement : en raison de l'accord d'utilisation, je ne toucherai pas au code. Tout est fait par l'IA, donc l'implémentation pourrait être brouillonne. | Kitploit
Outils/GitHubGitHub/inokinoki/attesor
Rétro-ingénierieSécurité MatérielleAnalyse de BinairesApprentissage et ÉducationRétro-Ingénierie Assistée par IAAnalyse de Micrologiciel
GitHubinokinoki/attesor

attesor

Reverse engineering assisté par IA de Rosetta (2 pour Linux). Avertissement : en raison de l'accord d'utilisation, je ne toucherai pas au code. Tout est fait par l'IA, donc l'implémentation pourrait être brouillonne.

Voir le dépôt
72320il y a 1 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Projet de Rétro-ingénierie Rosetta 2

License: MIT Status

Un effort complet de rétro-ingénierie pour comprendre et documenter la technologie de traduction binaire Rosetta 2 d'Apple.

Table des matières

  1. Contexte
  2. Qu'est-ce que Rosetta ?
  3. Qu'est-ce que Rosetta 2 ?
  4. Comment Apple livre Rosetta 2 dans macOS
  5. Architecture technique
  6. Ce projet
  7. Structure des fichiers
  8. Utilisation
  9. Progression
  10. Références

Contexte

La transition d'architecture

En novembre 2020, Apple a annoncé leurs premiers Mac Apple Silicon, marquant une transition historique des processeurs Intel x86_64 vers leurs propres puces M1 basées sur ARM. Il s'agissait de la troisième transition majeure d'architecture d'Apple :

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

Chaque transition a nécessité une solution de traduction binaire pour faire fonctionner les logiciels existants pendant la période de migration. Rosetta 2 est le système de traduction binaire le plus sophistiqué d'Apple à ce jour.


Qu'est-ce que Rosetta ?

Rosetta (2006-2011) était le premier logiciel de traduction binaire dynamique d'Apple, permettant aux applications PowerPC de fonctionner sur les Mac Intel.

Caractéristiques principales :

  • Traduction dynamique : traduisait le code PowerPC en x86_64 à l'exécution
  • Intégration OS : intégré dans Mac OS X 10.4 (Tiger) jusqu'à 10.6 (Snow Leopard)
  • Opération transparente : les utilisateurs lançaient les applications PowerPC normalement
  • Surcharge de performance : généralement 20 à 50 % plus lent que le code natif

Rosetta a été supprimée dans Mac OS X 10.7 (Lion), achevant la transition Intel.


Qu'est-ce que Rosetta 2 ?

Rosetta 2 est la technologie avancée de traduction binaire dynamique d'Apple qui permet aux applications compilées pour les Mac Intel x86_64 de fonctionner sur les Mac Apple Silicon (ARM64).

Aperçu de l'architecture```

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

### Technologies clés

1. **Traduction Ahead-of-Time (AOT)**
   - Traduit les binaires x86_64 en ARM64 lors de l'installation
   - Stocke le code traduit dans un cache pour des lancements ultérieurs plus rapides
   - Réduit la surcharge d'exécution par rapport à la traduction JIT pure

2. **Traduction Just-in-Time (JIT)**
   - Traduit les blocs de code à la demande pendant l'exécution
   - Gère le code chargé dynamiquement et le code auto-modifiant
   - Maintient un cache de traduction pour l'efficacité

3. **Traduction du jeu d'instructions**
   - Correspondance des instructions x86_64 -> ARM64
   - Traduction des instructions vectorielles SSE/AVX -> NEON
   - Drapeaux x86_64 -> codes de condition ARM64

4. **Traduction des appels système**
   - Traduit les appels système macOS x86_64 en équivalents ARM64
   - Gère les différentes conventions d'appel
   - Gère l'état des registres entre les appels système

5. **Prise en charge de l'exécution**
   - Émulation de la détection des fonctionnalités du processeur
   - Gestion du stockage local de thread
   - Gestion des signaux et des exceptions

---

## Comment Apple livre Rosetta 2 dans macOS

### Emplacement de l'installation

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

Le répertoire oah signifie "Old Architecture Hardware" - une continuité de l'époque de la transition PowerPC.

Installation automatique

Sur les Mac Apple Silicon, Rosetta 2 n'est pas installé par défaut. Il est déclenché de deux manières :

  1. Invite de première ouverture ``` The "Rosetta" software is not installed on your Mac. Rosetta translates apps from Intel-based Macs for use on Apple Silicon Macs.
  2. Installation en ligne de commande ```bash softwareupdate --install-rosetta --agree-to-license

Composants livrés

ComposantDescription
RosettaLinux/rosettaBinaire ARM64 principal contenant le moteur de traduction
RosettaLinux/rosettadDaemon système gérant les services de traduction
debugserver -> /usr/libexec/rosetta/debugserverSupport de débogage pour les processus traduits
libRosettaRuntimeBibliothèque d'exécution liée lors de la traduction
translate_tool -> /usr/libexec/rosetta/translate_toolOutil de traduction pour construire des binaires traduits

Intégration avec macOS

  1. Intégration launchd : le daemon Rosetta s'exécute comme service système
  2. Signature de code : les binaires traduits sont automatiquement signés
  3. Gatekeeper : les applications traduites par Rosetta passent les contrôles de sécurité
  4. Protection de l'intégrité du système : protégé contre les modifications

Architecture technique

Processus de traduction```

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

### Défis Clés de la Traduction
Télécharger l’outil