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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/blackberry/pe_tree
メモリフォレンジック脆弱性分析リバースエンジニアリングデバッガフォレンジックマルウェア分析デジタルフォレンジックバイナリ解析Archived
GitHubblackberry/pe_tree

pe_tree

Portable Executable (PE)ファイルをpefileとPyQt5を使用してツリービューで表示するためのPythonモジュール。IDA ProやRekallと併用して、メモリ内のPEファイルをダンプし、インポートを再構築することも可能です。

リポジトリを見る
1.3k17384年前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

PE Tree

PE Treeは、pefileとPyQt5を使用してPortable Executable (PE) ファイルをツリービューで表示するためのPythonモジュールです。 また、IDA Pro、Ghidra、Volatility、Rekall、minidumpと組み合わせて、メモリ内のPEファイルの表示、ダンプ、およびインポートテーブルの再構築を行うこともできます。

目次

  1. 機能
  2. アプリケーション
    • 要件
    • 機能
    • インストール
      • Windows
      • Mac/Linux
      • 開発者向け
    • 使用方法
    • ダークモード
  3. IDAPython
    • 要件
    • 機能
    • インストール
      • setuptoolsを使用
      • 手動インストール
      • 開発者向け
    • 使用方法
    • 例
      • メモリ内PEファイルのダンプ
  4. Rekall
    • 要件
    • 機能
    • インストール
    • 使用方法
  5. Volatility
    • 要件
    • 機能
    • インストール
    • 使用方法
  6. Ghidra
    • 要件
    • 機能
    • インストール
    • 使用方法
  7. Minidump
    • 要件
    • 機能
    • インストール
    • 使用方法
  8. 設定
    • 概要
    • オプション
    • 場所
    • サードパーティとのデータ共有
  9. トラブルシューティング
  10. 貢献
    • 開発者向けドキュメント
  11. ライセンス

機能

  • 以下のプラグインを備えたスタンドアロンアプリケーション:
    • IDA Pro
    • Ghidra
    • Volatility
    • Rekall
    • Minidump
    • カービング
  • Windows、Linux、Macをサポート
  • 以下のPEファイルおよびメモリイメージを解析:
    • ファイルシステム
    • ZIPアーカイブ (パスワード保護対応)
    • Windowsメモリダンプ (raw, EWF, vmemなど)
    • 動作中のWindowsメモリ (rekall使用)
    • Windows Minidump
    • IDA Proデータベース
    • Ghidraデータベース
    • バイナリファイルカービング
  • レインボーPEマップ:
    • PE構造、サイズ、ファイル内の位置を高レベルで概観
    • PEサンプルの迅速な視覚的概要と比較が可能
  • 以下のPEヘッダをツリービューで表示:
    • MZヘッダ
    • DOSスタブ
    • Richヘッダ
    • NT/File/Optionalヘッダ
    • データディレクトリ
    • セクション
    • インポート
    • エクスポート
    • デバッグ情報
    • ロードコンフィグ
    • TLS
    • リソース
    • バージョン情報
    • 証明書
    • オーバーレイ
  • 以下からデータを抽出・保存:
    • DOSスタブ
    • セクション
    • リソース
    • 証明書
    • オーバーレイ
    • CyberChefにエクスポートしてさらに操作
  • VirusTotal検索:
    • ファイルハッシュ
    • PDBパス
    • タイムスタンプ
    • セクションハッシュ/名前
    • インポートハッシュ/名前
    • エクスポート名
    • リソースハッシュ
    • 証明書シリアル
  • メモリからロードされたPEイメージをダンプ:
    • セクションポインタとサイズを修正
    • PEヘッダを修正:
      • 不要なデータディレクトリポインタを削除
      • PEチェックサムを再計算
      • エントリポイントを更新
    • 以下を使用してインポートアドレステーブル/インポートディレクトリテーブル(IAT/IDT)を再構築:
      1. 既存のIAT/IDTを使用
      2. 既存のIATからIDTを再構築
      3. 逆アセンブリからIATとIDTを再構築(IDA Pro、Ghidra、capstoneを使用)

アプリケーション

PE Treeスタンドアロンアプリケーションは、ファイル、フォルダ、ZIPアーカイブからポータブル実行可能ファイルを見つけます。

PE Tree standalone application

要件

  • Python 3.5+

機能

  • PEファイルのファイル・フォルダスキャン
  • ZIPアーカイブからのPEファイル抽出(infectedを含むパスワード保護対応)
  • バイナリファイルからのPEファイルカービング
  • VA/RVAをダブルクリックしてcapstoneで逆アセンブル
  • 16進ダンプ

