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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/ufrisk/pcileech
特権昇格メモリフォレンジックエクスプロイトポストエクスプロイトデジタルフォレンジックペネトレーションテストハードウェアセキュリティレッドチーミングリモートアクセスツールペイロード開発
GitHubufrisk/pcileech

pcileech

7.9k1.0k141ヶ月前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

直接メモリアクセス(DMA)攻撃ソフトウェア

リポジトリを見る

PCILeech 概要:

PCILeech は PCIe ハードウェアデバイスを使用してターゲットシステムのメモリを読み書きします。これは PCIe 上の DMA を利用して実現されます。ターゲットシステムにドライバは必要ありません。

PCILeech は、LeechCore ライブラリがサポートする幅広いソフトウェアベースのメモリ取得方法(DumpIt や WinPmem を使用したリモートライブメモリのキャプチャを含む)と組み合わせて、ハードウェアなしでも動作します。PCILeech はローカルメモリのキャプチャや、多数のメモリダンプファイル形式もサポートしています。

PCILeech は複数のメモリ取得デバイスをサポートしています。ハードウェアベースとソフトウェアベースの両方です。USB3380 ベースのハードウェアはネイティブでは 4GB のメモリしか読み取れませんが、カーネルモジュール (KMD) をターゲットシステムカーネルに挿入すれば全メモリを読み取ることができます。FPGA ベースのハードウェアおよびソフトウェアベースの方法では、全メモリを読み取ることができます。

PCILeech は、ターゲットカーネルに幅広いカーネルインプラントを挿入できます。これにより、「マウントされたドライブ」を介したライブ RAM およびファイルシステムへの簡単なアクセスが可能になります。また、ログオンパスワード要件の削除、未署名ドライバのロード、コードの実行、システムシェルの生成も可能です。PCILeech は Windows と Linux で動作します。現在サポートされているターゲットシステムは、x64 版の UEFI、Linux、FreeBSD、Windows です。これにはメモリへの書き込みアクセスが必要です(USB3380 ハードウェア、FPGA ハードウェア、LiveCloudKd、または CVE-2018-1038 "Total Meltdown")。

開始するには、リポジトリのソースをクローンするか、最新のバイナリ、モジュール、設定ファイルをダウンロードしてください。

PCILeech 用の PushPin GUI フロントエンドを使用すると、一般的な RedTeam タスクが非常に簡単になります。なお、PushPin は公式の PCILeech 配布物の一部ではないことに注意してください。

機能:

  • ターゲットシステムから 150MB/s 以上でメモリを取得。
  • リモートの LeechService からリモートメモリを取得。
  • ターゲットシステムメモリへのデータ書き込み。
  • ネイティブ DMA モードで 4GB のメモリにアクセス可能(USB3380 ハードウェア)。
  • ネイティブ DMA モードで全メモリにアクセス可能(FPGA ハードウェア)。
  • カーネルモジュール (KMD) がロードされていれば全メモリにアクセス可能。
  • 生の PCIe TLP アクセス(FPGA ハードウェア)。
  • ライブ RAM をファイルとしてマウント [Linux、Windows、macOS Sierra*]。
  • ファイルシステムをドライブとしてマウント [Linux、Windows、macOS Sierra*]。
  • ターゲットシステム上でカーネルコードを実行。
  • システムシェルやその他の実行可能ファイルを起動 [Windows]。
  • ファイルのプル/プッシュ [Linux、FreeBSD、Windows、macOS Sierra*]。
  • パッチ/アンロック(パスワード要件削除)[Windows、macOS Sierra*]。
  • 独自のカーネルシェルコードやカスタムシグネチャを簡単に作成。
  • ネットワーク経由でリモートの LeechAgent に接続し、リモートで次の操作を実行:
    • 物理メモリのネットワークダンプ。
    • リモートホスト上で Python メモリ解析スクリプトを実行。
  • ここにリストされていないさらに多くの機能...

*) macOS High Sierra 以降はサポートされていません。

メモリ取得方法:

PCILeech は、ハードウェアベースとソフトウェアベースの両方のメモリ取得方法をサポートしています。すべてのメモリ取得は LeechCore ライブラリによって処理されます。

ハードウェアベースのメモリ取得方法:

サポートされているハードウェアベースのメモリ取得方法の概要を以下に示します。すべてのハードウェアベースのメモリ取得方法は、Windows と Linux の両方でサポートされています。ただし、FPGA ベースの方法は Linux で若干のパフォーマンス低下があり、Windows での約 150MB/s に対し、最大約 90MB/s になります。

