Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
attesor — AIを活用したRosetta (2 for Linux)のリバースエンジニアリング。免責事項: ユーザー契約により、コードには触れません。すべてAIが行うため、実装が乱雑になる可能性があります。 | Kitploit
ツール/GitHubGitHub/inokinoki/attesor
リバースエンジニアリングハードウェアセキュリティバイナリ解析学習と教育AI支援リバースエンジニアリングファームウェア解析
GitHubinokinoki/attesor

attesor

AIを活用したRosetta (2 for Linux)のリバースエンジニアリング。免責事項: ユーザー契約により、コードには触れません。すべてAIが行うため、実装が乱雑になる可能性があります。

リポジトリを見る
7233日前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Rosetta 2 リバースエンジニアリングプロジェクト

License: MIT Status

AppleのRosetta 2バイナリ変換技術を理解し文書化するための包括的なリバースエンジニアリングプロジェクト。

目次

  1. 背景
  2. Rosettaとは?
  3. Rosetta 2とは?
  4. AppleがmacOSでRosetta 2を提供する方法
  5. 技術アーキテクチャ
  6. このプロジェクトについて
  7. ファイル構造
  8. 使用方法
  9. 進捗状況
  10. 参考文献

背景

アーキテクチャの移行

2020年11月、Appleは初のApple Silicon Macを発表し、Intel x86_64プロセッサから自社開発のARMベースM1チップへの歴史的な移行を開始しました。これはAppleにとって3度目の主要なアーキテクチャ移行でした:

  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) は、PowerPCアプリケーションをIntelベースのMacで動作させるApple初の動的バイナリ変換ソフトウェアでした。

主な特徴:

  • 動的変換: PowerPCコードを実行時にx86_64に変換
  • OS統合: 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 は、Intel x86_64 Mac向けにコンパイルされたアプリケーションをApple Silicon (ARM64) Macで動作させるAppleの先進的な動的バイナリ変換技術です。

Architecture Overview```

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

root@kitploit:~
### 主要技術

1. **事前コンパイル(AOT)変換**
   - インストール時にx86_64バイナリをARM64に変換
   - 変換済みコードをキャッシュに保存し、以降の起動を高速化
   - 純粋なJIT変換と比較して実行時のオーバーヘッドを削減

2. **実行時コンパイル(JIT)変換**
   - 実行中にコードブロックをオンデマンドで変換
   - 動的にロードされるコードや自己修正コードに対応
   - 効率化のための変換キャッシュを維持

3. **命令セット変換**
   - x86_64 → ARM64 命令マッピング
   - SSE/AVX → NEON ベクトル命令変換
   - x86_64 フラグ → ARM64 条件コード

4. **システムコール変換**
   - x86_64 macOS のシステムコールをARM64相当に変換
   - 異なる呼び出し規約に対応
   - システムコール境界をまたぐレジスタ状態の管理

5. **ランタイムサポート**
   - CPU機能検出のエミュレーション
   - スレッドローカルストレージの処理
   - シグナルおよび例外処理

---

## AppleがRosetta 2をmacOSに提供する方法

### インストール場所

Rosetta 2は次の場所にあります:```
/Library/Apple/usr/libexec/oah/
├── rosetta        # Main translator binary
├── rosettad       # Rosetta daemon
└── librosetta.*   # Runtime libraries

oahディレクトリは「Old Architecture Hardware」の略称で、PowerPC移行期からの継続です。

自動インストール

Apple Silicon搭載のMacでは、Rosetta 2はデフォルトではインストールされません。以下の2つの方法で起動されます:

  1. 初回起動時のプロンプト ``` The "Rosetta" software is not installed on your Mac. Rosetta translates apps from Intel-based Macs for use on Apple Silicon Macs.
    root@kitploit:~
  2. コマンドラインインストール ```bash softwareupdate --install-rosetta --agree-to-license
    root@kitploit:~

提供されるコンポーネント

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

root@kitploit:~
### 主要な変換の課題

1. **レジスタマッピング**
   - x86_64には16個のGPR、ARM64には31個のGPR
   - x86_64のフラグレジスタ -> ARM64のNZCVフラグ
   - RIP(命令ポインタ)のエミュレーション

2. **メモリ順序**
   - x86_64: 強いメモリ順序(TSO)
   - ARM64: 弱いメモリ順序
   - 正確性のためにメモリバリアが必要