インストール

pipを使用(推奨)

新しい仮想環境とpipを使用してGitHubから直接インストール:

Windows
root@kitploit:~
> virtualenv env
> env\Scripts\activate
> pip install --upgrade pip
> pip install git+https://github.com/blackberry/pe_tree.git
Mac/Linux
root@kitploit:~
$ python3 -m venv env
$ source ./env/bin/activate
$ pip install --upgrade pip
$ pip install git+https://github.com/blackberry/pe_tree.git

開発者向け

リポジトリをクローンして開発用にセットアップ:

Windows
root@kitploit:~
> git clone https://github.com/blackberry/pe_tree.git
> cd pe_tree
> virtualenv env
> env\Scripts\activate
> pip install -e .
Mac/Linux
root@kitploit:~
$ git clone https://github.com/blackberry/pe_tree.git
$ cd pe_tree
$ python3 -m venv env
$ source ./env/bin/activate
$ pip install -e .

使用方法

PE Treeを実行して、ファイル、フォルダ、ZIPアーカイブ内のポータブル実行可能ファイルをスキャン:

root@kitploit:~
$ pe-tree -h
usage: pe-tree [-h] [filenames [filenames ...]]

PE-Tree

positional arguments:
  filenames   Path(s) to file/folder/zip

optional arguments:
  -h, --help  show this help message and exit

PE Treeを実行して、バイナリファイルからポータブル実行可能ファイルをカービングする:

root@kitploit:~
$ pe-tree-carve -h
usage: pe-tree-carve [-h] filename

PE-Tree (Carve)

positional arguments:
  filename    Path to file to carve

optional arguments:
  -h, --help  show this help message and exit

ダークモード

ダークモードはQDarkStyleをインストールすることで有効化:

root@kitploit:~
$ pip install qdarkstyle

IDAPython

PE Tree IDAPythonプラグインは、IDAデータベース内のポータブル実行可能ファイルを見つけます。

PE Tree IDAPython plugin

要件

  • IDA Pro 7.0+ (Python 2.7)
  • IDA Pro 7.4+ (Python 2.7または3.5+)

機能

  • PEファイル構造の簡単なナビゲーション
  • PE Tree内のメモリアドレスをダブルクリックして IDA-view または hex-view で表示
  • IDB内のメモリ内PEイメージを検索し、以下を実行:
    • インポート(IAT + IDT)の再構築
    • 再構築したPEファイルのダンプ
    • IDB内のPEファイル構造への自動コメント追加
    • IDB内のIATオフセットへの自動ラベル付け

インストール

IDAPythonプラグインとしてインストールして実行するには、setuptoolsを使用するか手動でインストールします。

setuptoolsを使用

  1. pe_treeをダウンロードし、IDAが使用するグローバル Pythonインタプリタ用にインストール:

    root@kitploit:~
    $ git clone https://github.com/blackberry/pe_tree.git
    $ cd pe_tree
    $ python setup.py develop --ida
    
  2. pe_tree_ida.py を IDAプラグインフォルダ にコピー

手動インストール

  1. pe_treeをダウンロードし、IDAが使用するグローバル Pythonインタプリタ用に要件をインストール:

    root@kitploit:~
    $ git clone https://github.com/blackberry/pe_tree.git
    $ cd pe_tree
    $ pip install -r requirements.txt
    
  2. pe_tree_ida.py と ./pe_tree/ の内容を IDAプラグインフォルダ にコピー

開発者向け

プラグインとしてインストールせずに、IDA上でスクリプトとして実行する場合、まずpe_treeパッケージの要件をグローバル Pythonインストール用にインストール:

root@kitploit:~
$ pip install -r requirements.txt

その後、IDA上で pe_tree_ida.py を実行:

File -> Script file... -> pe_tree_ida.py -> Open

IDAプラグインフォルダ

OSプラグインフォルダ
Windows%ProgramFiles%\IDA Pro 7.X\plugins
Linux/opt/ida-7.X/plugins
Mac~/.idapro/plugins

使用方法

  1. IDA Proを起動し、PEファイルを逆アセンブル(最良の結果を得るためには常にManual LoadとLoad Resourcesを選択!)

  2. PE Treeプラグインをロード:

    Edit -> Plugins -> PE Tree

例

メモリ内PEファイルのダンプ

