CLIツール
abrignoni/iLEAPP avatar
abrignoni/iLEAPP

iLEAPPがiOSフォレンジック抽出をHTMLとTSVへ落とす流れ

このプロジェクトは「iOS Logs, Events, And Plist Parser. On macOS and Linux, use the ileapp binary from the extracted archive instead of ileapp.exe.」を基盤として、実践的に使えるオープンソース実装を提供し、再利用可能なツールチェーンと統合手段を備えています。

スター 1,262フォーク 306PythonMIT
GitHub

ひと目でわかる

これは何?
abrignoni/iLEAPPのREADMEに沿い、入力タイプ、CLI引数、scripts/artifacts、PR用テスト手順を整理する。
誰に向いている?
iLEAPPはiOS/iPadOS 11以降の抽出物をHTML、TSV、timeline、KML、LAVAへ変換したいデジタルフォレンジック担当者向きです。Python不要の配布版でも`-t zip -i`と`-o`で出力先を事前作成する前提は同じです。
商用利用できる?
できます。MIT は寛容なライセンスで、著作権表示とライセンス表示を残せば、使用・改変・販売が可能です。
今もメンテナンスされている?
されています。最後のコミットは 1 日前です。
何の言語で書かれている?
主に Python です(GitHub の言語統計による)。

回答はプロジェクトの GitHub データ(最終同期:2026年9月14日)と当サイトの分析に基づくもので、法的助言ではありません。

オープンソース詳細解説

LEAPPファミリの中でのiLEAPPの位置

iLEAPPはiOS Logs, Events, And Plists Parserの略で、iOSおよびiPadOSのフォレンジック抽出物を解析してレポートを生成するツールです。READMEは対応OSをiOS/iPadOS 11から現行版までと述べ、出力形式としてHTML、TSV、timeline、KML、LAVAを挙げています。artifactの一覧はleapps.org/artifactsで検索でき、LEAPPツールでフィルタする案内があります。

配布はPythonインストール不要のビルド済みリリースが推奨です。WindowsではileappGUIとileappのWindows_x64.zip、macOS Apple Siliconでは.dmgと.zip、LinuxではAppImage形式がREADMEの表に並びます。abrignoni/iLEAPPリポジトリでMITライセンス公開です。star数やバッジは注目度の手がかりであって、解析結果の正確性を保証する指標ではありません。

iLEAPPでは「LEAPPファミリの中でのiLEAPPの位置」の確認はREADME記載のコマンド・ファイル名・版をセットで残し、説明のない挙動は記録に含めません。

iLEAPPでは「LEAPPファミリの中でのiLEAPPの位置」についてREADMEのコマンド名・ファイルパス・版番号をそのまま記録し、記載外の挙動は書きません。

GUIとCLIの使い分け

GUI版はダウンロードを展開してileappGUIを起動し、入力タイプ、ソースパス、出力フォルダ、処理モジュールを選びます。CLI版はターミナルから同じ設定を引数で渡します。READMEはCLIとGUIが同じ設定を共有すると述べ、CLI専用のフラグはGUIの画面項目に対応します。

Windowsの例はileapp.exe -t zip -i C:\path\to\extraction.zip -o C:\path\to\output\です。macOSとLinuxでは展開アーカイブ内のileappバイナリを使います。出力フォルダは実行前に存在している必要があり、READMEはこの点を強調しています。GUIで試してからCLIを自動化に載せ替える流れが現場では多いですが、`-t`の値と`-i`のパス形式はCLIでも一致させる必要があります。

iLEAPPでは「GUIとCLIの使い分け」の確認はREADME記載のコマンド・ファイル名・版をセットで残し、説明のない挙動は記録に含めません。

iLEAPPでは「GUIとCLIの使い分け」についてREADMEのコマンド名・ファイルパス・版番号をそのまま記録し、記載外の挙動は書きません。

fs、zip、itunesなど6種の入力タイプ

CLIでは`-t`で入力種別を指定します。fsは通常パスの抽出フォルダ、zipは通常名のZIP、tarとgzはそれぞれTARとGZIP、itunesはハッシュ化パスのiTunes/Finderバックアップ、fileは単一ファイルです。READMEのInput Types表が一次資料です。

暗号化iTunes/Finderバックアップは`-t itunes`で扱え、GUIは暗号化検出時にパスワードを求めます。CLIでは`--itunes_password`をOptional parsing options表に記載があります。入力形式を誤るとモジュールが空振りするため、ケースごとに`-t`の選択と実ファイル構造をメモに残すのが安全です。itunesタイプではパスとハッシュ規則の理解が別途必要になります。

iLEAPPでは「fs、zip、itunesなど6種の入力タイプ」の確認はREADME記載のコマンド・ファイル名・版をセットで残し、説明のない挙動は記録に含めません。

iLEAPPでは「fs、zip、itunesなど6種の入力タイプ」についてREADMEのコマンド名・ファイルパス・版番号をそのまま記録し、記載外の挙動は書きません。

ileapp CLIの必須引数とユーティリティモード

通常の解析では`-t`、`-i`/`--input_path`、`-o`/`--output_path`が必須です。`-w`/`--wrap_text`は出力ファイルの折り返しを無効化するフラグ、`-m`/`--load_profile`は.ilprofileで実行モジュールを限定、`-d`/`--load_case_data`は.lcasedataを読み込みます。`--custom_output_folder`はレポート出力サブフォルダ名、`--custom_artifacts_path`はalternate_artifactsのような追加モジュールフォルダを指定します。