3. **ベクトル命令**
   - SSE(128ビット) -> NEON(128ビット)への直接マッピング
   - AVX(256ビット) -> NEONペアエミュレーション
   - SIMDにおける異なる例外処理

4. **呼び出し規約**
   - x86_64: 最初の6個の引数をレジスタで(RDI、RSI、RDX、RCX、R8、R9)
   - ARM64: 最初の8個の引数をレジスタで(X0-X7)
   - 異なるスタックフレームレイアウト

---

## このプロジェクトについて

このリポジトリには、Rosetta 2バイナリの関数のリバースエンジニアリングによる実装が含まれています。注意深い解析と逆コンパイルを通じて、数百の関数の意味的な目的を特定し、文書化しました。

### 目標

1. **教育用**: Rosetta 2が内部でどのように動作するかを理解する
2. **ドキュメント化**: 変換技術の包括的なドキュメントを作成する
3. **実装**: クリーンで十分に文書化されたC言語実装を提供する
4. **コミュニティ**: リバースエンジニアリングコミュニティと知識を共有する

### 達成したこと

- メインの`rosetta`バイナリで**828個の関数**を識別し命名
- **612個の関数**をクリーンなCコードで完全実装
- **66のカテゴリ**の機能を文書化
- 意味的な名前との完全な関数名マッピング

### 関数のカテゴリ

| カテゴリ | 関数数 | 説明 |
|----------|--------|------|
| Entry Point | 1 | Rosettaの初期化 |
| FP/Vector Operations | ~20 | 浮動小数点およびSIMD状態管理 |
| SIMD Memory Operations | ~10 | SIMDを使用したmemchr、memcmp、memcpy |
| Vector Operations | ~30 | NEONベクトル演算、比較 |
| Binary Translation | ~50 | x86_64 -> ARM64命令変換 |
| Syscall Handlers | ~60 | システムコール変換と転送 |
| Memory Management | ~20 | malloc、free、mmapラッパー |
| Hash Functions | ~5 | 変換キャッシュ用アドレスハッシュ |
| String Operations | ~30 | SIMD最適化された文字列関数 |
| Cryptographic Extensions | ~30 | AES、SHA、CRC32パススルー |
| ELF Parsing | ~15 | Linuxバイナリ形式サポート |
| Translation Cache | ~20 | AOT/JITキャッシュ管理 |

---

## ファイル構造

### コアファイル```
Rosetta2/
├── README.md                      # This file
├── rosetta_decomp.c               # Original decompilation (74,677 lines)
├── rosettad_decomp.c              # Daemon decompilation (44,064 lines)
├── rosetta_refactored.c           # Minimal wrapper (59 lines) - includes modular headers
├── rosetta_refactored.c.legacy    # Legacy refactored code (19,302 lines) - archived
├── rosetta_refactored.h           # Main header (1,215 lines)
├── rosetta_refactored_complete.c  # Single-file implementation (2,686 lines)
├── rosetta_function_map.h         # Function name mapping (828 functions)
├── rosettad_refactored.c          # Daemon-side refactoring
└── SESSION_*.md                   # Session logs (30+ sessions)

モジュール式翻訳基盤 (56 C files + 65 H files)

