Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
ReflectivePluginLoader — Un mapper PE minimale che carica le DLL direttamente dalla memoria e richiama un'interfaccia plugin pulita, senza bisogno di LoadLibrary. | Kitploit
Strumenti/GitHubGitHub/racoten/reflectivepluginloader
Strumenti DifensiviMeccanismi di PersistenzaReverse EngineeringShellcodePost-ExploitAnalisi MalwareApprendimento e FormazioneRed TeamingSviluppo Payload

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Binary Exploitation
GitHubracoten/reflectivepluginloader

ReflectivePluginLoader

Un mapper PE minimale che carica le DLL direttamente dalla memoria e richiama un'interfaccia plugin pulita, senza bisogno di LoadLibrary.

Vedi Repository
4361211 giorni faRevisionato da Kitploit
Condividi

ReflectivePluginLoader

License: MIT

Un mapper PE riflessivo minimale con un'interfaccia plugin hot-swappable per Windows x64. Mappa una DLL direttamente da un buffer di byte in memoria, ne risolve le esportazioni e chiama un'ABI IPlugin pulita senza toccare LoadLibrary. Codice di accompagnamento per il post del blog sui loader riflessivi e le architetture plugin modulari.

Post del Blog

Vedi l'articolo completo: Using Reflective Loaders to Replace LoadLibrary for Hot-Swappable Modules in C++

Avvio Rapido

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)

Utilizzo

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

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

L'harness legge la DLL in un buffer di byte, la mappa con il loader riflessivo, risolve le esportazioni del plugin e invia il comando attraverso l'interfaccia IPlugin.

Struttura del Progetto

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

Scrivere il Tuo Modulo

  1. Crea una nuova directory sotto Modules/.
  2. Includi IPlugin.h e implementa l'interfaccia 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. Implementa le cinque funzioni esportate (create_plugin, destroy_plugin, plugin_init, plugin_exec, plugin_cleanup) usando HeapAlloc/placement new per un'allocazione cross-module sicura per il CRT.

  2. Aggiungi un CMakeLists.txt e registralo nel CMakeLists.txt radice con add_subdirectory().

L'host non ha bisogno di sapere cosa fa internamente il tuo modulo. Mappa, risolve, chiama init -> execute -> cleanup e prosegue.

Limitazioni Note

Il mapper gestisce le funzionalità di base e si ferma deliberatamente lì:

  • Supportato: Rilocazioni di base, risoluzione degli import, protezioni di memoria per sezione
  • Non supportato: Callback TLS, import delay-load, esportazioni forwardate, metadati CFG, registrazione della tabella SEH

Se un modulo necessita di una di queste funzionalità, estendi il mapper o rifiuta il modulo in anticipo con un errore chiaro. Il supporto parziale silenzioso è la peggiore modalità di fallimento.

Riferimenti

  • stephenfewer/ReflectiveDLLInjection - Il loader riflessivo originale
  • ired.team - Reflective DLL Injection - Walkthrough e PoC
  • fancycode/MemoryModule - Libreria completa "load DLL from memory"
  • PE Format (Microsoft) - Specifica PE/COFF

Licenza

MIT

Scarica lo strumento