
iLEAPP v2026.3.3
iOSおよびiPadOSのフォレンジック抽出データをHTML、TSV、タイムライン、KML、LAVAレポートに解析し、モジュール式のアーティファクト検出と暗号化されたiTunesバックアップをサポートします。

iOS Logs, Events, And Plists Parser
iLEAPPはiOSおよびiPadOSのフォレンジック抽出データを解析し、HTML、TSV、タイムライン、KML、LAVA出力を生成します。iOS/iPadOS 11から現在のバージョンまでをサポートしています。
検索可能な全アーティファクト一覧はleapps.org/artifactsで閲覧できます(LEAPPツールでフィルタリング可能)。
クイックスタート(推奨)
ビルド済みリリースをダウンロードしてください — Pythonのインストールは不要です。
- LEAPPs Releases — LEAPPファミリーの全ツールを閲覧
- iLEAPP GitHub Releases — 直接ダウンロード
| プラットフォーム | GUI | CLI |
|---|---|---|
| Windows (Intel) | ileappGUI-v*-Windows_x86_64.zip | ileapp-v*-Windows_x86_64.zip |
| Windows (ARM) | ileappGUI-v*-Windows_arm64.zip | ileapp-v*-Windows_arm64.zip |
| macOS (Apple Silicon) | ileappGUI-v*-macOS_Apple_Silicon.dmg | ileapp-v*-macOS_Apple_Silicon.zip |
| macOS (Intel) | ileappGUI-v*-macOS_Mac_Intel.dmg | ileapp-v*-macOS_Mac_Intel.zip |
| Linux (Intel) | ileappGUI-v*-Linux_x86_64.AppImage | ileapp-v*-Linux_x86_64.AppImage |
| Linux (ARM) | ileappGUI-v*-Linux_arm64.AppImage | ileapp-v*-Linux_arm64.AppImage |
GUI — ダウンロードしたファイルを展開し、ileappGUIを実行してから、入力タイプ、ソースパス、出力フォルダ、処理するモジュールを選択します。
CLI — ダウンロードしたファイルを展開し、ターミナルから実行します。出力フォルダは事前に存在している必要があります。
ileapp.exe -t zip -i C:\path\to\extraction.zip -o C:\path\to\output\
macOSおよびLinuxでは、ileapp.exeの代わりに展開したアーカイブ内のileappバイナリを使用してください。
入力タイプ
| タイプ | 説明 |
|---|---|
fs | 通常のパスと名前を持つ展開済みファイルのフォルダ |
zip | 通常の名前を持つファイルを含むZIPアーカイブ |
tar | 非圧縮またはxz圧縮のTARアーカイブ(.tar.xz) |
gz | GZIP圧縮アーカイブ |
itunes | ハッシュ化されたパスと名前を持つiTunes/Finderバックアップフォルダ |
file | 単一ファイル入力 |
暗号化されたiTunes/Finderバックアップ(-t itunes)をサポートしています。暗号化が検出されると、GUIは処理前にパスワードを要求します。CLIでは、--itunes_passwordでパスワードを渡します(下記のオプションの解析オプションを参照)。
CLI引数
これらのオプションはCLIビルド(ileapp / ileapp.exe / python ileapp.py)にのみ適用されます。GUI(ileappGUI)は、コマンドラインフラグの代わりに同じ設定をインターフェース経由で公開しています。
組み込みのリファレンスについては、ileapp --help(またはソースからpython ileapp.py --help)を実行してください。
ケースの解析
通常の解析実行には、次の3つの引数が必須です:
| 引数 | ロング形式 | 説明 |
|---|---|---|
-t | 入力タイプ: fs、tar、zip、gz、itunes、またはfile | |
-i | --input_path | 入力ファイルまたはフォルダへのパス |
-o | --output_path | 出力フォルダへのパス(事前に存在している必要があります) |
例:
ileapp -t zip -i /path/to/extraction.zip -o /path/to/output/
オプションの解析オプション
| 引数 | ロング形式 | 説明 |
|---|---|---|
-w | --wrap_text | このフラグを渡すと、出力ファイルのテキスト折り返しを無効化します |
-m | --load_profile | 実行するモジュールを制限するiLEAPPプロファイルファイル(.ilprofile)へのパス |
-d | --load_case_data | LEAPPケースデータファイル(.lcasedata)へのパス |
--custom_output_folder | レポート出力サブフォルダのカスタム名 | |
--custom_artifacts_path | アーティファクトモジュールを読み込む追加フォルダ(例: scripts/alternate_artifacts) | |
--html_row_limit | この行数を超えると、アーティファクトのテーブルはHTMLページに記載されず、代わりにLAVAデータベースとTSVエクスポートを参照するようになります。デフォルトは50000、0を指定するとすべてのテーブルを書き出します。GUIはデフォルト値を使用します | |
--itunes_password |
スタンドアロンユーティリティモード
これらのモードはケースを解析しません。-t、-i、-oを付けずに、単独で使用してください:
| 引数 | ロング形式 | 説明 |
|---|---|---|
-p | --artifact_paths | すべてのアーティファクト検索パスをカレントディレクトリのpath_list.txtに書き出します |
-c | --create_profile_casedata | 指定したフォルダに.ilprofileまたは.lcasedataファイルを作成する対話型ウィザード |
例:
ileapp -p
ileapp -c /path/to/output/folder/
コントリビューション
アーティファクトモジュールはscripts/artifacts/にあり、実行時に動的に読み込まれます。
新しいモジュール: How to Write an iLEAPP Moduleのステップバイステップガイドから始めてください。
その他の参考資料:
- Artifact Info Block Structure
- Updating Modules for Automatic Output Generation
- Updating Complex Modules to Include LAVA Output
- Testing Modules
PR用のテストデータとsample_data
アーティファクトを追加または変更するPRは、次の2つを伴っているとレビューとマージが最も簡単です: 実際の抽出データから切り出した小さなテストフィクスチャと、モジュールが生成した内容を記録するsample_dataの値です。スクリプトが両方を生成します。以下が全体の流れです。
何よりも先に1つのルール: ここでコミットしたものはすべて公開されます。自分でデータを投入したテストデバイス、公開研究用イメージ、手作業でサニタイズしたファイルなど、共有が許可されているデータのみを使用してください。実際の事件データは決して使用しないでください。
1. 抽出データからフィクスチャを切り出す
python admin/test/scripts/make_test_data.py <module> --case 1 --input <extraction.zip>
これは、モジュールのpathsパターンに一致するファイルを抽出データから取り出し、ケースファイルadmin/test/cases/testdata.<module>.jsonと、admin/test/cases/data/<module>/配下にアーティファクトごとに1つの小さなzipを書き出します。
サイズ規則: zipあたり10 MB未満の場合は、PRと一緒にコミットしてください。10〜25 MBの場合は、ケースファイルをコミットし、zipをPRコメントに添付してください。それより大きい場合は、PRでその旨を伝えれば、メンテナが受け渡しを手配します。
2. 期待される出力を記録する
TZ=UTC python admin/test/scripts/test_module.py <module> -a all -c all
これはフィクスチャに対してモジュールを実行し、出力のスナップショットをadmin/test/results/<module>/配下に書き出します。スナップショットもコミットしてください。これはマージ後にモジュールを保護するベースラインとなります。TZ=UTCの部分はそのままにしてください: コミットされるスナップショットはUTCであり、CIもUTCで実行されます。
3. CIが実行するのと同じ比較を実行する
python admin/test/scripts/run_test_cases.py --module <module>
4. sample_dataの値を生成する
python admin/scripts/validate_sample_data.py --emit <extraction.zip> --key <image_name>
これは抽出データに対してiLEAPPをエンドツーエンドで実行し、ブランチで変更されたモジュール用の、貼り付け可能なsample_dataブロックを出力します。それらをモジュールの__artifacts_v2__に貼り付け、イメージで確認したアプリ名とバージョンを追加してください。カウントがゼロの場合は、記録する前にソースファイルが本当に空であることを確認してください。
5. すべてをコミットしてPRを開く
モジュール、ケースファイル、フィクスチャzip、記録したスナップショットをまとめてコミットしてください。詳細はadmin/docs/testing/create_module_test_cases.mdにあります。
抽出データを共有できない場合は、その旨を伝えた上でPRを開いてください。多くの場合、代わりに公開研究用イメージからフィクスチャを切り出すことができ、あるいは実際のファイルを手作業でサニタイズすることもできます。それを解決する間もレビューは止まりません。
ソースからの実行
リリースはiLEAPPを実行する最も簡単な方法です。モジュールを開発している場合や、mainの未リリースの変更が必要な場合はソースを使用してください。
要件
- Python 3.10〜3.14
- Git
セットアップ
git clone https://github.com/abrignoni/iLEAPP.git
cd iLEAPP
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
Linuxでは、GUI用にtkinterをインストールしてください:
sudo apt-get install python3-tk
HexordiaによるWindowsセットアップのヘルプ:
使用方法
出力フォルダは実行前に存在している必要があります。ソースビルドは、公式リリースビルドと区別するために-devバージョン(例: 2.6.0-dev.0)を報告します。
CLI:
python ileapp.py -t zip -i /path/to/extraction.zip -o /path/to/output/
python ileapp.py -t raw -i /path/to/acquisition.E01 -o /path/to/output/
rawはディスクイメージ(.img、.dd、.bin、または分割セットの番号付き.001セグメント)、あるいはEnCase/EWFの.E01取得データとその隣接セグメントを、その場で読み取ります: マウントも管理者権限も不要です。そのNTFS、FAT32、exFAT、ext2/3/4、F2FS、HFS+、APFS、QNX6、QNX4、ETFS、EFS、SquashFS、JFFS2、UBI/UBIFS、YAFFS、QNX IFSボリュームは直接検索され、アーティファクトが要求するファイルのみがイメージから読み出されます。GUIはこれらの拡張子に対して自動的にrawを選択します。admin/docs/raw_image_input.mdを参照してください。
tarはxz圧縮のtar(.tar.xz)も読み取り、GUIはその拡張子に対してtarを選択します。.tar.gzを含む圧縮tarは、ファイルが読み取られる前に一度レポートフォルダへ展開されるため、実行には非圧縮tar用の空き容量がそこに必要です。コピーは実行終了時に削除され、実行ログにそのステップにかかった時間が記録されます。
GUI:
python ileappGUI.py
上記のCLI引数を参照するか、python ileapp.py --helpを実行してください。
謝辞
このトリアージツールは、DFIRコミュニティの多くの人々の協力の成果です。
iLEAPPのロゴはDerek Eiri氏の提供によるものです。