翻訳基盤は完全にモジュール化され、カテゴリ別のコンポーネントに分割されています:``` ├── rosetta_types.h # Base type definitions ├── rosetta_x86_decode.h/.c # x86 decoder ├── rosetta_arm64_emit.h/.c # ARM64 emitter ├── rosetta_translate_alu.h/.c # ALU translations ├── rosetta_translate_memory.h/.c # Memory translations ├── rosetta_translate_branch.h/.c # Branch translations ├── rosetta_translate_bit.h/.c # Bit manipulation ├── rosetta_translate_string.h/.c # String operations ├── rosetta_translate_special.h/.c # Special instructions ├── rosetta_translate_block.h/.c # Block translation coordinator ├── rosetta_translate_dispatch.h/.c # Instruction dispatch ├── rosetta_trans_dispatch.h/.c # Main dispatch layer ├── rosetta_trans_alu.h/.c # ALU emulation layer ├── rosetta_trans_mem.h/.c # Memory emulation layer ├── rosetta_trans_branch.h/.c # Branch emulation layer ├── rosetta_trans_bit.h/.c # Bit emulation layer ├── rosetta_trans_string.h/.c # String emulation layer ├── rosetta_trans_special.h/.c # Special instruction emulation ├── rosetta_trans_system.h/.c # System instruction emulation ├── rosetta_trans_neon.h/.c # NEON emulation layer └── Makefile.modular # Modular build system

root@kitploit:~
### 機能モジュール

コアインフラストラクチャおよびサポートモジュール:```
├── rosetta_jit.h/.c               # JIT compilation infrastructure
├── rosetta_exec.h/.c              # Execution engine (NEW)
├── rosetta_init.h/.c              # Initialization & FP registers (NEW)
├── rosetta_codegen.h/.c           # Code generation primitives
├── rosetta_cache.h/.c             # Translation cache (AOT/JIT)
├── rosetta_transcache.h/.c        # Translation cache management
├── rosetta_context.h/.c           # CPU context management
├── rosetta_runtime.h/.c           # Runtime support
├── rosetta_hash.h/.c              # Address hashing
├── rosetta_memmgmt.h/.c           # Memory management
├── rosetta_memory_utils.h/.c      # Memory utilities
├── rosetta_utils.h/.c             # Utility functions
├── rosetta_string_utils.h/.c      # String utilities
├── rosetta_trans_helpers.h/.c     # Translation helpers
├── rosetta_refactored_helpers.h/.c # Refactoring helpers
└── rosetta_refactored_types.h     # Refactored type definitions

SIMD/ベクトルモジュール

SIMD およびベクトル演算モジュール:``` ├── rosetta_simd.h/.c # SIMD operations ├── rosetta_simd_mem.h/.c # SIMD memory operations ├── rosetta_simd_mem_helpers.h/.c # SIMD memory helpers ├── rosetta_vector.h/.c # Vector operations ├── rosetta_refactored_vector.h/.c # Refactored vector ops ├── rosetta_jit_emit.h/.c # JIT emission ├── rosetta_jit_emit_simd.h/.c # SIMD JIT emission ├── rosetta_fp_translate.h/.c # FP translation ├── rosetta_fp_helpers.h/.c # FP helpers ├── rosetta_trans_neon.c # NEON translation └── rosetta_string_simd.c # SIMD string operations

root@kitploit:~
### システムコールモジュール

ゲストのシステムコール処理と変換:```
├── rosetta_syscalls.h/.c          # Syscall translation core
├── rosetta_syscalls_impl.h/.c     # Syscall implementations
└── rosetta_crypto.h/.c            # Crypto instructions (AES, SHA, CRC32)

追加モジュール

追加の翻訳およびサポートモジュール:``` ├── rosetta_translate.h/.c # Translation core ├── rosetta_translate_alu_impl.h/.c # ALU implementation details ├── rosetta_translate_memory_impl.h/.c # Memory implementation details ├── rosetta_translate_branch_impl.h/.c # Branch implementation details ├── rosetta_translate_special_impl.h/.c # Special implementation details └── rosetta_arm64_insns.h # ARM64 instruction definitions

root@kitploit:~
### テストファイル```
├── test_jit.c                     # JIT unit tests (737 lines)
└── test_translate.c               # Translation tests (1,059 lines)

合計: 50以上のソースファイル、約150,000行以上のコード


ビルドシステム

前提条件

  • C11対応のGCCまたはClang
  • macOSまたはLinux(POSIX互換システム)

ライブラリのビルド```bash

Build static library using modular Makefile

make -f Makefile.modular all

This creates librosetta.a static library

root@kitploit:~
### 個別コンポーネントのビルド```bash
# Compile core modules
gcc -c -I. -std=c11 rosetta_types.h
gcc -c -I. -std=c11 rosetta_codegen.c
gcc -c -I. -std=c11 rosetta_jit.c
gcc -c -I. -std=c11 rosetta_x86_decode.c
gcc -c -I. -std=c11 rosetta_arm64_emit.c

# Compile translation modules
gcc -c -I. -std=c11 rosetta_translate_alu.c
gcc -c -I. -std=c11 rosetta_translate_memory.c
gcc -c -I. -std=c11 rosetta_translate_branch.c
gcc -c -I. -std=c11 rosetta_translate_block.c
gcc -c -I. -std=c11 rosetta_translate_dispatch.c

# Compile support modules
gcc -c -I. -std=c11 rosetta_cache.c
gcc -c -I. -std=c11 rosetta_context.c
gcc -c -I. -std=c11 rosetta_syscalls.c
gcc -c -I. -std=c11 rosetta_runtime.c

