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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Process-Dump — メモリからマルウェアのPEファイルをディスクにダンプし、解析するためのWindowsツール。 | Kitploit
ツール/GitHubGitHub/glmcdona/process-dump
メモリフォレンジックリバースエンジニアリングフォレンジックマルウェア分析バイナリ解析
GitHubglmcdona/process-dump

Process-Dump

メモリからマルウェアのPEファイルをディスクにダンプし、解析するためのWindowsツール。

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

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
ウェブサイト

Process Dump

Process Dump は、マルウェアのメモリコンポーネントをディスクにダンプして分析するための Windows リバースエンジニアリングコマンドラインツールです。多くの場合、マルウェアファイルは実行前にパックや難読化が施され、AV スキャナーを回避しようとしますが、これらのファイルが実行されると、多くの場合、メモリ内にマルウェアコードのクリーンなバージョンが展開またはインジェクションされます。マルウェア研究者がマルウェアを分析する際の一般的なタスクは、この展開されたコードをメモリからディスクにダンプし、AV 製品でスキャンしたり、IDA などの静的解析ツールで分析したりすることです。

Process Dump は Windows 32 ビットおよび 64 ビットオペレーティングシステムで動作し、特定のプロセスまたは現在実行中のすべてのプロセスからメモリコンポーネントをダンプできます。Process Dump はクリーンハッシュデータベースの作成と使用をサポートしており、kernel32.dll などのクリーンファイルのダンプをスキップできます。主な機能は次のとおりです。

  • 特定のプロセスまたはすべてのプロセスからコードをダンプします。
  • プロセスに正しくロードされていない隠しモジュールを検出してダンプします。
  • PE ファイルに関連付けられていない場合でも、ルーズなコードチャンクを検出してダンプします。チャンクに対して PE ヘッダーとインポートテーブルを構築します。
  • アグレッシブなアプローチでインポートを再構築します。
  • クローズダンプモニターモード('-closemon')で実行できます。このモードでは、プロセスが終了する直前にプロセスを一時停止してダンプします。
  • マルチスレッド対応。すべての実行中プロセスをダンプする場合、非常に高速に処理されます。
  • クリーンハッシュデータベースを生成できます。マシンがマルウェアに感染する前にこれを生成しておくと、Process Dump は新しく悪意のあるマルウェアコンポーネントのみをダンプします。

公式のコンパイル済みリリースを私のウェブサイトで管理しています: https://split-code.com/processdump.html

インストール

Process Dump の最新のコンパイル済みリリースはこちらからダウンロードできます:

  • https://github.com/glmcdona/Process-Dump/releases

ソースコードのコンパイル

このツールは Visual Studio 2019 用に設計されており、無料の Community エディションで動作します。プロジェクトファイルを VS2019 で開いてコンパイルするだけで、簡単にできるはずです。

コマンドライン引数

Process Dump は、メモリから未知のコードをすべてダンプする('-system' フラグ)、特定のプロセスをダンプする、またはプロセスが終了する直前にすべてのプロセスをダンプするモニタリングモードで実行できます。

このツールを初めて使用する前に、クリーンなワークステーションで除外用クリーンハッシュデータベースを次のいずれかの方法で生成できます:

  • pd -db genquick
  • pd -db gen

使用例:

  • pd -system
  • pd -pid 419
  • pd -pid 0x1a3
  • pd -pid 0x1a3 -a 0x401000 -o c:\dump\ -c c:\dump\test\clean.db
  • pd -p chrome.exe
  • pd -p "(?i).*chrome.*"
  • pd -closemon

コマンドライン引数は次のようにグループ化できます:

一般的なダンプオプション

クリーンハッシュデータベースオプション

出力オプション

オプション説明
-v詳細モード。デバッグ用に詳細情報が出力されます。
-nh出力にヘッダーを表示しません。

高度なオプション

使用例

サンドボックスでの使用

自動化サンドボックスや手動のマルウェア対策リサーチで Process Dump を使用する場合、次の手順が役立ちます。すべてのコマンドはクリーンな環境で管理者として実行してください。

  • クリーンハッシュデータベースの構築: pd64.exe -db gen を実行するか、より高速で不完全なプロセスとして pd64.exe -db genquick を実行します。状況に応じて、このクリーンハッシュデータベースを作成した後、VM のスナップショットを取得すると、毎回繰り返す必要がなくなります。

  • Process Dump 終了モニターの起動: pd64.exe -closemon をバックグラウンドで実行し続けます。マルウェアが使用するすべての中間プロセスをダンプします。

  • マルウェアファイルの実行: マルウェアのインストールを監視します。pd64.exe は、閉じようとするすべてのプロセスを自動的にダンプします。

  • 実行中のマルウェアをメモリからダンプ: 準備ができたら、pd64.exe -system を使用してすべてのプロセスをダンプします。