ソフトウェアベースのメモリ取得方法:

サポートされているソフトウェアベースのメモリ取得方法の概要を以下に示します。LeechService はリモートの LeechCore ライブラリへのネットワーク接続のみを提供することに注意してください。接続後は、ハードウェアベースとソフトウェアベースの両方のメモリ取得方法を使用できます。

PCILeech のインストール:

PCILeech の最新版をお持ちであることを確認してください。PCILeech の GitHub リポジトリ https://github.com/ufrisk/pcileech をご覧ください。

最新のリリースから最新のバイナリ、モジュール、設定ファイルを入手してください。 または、リポジトリをクローンしてソースからビルドすることもできます。

Windows:

Windows で PCILeech を実行する方法の詳細については、Windows 上の PCILeech ガイドを参照してください。

USB3380 ハードウェアを使用する場合は、Google Android USB ドライバをインストールする必要があります。Google Android USB ドライバは http://developer.android.com/sdk/win-usb.html#download からダウンロードしてください。zip を解凍します。
FTDI ドライバは、FPGA を FT601 USB3 アドオンカードまたは PCIeScreamer と共に使用する場合にインストールする必要があります。FTDI から 64 ビット版の FTD3XX.dll をダウンロードし、pcileech.exe と同じ場所に配置します。
Windows でライブ RAM とターゲットファイルシステムをドライブとしてマウントするには、Dokany2 ファイルシステムライブラリをインストールする必要があります。最新の安定版 Dokany2 を https://github.com/dokan-dev/dokany/releases/latest からダウンロードしてインストールしてください。

Linux:

Linux で PCILeech を実行する方法の詳細については、Linux 上の PCILeech ガイドを参照してください。

例:

その他の例については、プロジェクト Wiki ページを参照してください。Wiki は構築中であり、情報が不足している可能性があります。

ターゲットシステムのライブ RAM とファイルシステムをマウントします。KMD がロードされている必要があります。この例では 0x11abc000 が使用されています。

  • pcileech.exe mount -kmd 0x11abc000

特定のカーネルインプラントのヘルプを表示します。この例では lx64_filepull カーネルインプラントです。

  • pcileech.exe lx64_filepull -help

dump コマンドのヘルプを表示します。

  • pcileech.exe dump -help

カーネルモジュールがアドレス 0x7fffe000 にロードされている場合、ターゲットシステムから全メモリをダンプします。

  • pcileech.exe dump -kmd 0x7fffe000

USB3380 でより安定した USB2 アプローチを使用し、アクセス可能なメモリマップドデバイスを含む 4GB 未満のメモリを強制ダンプします。

  • pcileech.exe dump -force -device usb3380://usb=2

PCIe TLP(トランザクションレイヤパケット)を受信し、画面に表示します(適切に設定された FPGA 開発ボードが必要)。

  • pcileech.exe tlp -vv -wait 1000

ターゲットシステムのメモリをプローブ/列挙し、読み取り可能なメモリページと最大メモリを確認します(FPGA ハードウェアのみ)。

  • pcileech.exe probe

最小アドレスから最大アドレスまでの全メモリをダンプし、失敗したページでは停止しません。64 ビットメモリへのネイティブアクセスは FPGA ハードウェアでのみサポートされています。

  • pcileech.exe dump -min 0x0 -max 0x21e5fffff -force

全メモリをダンプし、ターゲットシステムのレジストリからメモリマップを特定しようとします。これにより、ターゲットをフリーズさせる可能性のある無効なメモリをダンプするのを避けられます。

  • pcileech.exe dump -memmap auto

デフォルトの自動検出の代わりに、特定のデバイスを強制的に使用します(pmem デバイスは自動検出されません)。

  • pcileech.exe pagedisplay -min 0x1000 -device pmem

リモート LeechAgent から、Kerberos によって暗号化され相互認証された接続を使用してリモートメモリをダンプします。

  • pcileech.exe dump -device pmem -remote rpc://[email protected]

リモートコンピュータ上で、LeechAgent に組み込まれた Python 環境を使用して Python 解析スクリプト find-rwx.py を実行します。

  • pcileech.exe agent-execpy -in find-rwx.py -device pmem -remote rpc://[email protected]

PID 432(この例では lsass.exe)の仮想プロセスメモリにパッチを適用します。

  • pcileech.exe patch -pid 432 -sig unlock_win10x64.sig