テストの実行```bash

Build and run JIT tests

make -f Makefile.modular test_jit

Build and run translation tests

make -f Makefile.modular test_translate

root@kitploit:~
### ライブラリとして使用する```bash
# Link against the static library
gcc -o my_app my_app.c -L. -lrosetta

# Or compile with source files directly
gcc -I. -o my_app my_app.c rosetta_*.c

逆コンパイルされたソースファイルの解析

元の逆コンパイルファイル rosetta_decomp.c には、元のソースコード構造を明らかにする文字列リテラルが含まれています。これらのファイル名は、バイナリ全体のアサーション/エラーメッセージに出現します。

注: リファクタリングされたコードは、オリジナルとは異なる、よりモジュール化された構造を使用しています。

ヘッダーファイル (.h)

  • Register.h
  • TaggedPointer.h
  • RedBlackTree.h
  • TransactionalList.h
  • Translator.h
  • AssemblerBuffer.h
  • BuilderBase.h
  • IrBuilder_x86.h

C++ ソースファイル (.cpp)

  • Repatch.cpp
  • Decoder.cpp
  • Fixup.cpp
  • AssemblerHelpers.cpp
  • Operand.cpp
  • Opcode.cpp
  • BasicBlock.cpp
  • ThreadContextFcntl.cpp
  • InitStack.cpp
  • Thread.cpp
  • ThreadContext.cpp
  • ThreadContextRuntimeSignals.cpp
  • ThreadContextVm.cpp
  • VMAllocationTracker.cpp

C++ ヘッダーファイル (.hpp)

  • AssemblerBase.hpp
  • TranslatorBase.hpp

進捗状況

現在の状況

モジュールアーキテクチャ(完了)

翻訳インフラストラクチャは以下のコンポーネントに完全にモジュール化されています:

合計: 40以上のモジュールコンポーネント

翻訳カバレッジ

最近のセッション


参考文献

Apple公式ドキュメント

  • macOSアプリをApple Siliconに移植する
  • アーキテクチャの違いへの対応

技術リソース

  • ARM64 System V ABI
  • Intel 64 and IA-32 Architectures SDM
  • ARM Architecture Reference Manual

関連プロジェクト

  • FEX-Emu - Linux x86_64 on ARM64 emulator
  • QEMU - Generic machine emulator
  • Rosetta Linux - コミュニティ研究プロジェクト

免責事項

このプロジェクトは教育および研究目的のみです。

  • Rosetta 2はAppleのプロプライエタリソフトウェアです
  • このプロジェクトはAppleのバイナリを配布しません
  • このリポジトリ内のすべてのコードは、Claude CodeおよびQwen 3.5によって作成されました。
  • このプロジェクトをAppleのセキュリティ対策を回避するために使用しないでください

ライセンス

MITライセンス - 詳細はLICENSEファイルを参照してください。


貢献について

貢献を歓迎します!関心のある分野:

  1. 残りの関数の実装
  2. ドキュメントの改善
  3. テストケースの追加
  4. パフォーマンス分析
  5. アーキテクチャ図

最終更新: 2026年2月