ダンプされたコンポーネントは、pd64.exe の作業ディレクトリにあります。出力パスを変更するには、-o フラグを使用します。

ダンプされたモジュールの命名規則に関する注記:

  • ファイル名にモジュール名の代わりに 'hiddemodule' が含まれている場合、そのモジュールがプロセスに正しく登録されていないことを示します。
  • ファイル名に 'codechunk' が含まれている場合、それはルーズな実行可能領域からの再構築されたダンプであることを示します。これは、PE ヘッダーを持たないインジェクションされたコードなどに該当します。Codechunk は、再構築された x86 と再構築された x64 ヘッダーの 2 回ダンプされます。

ダンプされたファイルのファイル名の例

  • notepad_exe_PID2990_hiddenmodule_16B8ABB0000_x86.dll
  • notepad_exe_PID3b5c_notepad.exe_7FF6E6630000_x64.exe
  • notepad_exe_PID2c54_codechunk_17BD0000_x86.dll
  • notepad_exe_PID2c54_codechunk_17BD0000_x64.dll

バージョン履歴

バージョン 2.1(2017年2月12日)

  • 場合によっては最後のセクションがゼロで埋め尽くされるバグを修正しました。この問題を報告してくれた megastupidmonkey に感謝します。
  • 64 ビットのベースアドレスが 32 ビットアドレスに切り捨てられるバグを修正しました。現在は 64 ビットモジュールベースアドレスを適切に保持します。この問題を報告してくれた megastupidmonkey に感謝します。
  • クローズモニターのプロセスダンプが csrss.exe をクラッシュさせる問題に対処しました。
  • クローズモニターモードで Process Dump が自身のプロセスをフックしないようにしました。

バージョン 2.0(2016年9月18日)

  • 新しいフラグ '-closemon' を追加。Process Dump をモニタリングモードで実行します。プロセスが閉じる直前にプロセスを一時停止してダンプします。これはマルウェア分析サンドボックスと連携して動作し、悪意のあるプロセスが閉じる前にマルウェアをメモリから確実にダンプするように設計されています。
  • Process Dump をマルチスレッドにアップグレードしました。複数のプロセスをダンプまたはハッシュ取得するコマンドは、操作ごとに個別のスレッドで実行されます。デフォルトのスレッド数は 16 で、一般的な Process Dump のダンプ処理を大幅に高速化します。
  • Process Dump をアップグレードし、メモリ内で見つかった未接続のコードチャンクをダンプできるようにしました。これらは、モジュールにアタッチされておらず、PE ヘッダーを持たないメモリ内の実行可能領域として識別されます。また、ノイズを減らすために、codechunk が有効と見なされるには少なくとも 2 つのインポートを参照している必要があります。ダンプ時には、インポートテーブルとともに PE ヘッダーが再作成されます。コードチャンクはクリーンハッシュデータベースで完全にサポートされています。
  • クリーンハッシュデータベースのファイルパスとダンプファイルの出力フォルダを制御するフラグを追加しました。
  • ユーザーパスからクリーンハッシュデータベースを生成する際のクラッシュを修正しました。
  • PE ヘッダーの生成を強制するフラグ '-g' の修正。以前はこのフラグが設定されていても、システムダンプ(-system)ではプロセスダンプ時にこのフラグが無視されていました。
  • さまざまなパフォーマンスの改善。
  • プロジェクトを VS2015 にアップグレードしました。

バージョン 1.5(2015年11月21日)

  • 非常に大きなメモリ領域が Process Dump のハングを引き起こすバグを修正しました。
  • 64 ビット Windows で高アドレスの一部のモジュールが見つからないバグを修正しました。
  • 詳細モードで表示されるデバッグ情報を増やしました。

バージョン 1.4(2015年4月18日)

  • 新しいアグレッシブなインポート再構築アプローチを追加。モジュール内のすべての DWORD と QWORD を対応するエクスポートマッチにパッチするようになりました。
  • 特定のアドレスをダンプするための '-a(ダンプするアドレス)' フラグを追加。そのアドレスに対して PE ヘッダーを生成し、インポートテーブルを構築します。
  • 新しいインポート再構築アルゴリズムをスキップするための '-ni' フラグを追加。
  • モジュールダンプ時に既存の PE ヘッダーがあっても新しい PE ヘッダーの生成を強制する '-g' フラグを追加。これは、例えば PE ヘッダーが不正な形式である場合に有効です。
  • さまざまなバグ修正。

バージョン 1.3(2013年10月10日)

  • 無効な仮想サイズやアドレスを指定するセクションを持つ PE ヘッダーの処理を改善しました。
  • 仮想セクションをディスクセクションにダンプするためのより良いモジュールダンプ手法。

