Erosion-CN — iOSのMobileGestaltを安全に編集・研究できるSwift製ツール
Kianuni/Erosion-CN
★ 1,732 ・ Swift ・ GPL-3.0
概要
Erosion-CN は、iOS および iPadOS のシステム構成情報や MobileGestalt キャッシュの読み書きを安全に検証・研究するために開発されたツールボックスです。先行プロジェクトである「jailbreakdotparty/Erosion」から派生し、中国語と英語のバイリンガルインターフェースに対応するとともに、実機環境で発生する不具合への対策や、端末が起動不能になるトラブル(いわゆるリンゴループ)を防止するための安全機構が多数追加されています。
「worse_query」脆弱性・手法をベースとしており、システムファイルの Inode や所有権を維持しながら特定のスロットを書き換える機能を提供します。iOS の内部動作メカニズムや MobileGestalt キャッシュの構造解析を行いたいセキュリティ研究者や開発者に適したツールとなっています。
主な特徴
- 安全性を考慮した書き込み処理: システムファイルの Inode や所有権を維持するため、
pwriteおよびF_FULLFSYNCによるインプレース上書きを採用しています。適用前のプレビュー確認に加え、書き込み直後に全データを読み戻して検証し、不一致を検出した場合は自動でロールバックする機構を備えています。 - オフセットのハードコード排除: 固定のアドレス値(ハードコード)を使わず、実行時に端末内部の
libMobileGestalt.dylibを解析してCacheDataの該当スロットを動的に算出します。検証に失敗した場合は書き込みを即座にロックします。 - 型情報の保持と非キャッシュキーの除外: Plist 編集時に真偽値(Boolean)や浮動小数点(Float)の型情報を正確に保持し、未変更項目はそのまま通過させます。また、カメラ機能の不具合や不整合を防ぐため、iOS 27 の非キャッシュキーを不用意に注入しない設計となっています。
- 二重バックアップと復元機能: アプリサンドボックス内とシステム側の双方に SHA-256 ハッシュを用いた二重のバックアップを保持します。署名切れによってアプリを削除・再インストールした場合でもシステム側の金庫からバックアップを再取得でき、工場出荷時パラメータへ復元可能です。
- 地域制限の調査と補助ツール群: 中華圏向け端末(国行版)における Apple Intelligence、FaceTime オーディオ、eSIM などの機能制御パラメータの検証機能のほか、アプリのバックアップ、キャッシュ削除、コンテナを跨いだファイルブラウジング、Surge や Stash 向けプロキシ分流ルールのエクスポート機能が実装されています。
使い方
README では、アプリのインストールと実行に必要な前提条件や手順が解説されています。本ツールは最低1つの有効な App Group コンテナ権限に依存するため、適切な署名ツールを使用してサイドロードする必要があります。
導入手順
- リポジトリの Releases ページより、最新の IPA パッケージ(例:
Erosion_v0.9.1_Bilingual.ipa)をダウンロードします。 - App Group の注入や保持に対応した個人 Apple ID 署名ツール(SideStore、AltStore、Feather、Sideloadly、Impactor、iLoader など)、または開発者証明書を用いて実機にインストールします。
- アプリを起動し、ホーム画面のログ表示で App Group が正常に認識されていることを確認します。
なお、操作の前には必ず PC 経由で端末の完全なバックアップを取得することが強く推奨されています。
技術的なポイント
Erosion-CN は Swift で記述されており、低レイヤーのファイル操作やシステムライブラリ解析を組み合わせた堅牢な設計が特徴です。
システムファイルに対する書き込みでは、ファイルを新規作成して置き換える手法をとるとファイル属性や所有者が変わってしまうリスクがあります。これを回避するため、ファイル記述子に対して pwrite を用いて必要な領域のみを原位置で書き換え、fcntl(fd, F_FULLFSYNC) によって確実にストレージへ永続化しています。
また、iOS の内部キャッシュである MobileGestalt(CacheData)を扱う際、OS バージョンやビルドごとに内部構造のオフセットが変動する問題があります。本ツールでは、実行時に実機の libMobileGestalt.dylib を直接パースしてキーに対応するスロット番号(例: green-tea、wapi 等)を動的に計算するアプローチをとっており、誤った位置への不正な上書きを未然に防ぐ仕組みが組み込まれています。
さらに、SHA-256 による整合性検証付きバックアップ機構をサンドボックス外の領域(システム保護ストレージ)にも配置することで、サイドロードアプリ特有の「7日ごとの再署名によるアンインストール」が発生してもバックアップデータが消失しない冗長性を確保しています。
注意点
- ライセンス: 本リポジトリのライセンスは GNU General Public License v3.0(GPL-3.0)です。
- 対応環境:
- iOS / iPadOS 27.0 – 27.2.1、および 27.3 beta 1 において、MobileGestalt の読み込みと安全な書き込みを含む全機能が動作します。
- iOS / iPadOS 26.0 – 26.7.2 では、サンドボックス制限により MobileGestalt への書き込みには対応しておらず、壁紙やファイルブラウジングなどの一部機能のみの提供となります。
- README によると、基盤となる
worse_query手法は 27.3 beta 2 以降では動作が保証されていないため、自動アップデートを停止するよう案内されています。
- 利用上のリスク: システムの低レイヤー設定を直接変更する操作を伴うため、設定内容や端末状態によってはブートループや通信・機能の不具合が生じる危険性があります。README では、重要なデータの事前バックアップと、自身が所有する検証用端末での自己責任での使用が求められています。
まとめ
Erosion-CN は、iOS の MobileGestalt キャッシュを安全かつ確実に検証できるように設計された研究向けツールです。ハードコードの排除、整合性検証、二重バックアップなどの安全機構が充実しており、低レイヤーのシステム仕様を調査する開発者にとって実用的なリファレンス実装となっています。