ツールをダウンロード
コンポーネント説明
RosettaLinux/rosetta翻訳エンジンを含むコアARM64バイナリ
RosettaLinux/rosettad翻訳サービスを管理するシステムデーモン
debugserver -> /usr/libexec/rosetta/debugserver翻訳されたプロセスに対するデバッグサポート
libRosettaRuntime翻訳中にリンクされるランタイムライブラリ
translate_tool -> /usr/libexec/rosetta/translate_tool翻訳されたバイナリを構築するための翻訳ツール
  • Vdso.cpp
  • ProcMapsParser.cpp
  • ThreadContextSignals.cpp
  • ThreadContextSyscalls.cpp
  • TranslationCacheAot.cpp
  • TranslationCacheJit.cpp
  • TranslationCache.cpp
  • Translator.cpp
  • RuntimeLibraryBridgeInternal.cpp
  • TwoLevelOffsetMap.cpp
  • DeltaCodedOffsetMap.cpp
  • 指標値
    関数総数828
    マッピング済み関数828 (100%)
    実装済み関数600+
    完了率~75%
    文書化されたカテゴリ数66
    ソースファイル数56 C + 65 H
    総コード行数~150,000+
    モジュールカテゴリファイル説明
    コア型rosetta_types.h基本型定義
    実行エンジンrosetta_exec.h/.cexecute_translated、コンテキストスイッチング
    初期化rosetta_init.h/.cinit_translation_env、FPレジスタ
    x86デコードrosetta_x86_decode.h/.cx86_64命令デコーダ
    ARM64エミッションrosetta_arm64_emit.h/.cARM64コード出力
    コード生成rosetta_codegen.h/.cコード生成プリミティブ
    JITコアrosetta_jit.h/.cJITコンパイルインフラストラクチャ
    変換キャッシュrosetta_cache.h/.c, rosetta_transcache.h/.cブロックキャッシュ (AOT/JIT)
    ブロック変換rosetta_translate_block.h/.c基本ブロック変換
    命令ディスパッチrosetta_trans_dispatch.h/.c命令ディスパッチ
    ALU変換rosetta_translate_alu.h/.c, rosetta_trans_alu.h/.c算術/論理演算
    メモリ変換rosetta_translate_memory.h/.c, rosetta_trans_mem.h/.cロード/ストア操作
    分岐変換rosetta_translate_branch.h/.c, rosetta_trans_branch.h/.c制御フロー
    ビット変換rosetta_translate_bit.h/.c, rosetta_trans_bit.h/.cビット操作
    文字列変換rosetta_translate_string.h/.c, rosetta_trans_string.h/.c文字列操作
    特殊変換rosetta_translate_special.h/.c, rosetta_trans_special.h/.c特殊命令
    システム変換rosetta_trans_system.h/.cシステムレジスタ
    NEON変換rosetta_trans_neon.cSIMD/NEON操作
    SIMD演算rosetta_simd.h/.c, rosetta_simd_mem.h/.cSIMD操作
    ベクトル演算rosetta_vector.h/.cベクトル操作
    FP変換rosetta_fp_translate.h/.c, rosetta_fp_helpers.h/.c浮動小数点
    JIT出力rosetta_jit_emit.h/.c, rosetta_jit_emit_simd.h/.cJIT出力
    システムコールrosetta_syscalls.h/.c, rosetta_syscalls_impl.h/.cシステムコール処理
    暗号rosetta_crypto.h/.cAES、SHA、CRC32
    コンテキストrosetta_context.h/.cCPUコンテキストの保存/復元
    ランタイムrosetta_runtime.h/.cランタイムエントリポイント
    メモリ管理rosetta_memmgmt.h/.cメモリ管理
    ユーティリティrosetta_utils.h/.c, rosetta_string_utils.h/.cユーティリティ関数
    カテゴリ命令
    ALUADD, SUB, AND, OR, XOR, MUL, DIV, INC, DEC, NEG, NOT, SHL, SHR, SAR, ROL, ROR
    メモリMOV, MOVZX, MOVSX, MOVSXD, LEA, PUSH, POP, CMP, TEST
    分岐Jcc, JMP, CALL, RET, CMOVcc, SETcc, XCHG
    ビットBSF, BSR, POPCNT, BT, BTS, BTR, BTC
    文字列MOVS, STOS, LODS, CMPS, SCAS
    特殊CPUID, RDTSC, SHLD, SHRD, CWD, CDQ, CQO, CLI, STI, NOP
    SIMDSSE, SSE2, SSE3, SSSE3, SSE4.x
    FPx87, SSE scalar FP
    暗号AES-NI, SHA, CRC32
    セッション焦点作成/変更されたファイル
    61+完全なモジュール化35以上のモジュールコンポーネント
    61翻訳のモジュール化6つの翻訳モジュール + x86_decodeの拡張
    60翻訳インフラストラクチャtranslate_block() コア実装
    59システムコール実装追加のシステムコールハンドラ
    58システムコール変換I/Oベクタおよびネットワークハンドラ
    57メモリ管理VM割り当てトラッカーの拡張
    56SIMD操作高度なSIMD変換
    55FP/SIMD浮動小数点命令変換
    54暗号拡張AES-NIパススルー実装
    53暗号拡張SHAおよびCRC32命令
    52文字列操作SIMD最適化文字列関数
    51ベクトル操作NEONベクトル演算
    50ベクトル変換浮動小数点変換
    49変換キャッシュAOT/JITキャッシュ管理
    48JITコアJITコンパイルインフラストラクチャ
    46-47コード生成x86_64コード生成ヘルパー
    45デコードヘルパーARM64デコードユーティリティ