バージョン 1.1(2013年4月8日)

  • Windows XP との互換性の問題を修正しました。
  • プロセスダンプがモジュールをダンプしていると表示しても実際にはダンプしないバグを修正しました。
  • '-pid' ダンプフラグを実装しました。

バージョン 1.0(2013年4月2日)

  • 初回リリース。
ツールをダウンロード
オプション説明
-systemアクセス可能なすべてのプロセスから、クリーンハッシュデータベースに一致しないすべてのモジュールを作業ディレクトリにダンプします。
-pid <pid>指定された PID から、クリーンハッシュデータベースに一致しないすべてのモジュールを現在の作業ディレクトリにダンプします。'0x' プレフィックスを使用して 16 進数 PID を指定します。
-closemonモニターモードで実行します。プロセスが終了するとき、Process Dump は最初にそのプロセスをダンプします。
-p <正規表現プロセス名>フィルターに一致するプロセス名から、クリーンハッシュデータベースに一致しないすべてのモジュールを指定された PID にダンプし、現在の作業ディレクトリに出力します。
-a <モジュールベースアドレス>プロセスから指定されたベースアドレスのモジュールをダンプします。
-o <パス>ダンプされたコンポーネントのデフォルトの出力ルートフォルダを設定します。
オプション説明
-db genいくつかの一般的なフォルダと、現在実行中のすべてのプロセスを自動的に処理し、見つかったモジュールハッシュをクリーンハッシュデータベースに追加します。%WINDIR%、%HOMEPATH%、C:\Program Files\、C:\Program Files (x86)\ 内のすべてのファイルを再帰的に追加し、さらに実行中のすべてのプロセスのすべてのモジュールを追加します。これらのクリーンハッシュは、アプリケーションディレクトリ内の clean.hashes ファイルに追加されます。今後のプロセスダンプコマンドでは、これらの既知のモジュールはダンプされません。このツールを使用する前に、クリーンなシステムでこのコマンドを 1 回実行することをお勧めします。そうすることで、メモリからダンプされるモジュールが多くなりすぎるのを防げます。
-db genquick上記と同じですが、すべてのプロセスのすべてのモジュールからのハッシュのみをクリーンハッシュデータベースに追加します。クリーンハッシュデータベースを構築するより高速な方法ですが、完全ではありません。
-db add <dir>指定されたディレクトリ内のすべてのファイルを再帰的にクリーンハッシュデータベースに追加します。
-db rem <dir>指定されたディレクトリ内のすべてのファイルを再帰的にクリーンハッシュデータベースから削除します。
-nrハッシュデータベースのディレクトリ追加または削除コマンドの再帰を無効にします。
-db cleanクリーンハッシュデータベースをクリアします。
-db ignore今回のプロセスダンプ時にクリーンハッシュデータベースを無視します。一致が見つかった場合でも、すべてのモジュールがダンプされます。
-cdb <ファイルパス>この実行で使用するクリーンハッシュデータベースの完全なファイルパス。デフォルトの clean.hashes を上書きする場合に指定します。
-edb <ファイルパス>この実行で使用するエントリポイントハッシュデータベースの完全なファイルパス。
-esdb <ファイルパス>この実行で使用するエントリポイントショートハッシュデータベースの完全なファイルパス。
オプション説明
-g既存のヘッダーを無視して、PE ヘッダーを最初から強制的に生成します。
-eprec有効なエントリポイントが存在するように見えても、エントリポイントの再構築を強制します。
-niインポート再構築を無効にします。
-ncルーズなコード領域のダンプを無効にします。
-ntマルチスレッドを無効にします。
-nepエントリポイントのハッシュ化を無効にします。
-t <スレッド数>使用するスレッド数を設定します(デフォルトは 16)。
コマンド説明
pd64.exe -db genquick現在実行中のプロセスに基づいてクリーンモジュールデータベースをすばやく構築します。今後のタスクでは、Process Dump は認識されていないモジュールのみをダンプします。
pd64.exe -systemすべてのプロセスから、クリーンモジュールを無視してすべてのモジュールと隠しチャンクをダンプします。
pd64.exe -closemon終了モニターモードで実行します。プロセスが終了しようとするときにすべてのプロセスをダンプします。
pd64.exe -pid 0x18A特定のプロセス ID からモジュールと隠しチャンクをダンプします。
pd64.exe -p .\*chrome.\*プロセス名でモジュールと隠しチャンクをダンプします。
pd64.exe -db gen既知のモジュールのクリーンハッシュデータベースを構築します。これにより、後のタスクで既知の正常なモジュールをダンプしないようにします。
pd64.exe -pid 0x1a3 -a 0xffb4000PID 内の特定のアドレスからコードをダンプします。これにより、再構築された 32 ビットおよび 64 ビットの PE ヘッダーを持つ notepad_exe_x64_hidden_FFB40000.exe と notepad_exe_x86_hidden_FFB40000.exe の 2 つのファイルが分析用に生成されます。