Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ReflectivePluginLoader — LoadLibraryを必要とせず、DLLをメモリから直接ロードしてクリーンなプラグインインターフェースへ呼び出す、最小限のPEマッパー。 | Kitploit
ツール/GitHubGitHub/racoten/reflectivepluginloader
防御ツール永続化メカニズムリバースエンジニアリングシェルコードポストエクスプロイトマルウェア分析学習と教育レッドチーミングペイロード開発バイナリエクスプロイト
GitHubracoten/reflectivepluginloader

ReflectivePluginLoader

4361211日前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

LoadLibraryを必要とせず、DLLをメモリから直接ロードしてクリーンなプラグインインターフェースへ呼び出す、最小限のPEマッパー。

リポジトリを見る

ReflectivePluginLoader

License: MIT

Windows x64 向けの、ホットスワップ可能なプラグインインターフェースを備えた最小限のリフレクティブ PE マッパー。メモリ上のバイトバッファから直接 DLL をマッピングし、そのエクスポートを解決し、LoadLibrary に触れることなくクリーンな IPlugin ABI を呼び出す。リフレクティブローダーとモジュール式プラグインアーキテクチャに関するブログ記事のコンパニオンコード。

ブログ記事

完全な解説はこちら: Using Reflective Loaders to Replace LoadLibrary for Hot-Swappable Modules in C++

クイックスタート

root@kitploit:~
# Configure
cmake -B build

# Build
cmake --build build --config Release

# The build produces:
#   build/Release/cmdplugin.dll   (example plugin)
#   build/Release/harness.exe     (test harness)

使用方法

root@kitploit:~
# Map cmdplugin.dll from disk, run "dir C:\"
harness.exe cmdplugin.dll "dir C:\"

# Default: loads cmdplugin.dll, runs "whoami"
harness.exe

ハーネスは DLL をバイトバッファに読み込み、リフレクティブローダーでマッピングし、プラグインのエクスポートを解決し、IPlugin インターフェースを通じてコマンドをディスパッチする。

プロジェクト構成

root@kitploit:~
ReflectivePluginLoader/
├── CMakeLists.txt              # Root build
├── Include/
│   ├── IPlugin.h               # Plugin ABI (TaskApi, IPlugin, helpers)
│   └── ReflectiveLoaderEngine.h # PE mapper + export resolver
├── Modules/
│   └── CmdPlugin/
│       ├── cmdplugin.cpp        # Example: command execution plugin
│       └── CMakeLists.txt
├── Testing/
│   ├── main.cpp                 # Test harness (loads DLL from file)
│   └── CMakeLists.txt
└── Tools/
    └── file2hex.py              # Convert a DLL to a C byte array

独自のモジュールの作成

  1. Modules/ の下に新しいディレクトリを作成する。
  2. IPlugin.h をインクルードし、IPlugin インターフェースを実装する:
root@kitploit:~
#include "IPlugin.h"

class MyPlugin : public IPlugin {
public:
    void init() const override { /* setup */ }
    void execute(TaskApi* task) const override { /* do work */ }
    void cleanup() const override { /* teardown */ }
};
  1. 5 つのエクスポート関数 (create_plugin、destroy_plugin、plugin_init、plugin_exec、plugin_cleanup) を、CRT セーフなクロスモジュール割り当てのために HeapAlloc/placement new を使って実装する。

  2. CMakeLists.txt を追加し、ルートの CMakeLists.txt に add_subdirectory() で登録する。

ホストはモジュールが内部で何をするかを知る必要はない。マッピングし、解決し、init -> execute -> cleanup を呼び出して、次へ進む。

既知の制限

マッパーは基本機能を処理し、意図的にそこで止まっている:

  • サポート対象: ベースリロケーション、インポート解決、セクションごとのメモリ保護
  • サポート対象外: TLS コールバック、遅延読み込みインポート、転送エクスポート、CFG メタデータ、SEH テーブル登録

モジュールがこれらのいずれかを必要とする場合は、マッパーを拡張するか、明確なエラーで早期にモジュールを拒否すること。中途半端な暗黙のサポートは最悪の障害モードである。

参考資料

  • stephenfewer/ReflectiveDLLInjection - オリジナルのリフレクティブローダー
  • ired.team - Reflective DLL Injection - ウォークスルーと PoC
  • fancycode/MemoryModule - フル機能の「メモリから DLL をロード」ライブラリ
  • PE Format (Microsoft) - PE/COFF 仕様

ライセンス

MIT

ツールをダウンロード