Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
ReflectivePluginLoader — Um mapeador PE minimalista que carrega DLLs diretamente da memória e chama uma interface de plugin limpa, sem necessidade de LoadLibrary. | Kitploit
Ferramentas/GitHubGitHub/racoten/reflectivepluginloader
Ferramentas DefensivasMecanismos de PersistênciaEngenharia ReversaShellcodePós-ExploraçãoAnálise de MalwareAprendizado e EducaçãoRed TeamingDesenvolvimento de Payloads

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Exploração de Binários
GitHubracoten/reflectivepluginloader

ReflectivePluginLoader

Um mapeador PE minimalista que carrega DLLs diretamente da memória e chama uma interface de plugin limpa, sem necessidade de LoadLibrary.

Ver Repositório
43611há 11 diasRevisado pelo Kitploit
Compartilhar

ReflectivePluginLoader

License: MIT

Um mapeador PE reflexivo minimalista com uma interface de plugin hot-swappable para Windows x64. Mapeia uma DLL diretamente de um buffer de bytes na memória, resolve suas exportações e chama uma ABI IPlugin limpa sem tocar em LoadLibrary. Código complementar para o post do blog sobre loaders reflexivos e arquiteturas de plugins modulares.

Post do Blog

Veja o artigo completo: Using Reflective Loaders to Replace LoadLibrary for Hot-Swappable Modules in C++

Início Rápido

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)

Uso

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

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

O harness lê a DLL em um buffer de bytes, mapeia-a com o loader reflexivo, resolve as exportações do plugin e despacha o comando através da interface IPlugin.

Estrutura do Projeto

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

Escrevendo Seu Próprio Módulo

  1. Crie um novo diretório em Modules/.
  2. Inclua IPlugin.h e implemente a interface 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. Implemente as cinco funções exportadas (create_plugin, destroy_plugin, plugin_init, plugin_exec, plugin_cleanup) usando HeapAlloc/placement new para alocação cross-module segura para a CRT.

  2. Adicione um CMakeLists.txt e registre-o no CMakeLists.txt raiz com add_subdirectory().

O host não precisa saber o que seu módulo faz internamente. Ele mapeia, resolve, chama init -> execute -> cleanup e segue em frente.

Limitações Conhecidas

O mapeador lida com o básico e deliberadamente para por aí:

  • Suportado: Realocações base, resolução de importações, proteções de memória por seção
  • Não suportado: Callbacks TLS, importações delay-load, exportações encaminhadas, metadados CFG, registro de tabela SEH

Se um módulo precisar de qualquer um desses, estenda o mapeador ou rejeite o módulo antecipadamente com um erro claro. Suporte parcial silencioso é o pior modo de falha.

Referências

  • stephenfewer/ReflectiveDLLInjection - O loader reflexivo original
  • ired.team - Reflective DLL Injection - Passo a passo e PoC
  • fancycode/MemoryModule - Biblioteca completa de "carregar DLL da memória"
  • PE Format (Microsoft) - Especificação PE/COFF

Licença

MIT

Baixar ferramenta