以下は、パックされたPEファイル(例: MPRESS または UPX)をダンプし、インポートを再構築する基本的な手順(イメージベース/エントリポイントが標準的であると仮定):

  1. IDA Proを起動し、MPRESSまたはUPXでパックされたPEファイルを逆アセンブル(Manual LoadとLoad Resourcesを選択)

  2. デバッガ(WindowsまたはBochs)を選択し、OEP(通常0x00401000ですが、常にそうとは限りません!)まで実行

  3. この時点で、メモリスナップショットを取得し(すべてのセグメントを保存)、後で使用するためにIDBを保存する

  4. IDAがすべてのコードを見つけたことを確認:

    Options -> General -> Analysis -> Reanalyze program

  5. PE Tree IDAPythonプラグインを開き、右側のペインで右クリックして次を選択:

    Add PE -> Search IDB

    これにより、IDB内のMZ/PEヘッダがスキャンされ、見つかったモジュールが表示されます。

  6. HEADER-0x00400000(または適切なモジュール名)を右クリックし、Dump... を選択

  7. AddressOfEntryPoint(通常は0x1000ですが、常にそうとは限りません!)を指定

  8. Rebuild IDT/IAT が選択されていることを確認

  9. ダンプ!

新しい実行可能ファイルは、メモリ/IDBから取得したアンパック済みセクションデータを使用して作成され、再構築されたIAT、ヒントネームテーブル、IDTを含む .pe_tree という新しいセクションがPEファイルに追加されます(.idataセクションと同様)。エントリポイントメモリセグメントが実行中に書き込み可能としてマークされていた場合(VirtualProtectなど)、エントリポイントセクションの特性も書き込み可能としてマークされます。最後に、BASERELOC、BOUND_IMPORT、SECURITYの各データディレクトリがnullにマークされ、OPTIONAL_HEADERのチェックサムが再計算されます(指定されている場合)。

上記の方法を使用すると、アンパック、インジェクション、リフレクティブロード、ホローイングなどが行われたメモリ内の多くのPEファイルをダンプすることができます。

Rekall

PE Tree Rekallプラグインは、Windowsメモリダンプ内のポータブル実行可能ファイルを見つけます。

PE Tree Rekall plugin

要件

  • Python 3+

機能

  • Windowsメモリダンプまたはライブシステムに対して動作
  • 以下のPEモジュールを表示、ダンプ、再構築:
    • アクティブプロセスとDLL
    • ロードされたカーネルモードドライバ

インストール

  1. GitHubからRekallをインストール。
  2. 同じ仮想環境下にPE Treeスタンドアロンアプリケーションをインストール(インストールを参照)。

使用方法

Rekallを実行し、ライブシステム上のアクティブなプロセス、DLL、ドライバを表示:

root@kitploit:~
$ rekall --live Memory
[1] Live (Memory) 00:00:00> run -i pe_tree_rekall.py

または、既存のメモリダンプに対してRekall/PE Treeを実行:

root@kitploit:~
$rekall -f memory.vmem
[1] memory.vmem 00:00:00> run -i pe_tree_rekall.py

Volatility

PE Tree Volatilityプラグインは、Windowsメモリダンプ内のポータブル実行可能ファイルを見つけます。

PE Tree Volatility plugin

要件

  • Python 3.5+

機能

  • Windowsメモリダンプに対して動作
  • 以下のPEモジュールを表示、ダンプ、再構築:
    • アクティブプロセスとDLL
    • ロードされたカーネルモードドライバ

インストール

  1. GitHubからVolatility3をインストール。
  2. 同じ仮想環境下にPE Treeスタンドアロンアプリケーションをインストール(インストールを参照)。

使用方法

root@kitploit:~
$ pe-tree-vol -h
usage: pe-tree-vol [-h] filename

PE-Tree (Volatility)

positional arguments:
  filename    Path to memory dump

optional arguments:
  -h, --help  show this help message and exit

Ghidra

PE Tree Ghidraプラグインは、Ghidraデータベース内のポータブル実行可能ファイルを見つけます。

PE Tree Ghidra plugin

要件

  • Python 3.5+
  • Ghidra Bridge

機能

  • PEファイル構造の簡単なナビゲーション
  • PE Tree内のメモリアドレスをダブルクリックしてGhidraの逆アセンブル/hexビューで表示
  • インポート(IAT + IDT)の再構築
  • 再構築したPEファイルのダンプ

インストール

  1. PE Treeをインストール(インストールを参照)
  2. Ghidra Bridgeをインストール

使用方法

  1. Ghidra Bridgeサーバーを起動
  2. PE Tree Ghidraプラグインを実行
root@kitploit:~
$ pe-tree-ghidra -h
usage: pe-tree-ghidra [-h] [--server SERVER] [--port PORT]

PE-Tree (Ghidra)