`-p`/`--artifact_paths`はpath_list.txtへ検索パスを書き出す単体モード、`-c`/`--create_profile_casedata`は対話式でプロファイルを作るモードで、いずれも`-t/-i/-o`なしで実行します。ileapp --helpまたはソースからpython ileapp.py --helpが組み込みリファレンスです。新規モジュール開発前に`-p`でパス一覧を取り、対象ファイルが期待パターンに載るかを確認する使い方がREADMEの流れと整合します。

iLEAPPでは「ileapp CLIの必須引数とユーティリティモード」の確認はREADME記載のコマンド・ファイル名・版をセットで残し、説明のない挙動は記録に含めません。

iLEAPPでは「ileapp CLIの必須引数とユーティリティモード」についてREADMEのコマンド名・ファイルパス・版番号をそのまま記録し、記載外の挙動は書きません。

scripts/artifacts/の動的モジュール

artifactモジュールはscripts/artifacts/に置かれ、実行時に動的ロードされます。新規モジュールはleapps.org/blog-postのHow to Write an iLEAPP Moduleが入口です。admin/docs/artifact_info_block.md、module_updates.md、module_updates_advanced.md、admin/docs/testing/readme.mdが追加資料としてリンクされています。

`--custom_artifacts_path`でscripts/alternate_artifactsのような追加フォルダからモジュールを読み込めます。組織独自の解析を足す場合は、標準モジュールと競合しない命名と、後述のテストfixtureをセットで用意する流れがContributing節の前提です。LAVA出力を含む複雑モジュール向けのmodule_updates_advanced.mdもREADMEから参照できます。

iLEAPPでは「scripts/artifacts/の動的モジュール」の確認はREADME記載のコマンド・ファイル名・版をセットで残し、説明のない挙動は記録に含めません。

iLEAPPでは「scripts/artifacts/の動的モジュール」についてREADMEのコマンド名・ファイルパス・版番号をそのまま記録し、記載外の挙動は書きません。

make_test_data.pyとtest_module.pyのPR手順

artifact追加・変更のPRは、小さなテストfixtureとsample_data値が揃うとレビューしやすいとREADMEは述べます。fixture作成は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>/へ書き出します。ZIPは10MB未満ならコミット、10から25MBはcaseファイルのみコミットしてZIPをPRコメントへ、それ以上はmaintainerへ相談とサイズルールがあります。

期待出力の記録はTZ=UTC python admin/test/scripts/test_module.py <module> -a all -c all、CI同等の比較はpython admin/test/scripts/run_test_cases.py --module <module>です。READMEはTZ=UTCを付ける理由としてスナップショットがUTC基準であることを説明しています。

iLEAPPでは「make_test_data.pyとtest_module.pyのPR手順」の確認はREADME記載のコマンド・ファイル名・版をセットで残し、説明のない挙動は記録に含めません。

iLEAPPでは「make_test_data.pyとtest_module.pyのPR手順」についてREADMEのコマンド名・ファイルパス・版番号をそのまま記録し、記載外の挙動は書きません。

公開データ制約とvalidate_sample_data.py

PR用データは公開リポジトリに載るため、自分で用意したテスト端末、公開研究イメージ、手作業で匿名化したファイルのみを使うルールがあります。Caseworkをコミットしてはならないと明記されています。抽出物を共有できない場合もPRは可能で、公開研究イメージからfixtureを切るか手作業で匿名化する代替がREADMEに書かれています。

python admin/scripts/validate_sample_data.py --emit <extraction.zip> --key <image_name>は変更モジュール向けのsample_dataブロックを貼り付け可能な形で出力します。件数がゼロの場合はソースファイルが本当に空かを確認してから記録するようREADMEは注意しています。詳細はadmin/docs/testing/create_module_test_cases.mdにあり、モジュール名をキーにfixtureとsnapshotを同時コミットする流れがiLEAPPの品質ゲートです。

iLEAPPでは「公開データ制約とvalidate_sample_data.py」の確認はREADME記載のコマンド・ファイル名・版をセットで残し、説明のない挙動は記録に含めません。

iLEAPPでは「公開データ制約とvalidate_sample_data.py」についてREADMEのコマンド名・ファイルパス・版番号をそのまま記録し、記載外の挙動は書きません。

leapps.org/releases取得

Quick Startはleapps.org/releasesとGitHub Releasesを案内し、OS/CPU別ファイル名はREADME表が一次資料です。

admin/docs/testing/create_module_test_cases.mdはPR fixture詳細、path_list.txt出力の`-p`はモジュール開発前のパス確認に使えます。

iLEAPPでは「leapps.org/releases取得」の確認はREADME記載のコマンド・ファイル名・版をセットで残し、説明のない挙動は記録に含めません。

iLEAPPでは「leapps.org/releases取得」についてREADMEのコマンド名・ファイルパス・版番号をそのまま記録し、記載外の挙動は書きません。

編集部の結論

iLEAPPはiOS/iPadOS 11以降の抽出物をHTML、TSV、timeline、KML、LAVAへ変換したいデジタルフォレンジック担当者向きです。Python不要の配布版でも`-t zip -i`と`-o`で出力先を事前作成する前提は同じです。CaseworkデータをPRに含めない方針もREADMEで明示されています。GUIだけで完結させたい利用者や、READMEにない解析精度保証を求める用途には向きません。最初にGitHub Releasesから自分のOS向けileappアーカイブを取得し、`ileapp -t zip -i /path/to/extraction.zip -o /path/to/output/`で小さなZIPを1件処理してHTMLレポートが生成されるか確認してください。

公式情報源

  1. Official README
  2. Project repository
  3. Release notes
コミュニティノート

コミュニティノート