制限事項/既知の問題:

  • OS が IOMMU/VT-d を使用している場合は動作しません。これは macOS ではデフォルトで有効です(リカバリモードで無効にしない限り)。仮想化ベースのセキュリティ機能が有効な Windows 10/11 では完全には動作しません。
  • 最近の Windows および Linux バージョンは、デフォルトで DMA をブロックします。

PCILeech と MemProcFS コミュニティ:

これらすべてが圧倒的に感じられますか? または簡単な質問をしたいだけですか? Discord の PCILeech および MemProcFS DMA コミュニティサーバーに参加してください!

ビルド:

バイナリはこのリポジトリのリリースセクションにあります。独自バージョンをビルドしたい場合は可能です。PCILeech のビルドに関する詳細は、Windows 上の PCILeech または Linux 上の PCILeech を参照してください。PCILeech は LeechCore に依存しており、一部の追加機能 (The Memory Process File System) については別途ビルドする必要があります。

貢献:

PCILeech、MemProcFS、LeechCore はオープンソースですが、オープンコントリビューションではありません。PCILeech、MemProcFS、LeechCore は非常に柔軟なプラグインアーキテクチャを提供しており、プラグインの形での貢献が可能です。プラグイン以外のコアプロジェクトへの貢献を希望される場合は、開発を開始する前にご連絡ください。

リンク:

  • Twitter: Twitter
  • Discord: Discord - PCILeech/MemProcFS
  • PCILeech: https://github.com/ufrisk/pcileech
  • PCILeech FPGA: https://github.com/ufrisk/pcileech-fpga
  • LeechCore: https://github.com/ufrisk/LeechCore
  • MemProcFS: https://github.com/ufrisk/MemProcFS
  • ブログ: http://blog.frizk.net
  • PushPin: PCILeech 用 GUI: https://github.com/LuckyPi/PushPin

変更履歴:

以前のリリース(クリックして展開):

v1.0-v3.6

  • 初回リリースおよびさまざまな更新。詳細は各リリースを参照してください。

v4.0

  • 大規模なクリーンアップと内部リファクタリング。
  • FPGA 最大メモリ自動検出とより安定したダンプ戦略。
  • 新しい安定した Windows 10 カーネルインジェクト(非仮想化ベースセキュリティシステム上の FPGA ハードウェア使用)。
  • ユーザーモードインジェクト(実験的)。
  • 組み込みデバイスサポートの削除 - 代わりに LeechCore の leechcore.dll/leechcore.so ライブラリを使用。新しいデバイスには以下が含まれます:
    • メモリダンプファイル(生のリニアダンプファイルと Microsoft クラッシュダンプファイル)。
    • Hyper-V セーブファイル。
    • DumpIt / WinPmem によるライブメモリ。
    • -remote 設定によるリモートデバイス。
  • API および組み込みの Memory Process File System の削除 - 代わりに、より高度な API を持つ LeechCore および Memory Process File System を使用してください。
  • その他多数の変更および構文の更新。

v4.1

  • LeechAgent のサポート - リモートメモリ取得および解析。

v4.2

  • シグネチャの更新:
    • Linux カーネルモジュール - LINUX_X64_48 (最新バージョン)
    • Win10 1903 カーネルモジュール - WIN10_X64_2 (Windows 版 PCILeech が必要)

v4.3

  • バグ修正。
  • LeechCore ライブラリによる新しいデバイス (NeTV2 / RawUDP) のサポート。

v4.4

  • バグ修正と安定性の向上。
  • MemProcFS v3 ライブラリのサポート。
  • バイナリのコード署名。
  • "tlploop" コマンド。

v4.5

  • バグ修正。
  • メモリ取得ライブラリ LeechCore v2 のサポート。
  • Windows 上での MemProcFS 統合。
  • ユーザー定義の物理メモリマップのサポート(-memmap オプション)。

v4.6

  • LiveCloudKd のサポート。

v4.10

  • Windows 10 組み込みシグネチャの Linux サポート(MemProcFS v4.0 に依存)。
  • Windows と Linux の個別リリース。
  • 一般的なクリーンアップ。

v4.11

  • VMWare Workstation/Player ライブ VM メモリのサポート。
  • LeechAgent agent-forensic コマンドによるリモートメモリ解析のサポート。
    • MemProcFS フォレンジックモードをリモートで実行。
    • ElasticSearch 互換の JSON データを取得。

v4.12

  • 32 ビットサポート (pcileech バイナリ)。

