Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
attesor — Обратная разработка Rosetta (2 для Linux) с помощью ИИ. Отказ от ответственности: из-за пользовательского соглашения я не буду трогать код. Всё делается ИИ, поэтому реализация может быть запутанной. | Kitploit
Инструменты/GitHubGitHub/inokinoki/attesor
Обратная инженерияАппаратная БезопасностьАнализ Бинарных ФайловОбучение и ОбразованиеОбратная Разработка с Помощью ИИАнализ Прошивок
GitHubinokinoki/attesor

attesor

Обратная разработка Rosetta (2 для Linux) с помощью ИИ. Отказ от ответственности: из-за пользовательского соглашения я не буду трогать код. Всё делается ИИ, поэтому реализация может быть запутанной.

Репозиторий
723201 месяц назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Проект реверс-инжиниринга Rosetta 2

License: MIT Status

Всестороннее исследование обратной разработки для понимания и документирования технологии двоичной трансляции Rosetta 2 от Apple.

Содержание

  1. Предыстория
  2. Что такое Rosetta?
  3. Что такое Rosetta 2?
  4. Как Apple доставляет Rosetta 2 в macOS
  5. Техническая архитектура
  6. Этот проект
  7. Структура файлов
  8. Использование
  9. Прогресс
  10. Ссылки

Предыстория

Архитектурный переход

В ноябре 2020 года Apple анонсировала первые Mac на Apple Silicon, ознаменовав исторический переход от процессоров Intel x86_64 к собственным чипам M1 на базе ARM. Это был третий крупный архитектурный переход Apple:

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

Каждый переход требовал решения для двоичной трансляции, чтобы запускать существующее программное обеспечение в период миграции. Rosetta 2 — самая совершенная на сегодняшний день система двоичной трансляции от Apple.


Что такое Rosetta?

Rosetta (2006–2011) была первой динамической программой двоичной трансляции Apple, позволявшая запускать приложения PowerPC на Mac на базе Intel.

Ключевые особенности:

  • Динамическая трансляция: Перевод кода PowerPC в x86_64 во время выполнения
  • Интеграция с ОС: Встроена в Mac OS X 10.4 (Tiger) до 10.6 (Snow Leopard)
  • Прозрачная работа: Пользователи запускали приложения PowerPC как обычно
  • Накладные расходы производительности: Обычно на 20–50% медленнее нативного кода

Rosetta была удалена в Mac OS X 10.7 (Lion), завершив переход на Intel.


Что такое Rosetta 2?

Rosetta 2 — это передовая технология динамической двоичной трансляции Apple, которая позволяет приложениям, скомпилированным для Intel x86_64 Mac, работать на Apple Silicon (ARM64) Mac.

Обзор архитектуры```

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

### Ключевые технологии

1. **Трансляция с опережением (AOT)**
   - Переводит x86_64 бинарные файлы в ARM64 во время установки
   - Сохраняет переведенный код в кеше для более быстрого последующего запуска
   - Снижает накладные расходы во время выполнения по сравнению с чисто JIT-трансляцией

2. **Трансляция "на лету" (JIT)**
   - Переводит блоки кода по запросу во время выполнения
   - Обрабатывает динамически загружаемый код и самомодифицирующийся код
   - Поддерживает кеш трансляции для эффективности

3. **Трансляция системы команд**
   - Отображение инструкций x86_64 на ARM64
   - Трансляция векторных инструкций SSE/AVX в NEON
   - Флаги x86_64 в коды условий ARM64

4. **Трансляция системных вызовов**
   - Переводит системные вызовы macOS x86_64 в эквиваленты ARM64
   - Обрабатывает различные соглашения о вызовах
   - Управляет состоянием регистров на границах системных вызовов

5. **Поддержка времени выполнения**
   - Эмуляция обнаружения возможностей процессора
   - Обработка локального хранилища потоков
   - Обработка сигналов и исключений

---

## Как Apple предоставляет Rosetta 2 в macOS

### Местоположение установки

Rosetta 2 находится по адресу:```
/Library/Apple/usr/libexec/oah/
├── rosetta        # Main translator binary
├── rosettad       # Rosetta daemon
└── librosetta.*   # Runtime libraries

Каталог oah расшифровывается как «Оборудование старой архитектуры» — наследие эпохи переходного периода с PowerPC.

Автоматическая установка

На Mac с процессором Apple Silicon Rosetta 2 не устанавливается по умолчанию. Она запускается двумя способами:

  1. При первом запуске приложения ``` The "Rosetta" software is not installed on your Mac. Rosetta translates apps from Intel-based Macs for use on Apple Silicon Macs.
  2. Установка из командной строки ```bash softwareupdate --install-rosetta --agree-to-license

Поставляемые компоненты

КомпонентОписание
RosettaLinux/rosettaОсновной ARM64 двоичный файл, содержащий движок трансляции
RosettaLinux/rosettadСистемный демон, управляющий службами трансляции
debugserver -> /usr/libexec/rosetta/debugserverПоддержка отладки для транслированных процессов
libRosettaRuntimeБиблиотека времени выполнения, подключаемая во время трансляции
translate_tool -> /usr/libexec/rosetta/translate_toolИнструмент трансляции для создания транслированных двоичных файлов

Интеграция с macOS

  1. launchd Интеграция: Демон Rosetta работает как системная служба
  2. Подпись кода: Транслированные двоичные файлы автоматически подписываются кодом
  3. Gatekeeper: Приложения, транслированные через Rosetta, проходят проверки безопасности
  4. Защита целостности системы: Защищены от модификации

Техническая архитектура

Процесс трансляции```

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

### Ключевые проблемы трансляции

1. **Сопоставление регистров**
   - x86_64 имеет 16 GPR; ARM64 — 31 GPR
   - Регистр флагов x86_64 -> флаги NZCV ARM64
   - Эмуляция RIP (указателя команд)
Скачать инструмент