Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ABrake27 — iOS 27 kernelcache RE: SEPディスパッチマップ、AMFI差分、Ghidraワークフロー | Kitploit
ツール/GitHubGitHub/vvirei333/abrake27
iOSセキュリティ脆弱性分析エクスプロイトモバイルアプリペンテストリバースエンジニアリングモバイルセキュリティバイナリ解析論文と研究学習と教育ペイロード開発ファームウェア解析
341日前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
GitHub
vvirei333/abrake27

ABrake27

iOS 27 kernelcache RE: SEPディスパッチマップ、AMFI差分、Ghidraワークフロー

リポジトリを見る

ABrake27

iOS AMFI開発者モード有効化のためのLinuxネイティブクロスコンパイラ + PoC (arm64/arm64e)

Platform Build Arch

研究グレードのツールキット。 iOS 27.0.1と27.2のファームウェアを差分比較し、AMFI IOUserClientディスパッチテーブルをリバースエンジニアリングし、LinuxからベアメタルのIOKit PoCをクロスコンパイルし(Xcode不要)、標準のApple lockdownプロトコル経由でiOS 27.0.1の開発者モードを有効化します(カーネルレベルで永続性を検証済み)。


これは何か

  • IPSファームウェア差分 — iOS 27.0.1と27.2(iPhone 14,5)間のkernelcache、kext、sandbox、entitlements。
  • AMFIディスパッチテーブルのリバースエンジニアリング — すべてのIOExternalMethodDispatchスロットをマッピングし、selector 11 = armSecurityBootModeを特定。
  • スタンドアロンC PoC — poc/poc.cはAppleMobileFileIntegrity/AppleCredentialManagerを開き、armSecurityBootModeを呼び出して結果をログに記録します。Foundation/UIKitの肥大化なし — 純粋なC + IOKit。
  • Linuxクロスコンパイラ — poc/build_ipa.shはCachyOS/Arch上でclang + ld64.lld + ldidを使用して署名済み.ipaを生成します。Apple/Xcode依存ゼロ。

iOS 27.0.1で開発者モードを有効化する方法(脱獄なし、未署名コードなし)

iOS開発者モードのトグルチェーンは、標準のApple lockdownプロトコル(com.apple.amfi.lockdown)を通じて完全に駆動できます。脱獄もIPAもentitlement偽造も不要 — Linux上のpymobiledevice3だけです。

検証済み: 以下のチェーン実行後、mounter query-developer-mode-status → trueとなり、DeveloperDiskImageが/System/Developerにマウントされました — そして両方とも独立した再起動を生き延びました(以前は同じチェックがfalseに戻っていたため、永続性こそが本当の証明です。FINDINGS_LOCK.mdを参照)。

前提条件

パスコードを削除してください(設定 → Face IDとパスコード → パスコードをオフにする)。 パスコードが設定されていると、AMFIはaction=1/action=2に対してDevice has a passcode setと応答します。

手順

# 1) enable → action=1 → REBOOT #1
flatpak-spawn --host python3 -m pymobiledevice3 amfi enable-developer-mode

# 2) after the device boots: post-restart accept → action=2 → REBOOT #2
#    (the CLI has no separate accept command — call the service method directly,
#     e.g. via poc/verify_now2.py)

# 3) reveal the Settings toggle → action=0
flatpak-spawn --host python3 -m pymobiledevice3 amfi reveal-developer-mode

検証(カーネルレベル、AMFIサービスから独立)

flatpak-spawn --host python3 -m pymobiledevice3 mounter query-developer-mode-status   # → true
flatpak-spawn --host python3 -m pymobiledevice3 mounter list                           # → IsMounted: true, /System/Developer
flatpak-spawn --host python3 -m pymobiledevice3 mounter auto-mount                    # → DeveloperDiskImage mounted successfully

プロトコル概要

action意味効果
0reveal設定に開発者モードトグルを表示
1enableフラグを設定し、デバイスを再起動
2accept再起動後の確認、さらに再起動

⚠️ pymobiledevice3はショートサーキットします: ステータスが既にtrueの場合、 enable-developer-modeは*"Developer mode is already enabled"*とログするだけで何も送信しません。 2回の再起動はAppleプロトコルの一部であり、偶発的なものではありません。


クイックスタート(Linux → iPhone を4分で)

前提条件(CachyOS / Arch)

sudo pacman -S clang lld zip          # compiler + Mach-O linker
yay -S ldid                           # entitlement injector (AUR)
# iOS SDK:
mkdir -p poc/SDK
git clone https://github.com/theos/sdks poc/tmp && mv poc/tmp/iPhoneOS*.sdk poc/SDK/iPhoneOS.sdk

ビルド

cd poc
IOS_SDK=/path/to/iPhoneOS.sdk ./build_ipa.sh
# Output: EnableAMFIDevMode.ipa

iPhoneへのインストール

# Via ideviceinstaller (libimobiledevice):
ideviceinstaller --install EnableAMFIDevMode.ipa

# Via TrollStore (if jailbroken/CT-bypass device):
# → TrollStore app → "+" → pick EnableAMFIDevMode.ipa

# Via SideStore/AltStore:
# → Add to SideStore → sign with your Apple ID

実行

# On device (SSH / NewTerm):
./EnableAMFIDevMode 1
cat /tmp/amfi_devmode_poc.log
# Then REBOOT to activate Developer Mode