v4.13

  • バグ修正。
  • マウントの改善:
    • Windows ホストファイルシステムサポート: Dokany2 へのアップグレード (注意! Dokany2 をインストールする必要があります!)。
    • Linux ホストファイルシステムサポート: FUSE サポートを追加。
      例: ./pcileech mount /home/user/fusemnt/leechfs -kmd <your_kmd_address>
    • Windows ターゲットで C: 以外のローカルドライブにもアクセス可能になりました。
  • Visual Studio 2022 のサポート。

v4.14

  • プロセス仮想メモリサポート (Windows のみ)。
    • コマンド: search, patch, write, display, pagedisplay
    • 例: pcileech patch -pid 732 -sig unlock_win10x64.sig

v4.15

  • MemProcFS v5.0 のサポート。

v4.16

  • FPGA パフォーマンスの改善。
  • none コマンドを追加。
  • -bar-ro および -bar-rw オプションを追加。

v4.17

  • I/O BAR サポート。
  • Linux の改善:
    • KMD シグネチャの更新 (LINUX_X64_48) で最新の Ubuntu カーネルをサポート。
    • 最新のカーネルをサポートするためのカーネルモジュールの更新。
    • 新しい KMD シグネチャ - LINUX_X64_MAP - -in オプションでターゲットシステムのカーネル System.map を指定。
    • 新しいカーネルモジュール: lx64_exec_root。
  • Linux PCIe FPGA パフォーマンスの改善。v4.18
  • ベンチマークコマンドが追加されました。
  • アンロック署名が更新されました。
  • -psname オプションが追加されました。

v4.19

  • Linuxの安定性の向上とカーネルモジュール読み込みの改善。
  • Linuxでのclangコンパイルサポート。
  • macOSサポート。

最新:

  • バグ修正。
  • gRPCを使用したLinux LeechAgentのサポート (LeechCore v2.21)。
  • 追加: -no-kmd-mem オプション。KMD読み込み時にKMDメモリアクセスを任意で無効にします(場合によっては安定性の理由で有用かもしれません)。
  • 追加: -kmd WIN11_X64 - Windows 11 KMD署名(WIN10_X64_3のエイリアス)。
ツールをダウンロード
デバイス種類インターフェース速度64 ビットメモリアクセスPCIe TLP アクセスプロジェクト
スポンサー
ZDMAFPGAThunderbolt31000MB/sはいはい💖
GBOXFPGAOCuLink400MB/sはいはい💖
LeetDMAFPGAUSB-C190MB/sはいはい💖
CaptainDMA M2FPGAUSB-C190MB/sはいはい💖
CaptainDMA M2 100TFPGAUSB-C220MB/sはいはい💖
CaptainDMA 4.1thFPGAUSB-C190MB/sはいはい💖
CaptainDMA 75TFPGAUSB-C200MB/sはいはい💖
CaptainDMA 100TFPGAUSB-C220MB/sはいはい💖
AC701/FT601FPGAUSB3190MB/sはいはい
USB3380-EVBUSB3380USB3150MB/sいいえいいえ
DMA パッチ適用済み HP iLOBMCTCP1MB/sはいいいえ
デバイス種類揮発性書き込みLinux サポートプラグイン
RAW 物理メモリダンプファイルいいえいいえはいいいえ
完全 Microsoft クラッシュダンプファイルいいえいいえはいいいえ
完全 ELF コアダンプファイルいいえいいえはいいいえ
VMwareライブメモリはいはいいいえいいえ
VMware メモリセーブファイルファイルいいえいいえはいいいえ
TotalMeltdownCVE-2018-1038はいはいいいえいいえ
DumpIt /LIVEKDライブメモリはいいいえいいえいいえ
WinPMEMライブメモリはいいいえいいえいいえ
LiveKdライブメモリはいいいえいいえいいえ
LiveCloudKdライブメモリはいはいいいえはい
Hyper-V 保存状態ファイルいいえいいえいいえはい
LeechAgent*リモートいいえいいえ

v4.7

  • バグ修正。
  • WIN10_X64_3 新しい安定した Windows 10 カーネルシグネチャ(Win10 2004 リリースを含む)。
  • アンロックシグネチャの更新 - Win10/Linux (注意! Linux の最新カーネルはまだサポートされていません)。

v4.8

  • バグ修正。
  • 最近の x64 Linux カーネルのサポート改善。

v4.9

  • バグ修正。
  • シグネチャの更新。
  • 最近の x64 Linux カーネル (Ubuntu 21.04) のサポート改善。
  • CTRL+C が押されたときにマウントされたドライバのアンマウント。