optional arguments:
  -h, --help       show this help message and exit
  --server SERVER  Ghidra bridge server IP (default: 127.0.0.1)
  --port PORT      Ghidra bridge server port (default: 4768)

Minidump

PE Tree Minidumpプラグインは、Windows Minidump内のポータブル実行可能ファイルを見つけます。

PE Tree Minidump plugin

要件

  • Python 3.6+
  • minidump

機能

  • Windows Minidump(.dmp)ファイルからPEモジュールを表示、ダンプ、再構築

インストール

  1. PE Treeをインストール(インストールを参照)
  2. minidumpをインストール(pip install minidump)

使用方法

root@kitploit:~
$ pe-tree-minidump -h
usage: pe-tree-minidump [-h] filename

PE-Tree (Minidump)

positional arguments:
  filename    Path to .dmp file

optional arguments:
  -h, --help  show this help message and exit

設定

概要

設定はINIファイルに保存され、デフォルト値は以下の通り:

root@kitploit:~
[config]
debug = False
fonts = Consolas,Monospace,Courier
passwords = ,infected
virustotal_url = https://www.virustotal.com/gui/search
cyberchef_url = https://gchq.github.io/CyberChef

オプション

場所

サードパーティとのデータ共有

以下の情報は、設定に応じて、以下の条件下でサードパーティのWebアプリケーションと共有されます:

VirusTotal

VirusTotalのURLが設定で指定されている場合、ユーザーがハイライトされたリンクをクリックするか、右クリックコンテキストメニューから「VirusTotal検索」を選択すると、ファイルハッシュ、タイムスタンプなどのメタデータがVirusTotalに送信されて処理されます。

CyberChef

CyberChefのURLが設定に存在する場合、ユーザーが右クリックコンテキストメニューから「CyberChef」を選択すると、任意のファイルデータがbase64エンコードされてCyberChefに送信され処理されます。

トラブルシューティング

AttributeError: module 'pip' has no attribute 'main'

または

LinuxでPyQt5のインストールに失敗する

pipをバージョン20.0以上にアップグレードしてみてください:

root@kitploit:~
$ pip install --upgrade pip

ModuleNotFoundError: No module named 'PyQt5.sip'

PyQt5を以下のようにアンインストールして再インストールしてみてください:

root@kitploit:~
pip uninstall PyQt5
pip uninstall PyQt5-sip
pip install PyQt5 PyQt5-sip

ダンプ後にインポートが見つからない

IDAがすべてのコードを見つけて逆アセンブルしたことを確認:

Options -> General -> Analysis -> Reanalyze program

この完了後、再度ダンプ/インポート再構築を試みてください。

貢献

貢献を歓迎します!IssueやPull Requestは大歓迎です。

開発者向けドキュメント

Sphinxを使用してソースからドキュメントをビルドする:

root@kitploit:~
$ pip install sphinx
$ sphinx-apidoc -o ./doc/source/ .
$ sphinx-build -b html ./doc/source ./doc/build -E

ドキュメントを表示するには、Webブラウザで ./doc/build/index.html を開いてください。

著者

Tom Bonner - tombonner - @thomas_bonner

ライセンス

PE TreeはApache Licenseのもとで配布されています。詳細はLICENSEを参照してください。

ツールをダウンロード
セクションオプションタイプ説明
configdebugbooleanpefile.dump()を出力に表示するか
configfontsstringUIで使用するフォント名のカンマ区切りリスト
configpasswordsstringZIPファイルのパスワードのカンマ区切りリスト
configvirustotal_urlstringVirusTotalの検索URL
configcyberchef_urlstringCyberChefのURL
タイプOSパス
アプリケーションWindows%TEMP%\pe_tree.ini
アプリケーションLinux/Mac/tmp/pe_tree.ini
IDAPythonWindows%APPDATA%\HexRays\IDA Pro\pe_tree.ini
IDAPythonLinux/Mac~/.idapro/pe_tree.ini
RekallWindows%TEMP%\pe_tree_rekall.ini
RekallLinux/Mac/tmp/pe_tree_rekall.ini
VolatilityWindows%TEMP%\pe_tree_volatility.ini
VolatilityLinux/Mac/tmp/pe_tree_volatility.ini
GhidraWindows%TEMP%\pe_tree_ghidra.ini
GhidraLinux/Mac/tmp/pe_tree_ghidra.ini
MinidumpWindows%TEMP%\pe_tree_minidump.ini
MinidumpLinux/Mac/tmp/pe_tree_minidump.ini
カービングWindows%TEMP%\pe_tree_carve.ini
カービングLinux/Mac/tmp/pe_tree_carve.ini