代替手段: LinuxからのCoreDevice / DVT起動(run_dvt.sh)

2つ目のIPA不要のパスが存在します: スタンドアロンIOKitバイナリをLinuxでクロスコンパイルし、iOS 17+のCoreDevice / RSDトンネル経由でデバイスにプッシュし、DVTプロセス制御サービスで実行します(App Sandbox外 — installdなし、フリー署名IPAなし)。

./run_dvt.sh enable      # build (clang + ld64.lld) → deploy → `dvt launch --stream`

run_dvt.shはチェーン全体を自動化します:

  1. usbmuxdを起動/検証し、ideviceinfo(libimobiledevice)でデバイスをチェック;
  2. poc/poc.cをベアarm64 Mach-Oにクロスコンパイル(Appleツールチェーンなし): clang -c → ld64.lld -platform_version ios … -syslibroot … -undefined dynamic_lookup; SDKバージョンはバイナリSDKSettings.plistからplistlib経由で読み取られます;
  3. ユーザースペースRSDトンネル(pymobiledevice3)を開き、dvt launch --streamを呼び出します。

ステータス: Linuxクロスコンパイルは動作します(実際のarm64 Mach-Oが生成されます)。オンデバイスへのデプロイ手順はまだWIPです — HANDOFF.mdの«Сессия 12»を参照。また、PoCのIOKitパス(AppleMobileFileIntegrity selector 11)はプラットフォーム制限付きentitlement com.apple.private.amfi.developer-mode-controlを必要とするため、Apple署名されていないバイナリはDVT経由で起動してもuserclientに拒否されることに注意してください — 開発者モードを有効化するサポートされた方法は、上記で文書化されたlockdownプロトコルです。


仕組み

アーキテクチャスライスごとに2つのクリーンなステップ(ld64.lldに委譲する際にclangドライバが-arch/-platform_versionを飲み込むのを回避):

  1. clang -c — Mach-Oオブジェクト、リンクなし
  2. ld64.lld — 明示的な-arch arm64 -platform_version ios <min> <sdk>を持つ実行ファイル

clang-20...15、ld64.lld/lld、llvm-lipo、ldidを自動検出。グレースフルフォールバック: ツールチェーンがptrauthサポートを欠く場合、arm64e → arm64。


リポジトリ構成

.
├── ipsws/                   # iOS firmware images (NOT versioned — multi-GB)
├── kernelcaches/            # Extracted kernelcaches (arm64e Mach-O)
├── extracted/               # RootFS dumps + entitlements scan
├── diff_output/             # Full markdown diff reports (KEXTS, DYLIBS, SANDBOX...)
├── research/                # CVE analysis, XNU source excerpts
├── docs/WHITEPAPER.md       # Full AMFI binary-diff whitepaper (iOS 27.0.1 → 27.2)
├── poc/                     # ★ PoC source + Linux build system
│   ├── poc.c                #   AMFI + ACM IOKit client (C99)
│   ├── stubs/iokit_stub.h   #   Minimal IOKit header for Linux syntax check
│   ├── entitlements.plist   #   Required entitlements for armSecurityBootMode
│   ├── build_ipa.sh         #   ★ Linux cross-compiler (clang + ld64.lld + ldid)
│   ├── syntax_check_linux.sh
│   ├── lockdown_devmode.py  #   Session 9: lockdown/AMFI dev-mode probes
│   ├── action_probe.py      #   ★ Real AMFI protocol {"action": N}
│   ├── state_check.py       #   ★ Full kernel-level status + mounter query
│   ├── verify_now2.py       #   Post-restart accept (action=2) + verification
│   ├── semantics_probe.py   #   lockbot KV-store semantics (set_value dead-end)
│   ├── spoof_test.py        #   DeveloperModeStatus spoof attempt (failed)
│   ├── probe_amfi_service.py
│   ├── final_verify.py
│   └── verify_now.py
├── run_dvt.sh               # ★ CoreDevice/DVT deploy (build + usbmuxd + RSD tunnel + launch)
├── tools/macho_tool.py      #   stdlib-only Mach-O arm64e disassembler (kernelcache RE)
├── HANDOFF.md               # Full session log (Russian + English)
└── README.md                # You are here

詳細解説

📄 完全版ホワイトペーパー → docs/WHITEPAPER.md — vnode_check_signatureのバイナリ差分、強制有効化されたデバッグブリッジ、IOExternalMethodDispatchテーブルのデコード、およびCVE-2025-43520(DarkSword)VFSレース分析。


環境変数オーバーライド

変数デフォルト説明
CLANG自動検出clangバイナリへのパス
IOS_SDK自動検出iPhoneOS.sdkへのパス
LD64自動検出ld64.lldリンカへのパス
LDID自動検出ldidへのパス(存在しない場合はスキップ → 未署名IPA)
MINIOS16.0最小iOSデプロイメントターゲット
SDKVERSDKから自動検出-platform_version用のSDKバージョン

研究を支援する 💎

ABrake27は17歳の独立系開発者によって作られています — Macハードウェアなし、企業資金なし、シリコンバレーの後ろ盾なし。 すべてのカーネル差分、すべてのディスパッチテーブルデコード、クロスコンパイラのすべての行は、寝室のLinuxラップトップから、カフェインと執念だけで書かれました。

ツールをダウンロード