
MemProcFS
MemProcFS: =============================== MemProcFSは、物理メモリを仮想ファイルシステム内のファイルとして簡単かつ便利に閲覧する方法です。 複雑なコマンドライン引数を必要とせず、簡単なポイント&クリックによるメモリ分析が可能です!マウントされた仮想ファイルシステム内のファイルを介して、または独自のプロジェクトに組み込める機能豊富なアプリケーションライブラリを介して、メモリの内容やアーティファクトにアクセスできます! メモリダンプファイル、DumpItやWinPMEMによる<b>ライブメモリ</b>、仮想マシンや[PCILeech](https://github.com/ufrisk/pcileech/) [FPGA](https://github.com/ufrisk/pcileech-fpga/)ハードウェアデバイスからの<b>読み書きモードでのライブメモリ</b>を分析できます! さらに、セキュアな接続を介してリモートのLeechAgentメモリ取得エージェントに接続することも可能です - これにより、高レイテンシ・低帯域幅の接続であっても、リモートでのライブメモリインシデントレスポンスが可能になります、[LiveCloudKd](https://github.com/ufrisk/LeechCore/wiki/Device_LiveCloudKd)、[VMware](https://github.com/ufrisk/LeechCore/wiki/Device_VMWare)を覗いてみてください! お気に入りのツールを使ってメモリを分析しましょう - お気に入りのヘックスエディタ、PythonやPowerShellスクリプト、WinDbg、あるいはお気に入りの逆アセンブラやデバッガ - これらはすべて、MemProcFSでファイルを読み書きするだけで簡単に動作します! <p align="center"><img src="https://assets.kitploit.com/production/public/readmes/2830/a111e1c899f2551096ce422ed932f3525456af2bc6ffa2d5e6abac1fee1f8849.png" height="190"/><img src="https://assets.kitploit.com/production/public/readmes/2830/4ecebbb25e1d08180796de105a630a7760973a6f47f2403ef1a48644126de979.jpg" height="190"/><img src="https://assets.kitploit.com/production/public/readmes/2830/11e55ba5f11c9d1137246542e03037eb387b0d64d14314d6e775e5f80108b691.png" height="190"/><img src="https://assets.kitploit.com/production/public/readmes/2830/7b379ca3d99eb25b9c638181fa4f0d0bf4c53f8c1f0e9475b03346670eeaab42.png" height="190"/></p> はじめに! ============ [13Cubed](https://www.13cubed.com/)による優れたクイックウォークスルーをチェックして始めましょう!DisobeyとBlueHatでの過去のカンファレンス講演もチェックしてください。 <p align="center"> <a href="https://youtu.be/hjWVUrf7Obk" alt="13Cubed: MemProcFS - This Changes Everything" target="_new"><img src="https://assets.kitploit.com/production/public/readmes/placeholders/f0fc86cfe65f76d40e15aaec61704ec8220a56dc89d4be03c46f67cb31b9fa8c.svg" height="230"/></a> <a href="https://youtu.be/mca3rLsHuTA?t=952" alt="Disobey 2020 talk - Live Memory Attacks and Forensics" target="_new"><img src="https://assets.kitploit.com/production/public/readmes/placeholders/f0fc86cfe65f76d40e15aaec61704ec8220a56dc89d4be03c46f67cb31b9fa8c.svg" height="230"/></a> <a href="https://www.youtube.com/watch?v=Da_9SV9FA34" alt="Microsoft BlueHatIL 2019 talk - Practical Uses for Hardware-assisted Memory Visualization" target="_new"><img src="https://assets.kitploit.com/production/public/readmes/placeholders/f0fc86cfe65f76d40e15aaec61704ec8220a56dc89d4be03c46f67cb31b9fa8c.svg" height="230"/></a></p> 追加のドキュメントについては、ファイルシステム自体、そのAPI、プラグインモジュールに関する詳細な情報が記載されている**[プロジェクトwiki](https://github.com/ufrisk/MemProcFS/wiki)をチェックしてください**!メモリ取得方法に関する追加情報については、**[LeechCoreプロジェクト](https://github.com/ufrisk/LeechCore/)**をチェックするか、[PCILeech/MemProcFS](https://pcileech.com/discord) Discordサーバーに参加してください! 始めるには、[最新のバイナリ、モジュール、設定ファイル](https://github.com/ufrisk/MemProcFS/releases/latest)をダウンロードし、[ガイド](https://github.com/ufrisk/MemProcFS/wiki)をチェックしてください! インストール: =========== <b>最新リリースから[最新のバイナリ、モジュール、設定ファイル](https://github.com/ufrisk/MemProcFS/releases/latest)を入手してください。</b>あるいは、リポジトリをクローンしてソースからビルドしてください。 ## Windows ファイルシステムをマウントするには、<b>Dokanyファイルシステムライブラリ</b>がインストールされている必要があります。Dokanyバージョン2の最新版を https://github.com/dokan-dev/dokany/releases/latest からダウンロードしてインストールしてください。 (PCILeech FPGAハードウェアなしで)ライブメモリをキャプチャするには、[DumpIt](https://www.magnetforensics.com/resources/magnet-dumpit-for-windows)をダウンロードし、DumpIt /LIVEKDモードでMemProcFSを起動します。あるいは、最新の署名済み[WinPMEMドライバ](https://github.com/Velocidex/c-aff4/tree/master/tools/pmem/resources/winpmem)をダウンロードしてWinPMEMを入手し、MemProcFSの隣に配置してください - 詳細な手順は[LeechCore Wiki](https://github.com/ufrisk/LeechCore/wiki/Device_WinPMEM)にあります。 PCILeech FPGAにはハードウェアが必要で、さらに_FTD3XXWU.dll_をMemProcFSバイナリの隣に配置する必要があります。手順については[LeechCore](https://github.com/ufrisk/LeechCore)プロジェクトをチェックしてください。 ## Linux MemProcFSは、FUSEがインストールされているほとんどのLinuxディストリビューションで、すぐにそのまま実行できるはずです。ソースからビルドする場合は、[Linux上のMemProcFS](https://github.com/ufrisk/MemProcFS/wiki/_Linux)に関するガイドをチェックしてください。 ## macOS [こちら](https://github.com/ufrisk/MemProcFS/releases/latest)から最新のMemProcFSリリースをダウンロードしてください。MemProcFSをマウントされた仮想ファイルシステムとして使用する場合、.kextを必要とする**macFuse**に依存します。macFuseは[こちら](https://github.com/macfuse/macfuse/releases/latest)からダウンロードしてインストールしてください。MemProcFSをサポートされているC/C++/Rust API経由で使用する場合、macFuseは不要です。 豊富なPython、Rust、Java、Go、C#、C/C++ API: =============================== MemProcFSをあなたの[C/C++](https://github.com/ufrisk/MemProcFS/wiki/API_C)、[C#](https://github.com/ufrisk/MemProcFS/wiki/API_CSharp)、[Java](https://github.com/ufrisk/MemProcFS/wiki/API_Java)、[Go](https://github.com/TexHik620953/go-memprocfs/)(サードパーティ)、[Python](https://github.com/ufrisk/MemProcFS/wiki/API_Python)、[Rust](https://github.com/ufrisk/MemProcFS/wiki/API_Rust)プログラミングプロジェクトに組み込みましょう!MemProcFSのすべては、独自のプロジェクトで使用できる使いやすいAPIを介して公開されています!プラグインフレンドリーなアーキテクチャにより、ユーザーはC/C++/Rust/PythonプラグインでMemProcFSを簡単に拡張できます! MemProcFSのすべてはAPIとして公開されています。APIはC/C++ `vmmdll.h`、C# [nugetパッケージ](https://www.nuget.org/packages/Vmmsharp/)、Java、Python [pipパッケージ](https://pypi.org/project/memprocfs/)、Rust [crate](https://crates.io/crates/memprocfs)に存在します。ファイルシステム自体は、マウントする必要なくAPIを介して仮想的に利用可能になります。仮想プロセスメモリと物理メモリの両方を読み取ることが可能です!以下の例は、物理アドレス0x1000から0x20バイトを読み取る方法を示しています: ``` >>> import memprocfs >>> vmm = memprocfs.Vmm(['-device', 'c:/temp/win10_memdump.raw']) >>> print(vmm.hex( vmm.memory.read(0x1000, 0x20) )) 0000 e9 4d 06 00 01 00 00 00 01 00 00 00 3f 00 18 10 .M..........?... 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ ``` MemProcFSはPython pipパッケージとして利用可能で、あなたの[Jupyter Notebooks](https://github.com/ufrisk/MemProcFS/wiki/API_Python_Jupyter)に簡単に統合できます。 例: ========= コマンドラインからMemProcFSを起動します - おそらく以下の例のいずれかを使用してください。 または、メモリダンプファイルの拡張子をMemProcFS.exeに関連付けて、メモリダンプファイルをダブルクリックするとファイルシステムが自動的にマウントされるようにします! - メモリダンプファイルをデフォルトのM:としてマウント: <br>`memprocfs.exe -device c:\temp\win10x64-dump.raw` - メモリダンプファイルをデフォルトのM:としてマウントし、詳細度を上げる: <br>`memprocfs.exe -device c:\temp\win10x64-dump.raw -v` - メモリダンプファイルをデフォルトのM:としてマウントし、フォレンジックモードを開始: <br>`memprocfs.exe -device c:\temp\win10x64-dump.raw -forensic 1` - メモリダンプファイルをデフォルトのM:としてマウントし、yaraスキャン付きのフォレンジックモードを開始: <br>`memprocfs.exe -device c:\temp\win10x64-dump.raw -forensic 1 -forensic-yara-rules c:\yara\rules\windows_malware_index.yar` - メモリダンプファイルをLinux上の/home/pi/mnt/としてマウント: <br>`./memprocfs -mount /home/pi/linux -device /dumps/win10x64-dump.raw` - メモリダンプファイルをS:としてマウント: <br>`memprocfs.exe -mount s -device c:\temp\win10x64-dump.raw` - WinPMEMドライバを使用して、読み取り専用モードでライブターゲットメモリをマウント: <br>`memprocfs.exe -device pmem` - PCILeech FPGAメモリ取得デバイスを使用して、読み書きモードでライブターゲットメモリをマウント: <br>`memprocfs.exe -device fpga -memmap auto` - 対応するページファイルとともにメモリダンプをマウント: <br>`memprocfs.exe -device unknown-x64-dump.raw -pagefile0 pagefile.sys -pagefile1 swapfile.sys` PCILeechとMemProcFSコミュニティ: ========= これらすべてが少し圧倒的に感じますか?それともちょっとした質問をしたいだけですか?DiscordのPCILeechとMemProcFS DMAコミュニティサーバーに参加してください! <a href="https://pcileech.com/discord"><img src="https://assets.kitploit.com/production/public/readmes/2830/dd08fab787215b19b3e40b783ad638e783a82877e2327db7ccfd42e1454d1a94/1b0a45deb2d3a6f0b2933330f855a6c788343ce3e9f4a6df439c161a52dc460a-display-v1.webp"/></a> ビルド: ========= <b>ビルド済みの[バイナリ、モジュール、設定ファイル](https://github.com/ufrisk/MemProcFS/releases/latest)は最新リリースにあります。</b>。MemProcFSバイナリはVisual Studio 2022とUbuntu x64/AARCH64でビルドされています。 詳細なビルド手順は[Wiki](https://github.com/ufrisk/MemProcFS/wiki)の[Building](https://github.com/ufrisk/MemProcFS/wiki/Dev_Building)セクションにあります。 ライセンス: ======== プロジェクトのソースコードは、GNU Affero General Public License v3.0の下でリリースされています。一部のバンドルされた依存関係とプラグインはGPLv3の下でリリースされています。一部のバンドルされたMicrosoft再頒布可能バイナリは別個のライセンスの下でリリースされています。代替ライセンスはリクエストに応じて可能です。 コントリビューション: ============= PCILeech、MemProcFS、LeechCoreはオープンソースですが、オープンコントリビューションではありません。PCILeech、MemProcFS、LeechCoreは、プラグインの形でのコントリビューションを可能にする非常に柔軟なプラグインアーキテクチャを提供しています。プラグイン以外の形でコアプロジェクトにコントリビューションしたい場合は、開発を始める前に私に連絡してください。 リンク: ====== * Twitter: [](https://twitter.com/intent/follow?screen_name=UlfFrisk) * Discord: [](https://pcileech.com/discord) * 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 * Blog: http://blog.frizk.net リンク - 関連プロジェクト: ========================= * [MemProcFS-Analyzer](https://github.com/LETHAL-FORENSICS/MemProcFS-Analyzer/)は、MemProcFSの使用を簡素化し、メモリ分析ワークフローを最適化するために使用されるサードパーティのPowerShellアプリケーションです。MemProcFS-Analyzerは[LETHAL-FORENSICS](https://github.com/LETHAL-FORENSICS)の[@evild3ad](https://github.com/evild3ad)によってメンテナンスされています。 変更履歴: =================== <details><summary>過去のリリース(クリックして展開):</summary> v1.0 * 初回リリース。 v1.1-v4.9 * 各種アップデート。詳細については個々のリリースを参照してください。 v5.0 * 並列分析タスクをサポートする新機能を備えたメジャーリリース。 * 破壊的なAPI変更とメジャーアップデート。 * 拡張されたフォレンジック分析機能と[CSVファイル](https://github.com/ufrisk/MemProcFS/wiki/FS_Forensic_CSV)サポート。 * Linuxプラグインサポート。 * 新しい[Java API](https://github.com/ufrisk/MemProcFS/wiki/API_Java)。 v5.1 * Windows 11 22H2のサポート。 * '/misc/view/'でのテキスト&バイナリのみのビュー。 v5.2 * バグ修正。 * [仮想マシンサポート](https://github.com/ufrisk/MemProcFS/wiki/VM)。 * [ARM64 Windowsサポート](https://github.com/ufrisk/MemProcFS/wiki/_ARM64)。 * FPGAパフォーマンスの改善。 * /sys/driversのデバイスツリー情報。 * Linux機能追加: memcompressとtoken。 * オフラインシステムでのデバッグシンボル(PDB)の手動ダウンロード(Windowsのみ)。 v5.3 * バグ修正とパフォーマンスの最適化。 * PEフォワード関数。 * PEバージョン情報。 * MemProcFS Pythonバッチモード。 * Linux Pythonプラグインサポート。 * Hyper-V Container/Sandboxサポート。 * Windows Hypervisor Platformサポート(Hyper-V上のVMwareとVirtualBox)。 v5.4 * Rust APIサポート。 * Linux上で実行する際のデバッグシンボルサポート。 v5.5 * [Findevil](https://github.com/ufrisk/MemProcFS/wiki/FS_FindEvil): 新しいスレッドベースの検出。Findevilはフォレンジックモード専用になりました。 * [Jupyter Notebookの例](https://github.com/ufrisk/MemProcFS/wiki/API_Python_Jupyter) * [フォレンジックモード](https://github.com/ufrisk/MemProcFS/wiki/FS_Forensic_Yara)と[検索](https://github.com/ufrisk/MemProcFS/wiki/FS_YaraSearch)でのYaraサポート。 v5.6 * バグ修正、パフォーマンスの最適化、マイナーアップデート。 * フォレンジックモードの[files](https://github.com/ufrisk/MemProcFS/wiki/FS_Forensic_Files)プラグイン - 復元可能な内容を持つファイルを表示。 * フォレンジックモードの[Findevil](https://github.com/ufrisk/MemProcFS/wiki/FS_FindEvil)用の[Elastic Security](https://github.com/elastic/protections-artifacts)からの組み込みyaraルール。<br>起動オプション[`-license-accept-elastic-license-2.0`](https://github.com/ufrisk/MemProcFS/wiki/_CommandLine#-license-accept-elastic-license-2.0)でElasticライセンス2.0に同意することで有効化されます。 v5.7 * バグ修正。 * Rust APIアップデート。 * 新しいFindEvil Yara検出。 * ファイルオブジェクトのYaraスキャン(FindEvilによる脆弱なドライバ検出の可能性が向上)。 * 小さい読み取りに対するFPGAパフォーマンスの改善。 * リモート[LeechAgent](https://github.com/ufrisk/LeechCore/wiki/LeechAgent)を介した[MemProcFSリモーティング](https://github.com/ufrisk/MemProcFS/wiki/_Remoting)の改善。SMB - tcp/445を介した完全なMemProcFSリモートサポート。メモリフォレンジックインシデントレスポンス(IR)に最適! v5.8 * C/C++、C#、Rust、Python、Java向けのLeechCore APIアップデート。 * ARM64 Windowsメモリの分析サポート。 [v5.9](https://github.com/ufrisk/MemProcFS/releases/tag/v5.9) * バグ修正。 * モジュールの改善: ntfs、procinfo、web。 * C# API: 改善。 * Java API: 効率的なメモリアクセスのためのjava.lang.foreign(JDK21+)のサポート。 * Linux PCIe FPGAパフォーマンスの改善。 * FindEvil: トリガーされたYaraルールが表示されるようになりました。 * FindEvil: 分析対象システム上に存在するWindows DefenderからのAV検出。 * Python API: 新機能(マルチリード、タイプリード)とスキャッターリードパフォーマンスの改善。 * Proxmoxメモリダンプファイルのサポート。 [v5.10](https://github.com/ufrisk/MemProcFS/releases/tag/v5.10) * Windows 11 24H2リリースのサポート。 * バグ修正。 * VADマップに名前付き_SECTIONオブジェクトを追加。 * `-memmap auto`の改善。 * ハイバネーションファイルのサポート。 * FindEvil: UM APC検出。コントリビューションしてくれた[@thejanit0r](https://github.com/thejanit0r)に感謝します。 * 読みやすいシステム情報のための[Sysinfoモジュール](https://github.com/ufrisk/MemProcFS/wiki/FS_Sys_Sysinfo)。 * イベントログファイルへの便利なアクセスのための[Eventlogモジュール](https://github.com/ufrisk/MemProcFS/wiki/FS_Misc_Eventlog)。 * バイナリ検索APIが最大16Mの検索語を許可するようになりました(以前の16から増加)。 * Prefetchのパース。 [v5.11](https://github.com/ufrisk/MemProcFS/releases/tag/v5.11) * バグ修正。 * [新しいVmmsharp C# API](https://github.com/ufrisk/MemProcFS/wiki/API_CSharp)。 [v5.12](https://github.com/ufrisk/MemProcFS/releases/tag/v5.12) * バグ修正。 * アップデート(FindEvil、新しいシグネチャなど)。 * カーネルオブジェクト、ドライバ、デバイス用の新しいAPI。 [v5.13](https://github.com/ufrisk/MemProcFS/releases/tag/v5.13) * バグ修正。 * 新しい[コンソールモジュール](https://github.com/ufrisk/MemProcFS/wiki/FS_Process_Console)を追加。 * [filesモジュール](https://github.com/ufrisk/MemProcFS/wiki/FS_Forensic_Files)のファイル復元の改善(ファイルサイズ、署名情報)。 * メモリコールバックAPI機能(C/C++ APIのみ)。 * x64ユーザーモードプロセスコールスタックの[コールスタックパース](https://github.com/ufrisk/MemProcFS/wiki/FS_Process_Threads)。 [v5.14](https://github.com/ufrisk/MemProcFS/releases/tag/v5.14) * バグ修正。 * Linux clangコンパイルサポート。 * macOSサポート。 [v5.15](https://github.com/ufrisk/MemProcFS/releases/tag/v5.15) * バグ修正。 * gRPCを使用したLinux LeechAgentサポート(LeechCore v2.21)。 * 新しいFindEvil検出: High Entropy。 * [DNSキャッシュパース](https://github.com/ufrisk/MemProcFS/wiki/FS_SysInfo_Network)。コントリビューションしてくれた[@MattCore71](https://github.com/MattCore71)に感謝します。 [v5.16](https://github.com/ufrisk/MemProcFS/releases/tag/v5.16) * バグ修正。 * Windows 11 25H2のサポート </details> [v5.17](https://github.com/ufrisk/MemProcFS/releases/tag/v5.17) * Windows 11 26H1のサポート。 * レジストリパースの改善。 * APIの新しいリフレッシュオプション。 * APIの新しいオプションのロギングコールバック。 * ファイルパス内の非ASCII文字のサポート。 [v5.18](https://github.com/ufrisk/MemProcFS/releases/tag/v5.18) * バグ修正。 * 新モジュール: Windows Terminalパーサー(Win11+)。 * 新フォレンジックモジュール: amcacheパーサー(Win10+)。 * PTEマップの上限を65536から131072に調整。 * 修正: WSLマウントされたMemProcFS(drvfs)でのファイル書き込みが動作するようになりました。 [v5.19](https://github.com/ufrisk/MemProcFS/releases/tag/v5.19) * Windows 11 26H2のサポート。 * バグ修正。 * 修正: ヒープ復元がWindows 11 24H2以降で動作するようになりました。 * 修正: プールとヒープのパースを改善。 * 修正: 圧縮メモリの復元率を改善。 * 新モジュール: /sys/eventlog(Windowsイベントログ復元)。 * 新モジュール: /sys/proc/cpu - プロセスのCPU使用率、現在と合計。 * 新API関数: VMMDLL_MemVirtualQuery。 * 新API関数: VMMDLL_WinReg_QueryNameOriginalU。