Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
ReflectivePluginLoader — 一个极简的PE映射器,直接从内存加载DLL并调用干净的插件接口,无需LoadLibrary。 | Kitploit
工具/GitHubGitHub/racoten/reflectivepluginloader
防御工具持久化机制逆向工程Shellcode后渗透利用恶意软件分析学习与教育红队Payload 开发二进制利用
GitHubracoten/reflectivepluginloader

ReflectivePluginLoader

4361211天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

一个极简的PE映射器,直接从内存加载DLL并调用干净的插件接口,无需LoadLibrary。

查看仓库

ReflectivePluginLoader

License: MIT

一个极简的反射式 PE 映射器,带有适用于 Windows x64 的热插拔插件接口。它直接从内存中的字节缓冲区映射 DLL,解析其导出,并通过干净的 IPlugin ABI 进行调用,而无需接触 LoadLibrary。这是关于反射式加载器和模块化插件架构的博客文章的配套代码。

博客文章

查看完整文章:使用反射式加载器替代 LoadLibrary 实现 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. 实现五个导出函数(create_plugin、destroy_plugin、plugin_init、plugin_exec、plugin_cleanup),使用 HeapAlloc/placement new 以实现 CRT 安全的跨模块分配。

  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

下载工具