Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

फ़ीडसंपर्कगोपनीयता© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
ReflectivePluginLoader — Windows x64 के लिए रिफ्लेक्टिव PE मैपर और एवेज़न-हार्डन्ड मॉड्यूल स्टॉम्पिंग इंजन | Kitploit
उपकरण/GitHubGitHub/racoten/reflectivepluginloader
रक्षात्मक उपकरणस्थायित्व तंत्ररिवर्स इंजीनियरिंगशेलकोडपोस्ट-शोषणमालवेयर विश्लेषणलर्निंग और शिक्षारेड टीमिंगपेलोड डेवलपमेंटबाइनरी शोषण
GitHubracoten/reflectivepluginloader
821161 दिन पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →

ReflectivePluginLoader

Windows x64 के लिए रिफ्लेक्टिव PE मैपर और एवेज़न-हार्डन्ड मॉड्यूल स्टॉम्पिंग इंजन

रिपॉजिटरी देखें
साझा करें

ReflectivePluginLoader

License: MIT

Windows x64 के लिए एक न्यूनतम रिफ्लेक्टिव PE मैपर और मॉड्यूल स्टॉम्पिंग इंजन, जो एक साफ़ IPlugin ABI के इर्द-गिर्द बनाया गया है। मेमोरी में एक बाइट बफ़र से DLL को मैप करता है, एक्सपोर्ट्स को रिज़ॉल्व करता है, और प्लगइन फ़ंक्शन्स को कॉल करता है — या तो अनाम मेमोरी से (क्लासिक रिफ्लेक्टिव लोड) या एक वैध रूप से लोड की गई बलि DLL के अंदर से (मॉड्यूल स्टॉम्पिंग)।

मॉड्यूल स्टॉम्पिंग पथ एवेज़न-हार्डन्ड है: प्रति-सेक्शन सुरक्षा (कोई RWX नहीं), प्राइवेट मैपिंग क्लीनअप, मूल बाइट रिस्टोरेशन, और हीप स्क्रबिंग। pe-sieve, Moneta, hollows_hunter, BeaconEye, और YARA के साथ पोस्ट-क्लीनअप स्कैन स्टॉम्प्ड मॉड्यूल पर शून्य निष्कर्ष लौटाते हैं।

त्वरित शुरुआत

Windows पर CMake 3.15+ और MSVC, Clang, या MinGW में से कोई एक आवश्यक है।

# Configure (defaults to Release)
cmake -B build -G Ninja

# Build
cmake --build build

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

डिबग बिल्ड के लिए पूर्ण डायग्नोस्टिक आउटपुट के साथ:

cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Debug
cmake --build build

उपयोग

क्लासिक रिफ्लेक्टिव लोड

.\harness.exe cmdplugin.dll whoami

प्लगइन को VirtualAlloc'd मेमोरी में मैप करता है। कोई PEB प्रविष्टि नहीं, कोई लोडर सूचना नहीं।

मॉड्यूल स्टॉम्पिंग

.\harness.exe cmdplugin.dll whoami --stomp xpsservices.dll
.\harness.exe cmdplugin.dll "dir C:\" --stomp mscms.dll

LoadLibrary के माध्यम से sacrificial DLL को वैध रूप से लोड करता है, फिर उसके .text को plugin के साथ एक सतत image के रूप में अधिलेखित करता है। निष्पादन sacrificial DLL के address space से होता है — call stacks और module lists कोड को sacrificial module को आरोपित करते हैं।

Harness cleanup के बाद रुक जाता है ताकि आप process के विरुद्ध memory scanners चला सकें।

Module Stomping कैसे काम करता है

1. MapImage(plugin)               private reflective mapping
2. LoadLibrary(sacrificial)       legitimate load, PEB entry
3. Save original .text bytes      for later restoration
4. Copy plugin image -> .text     contiguous image preserves RIP-relative offsets
5. Relocate stomped code          fix addresses for new base
6. Patch entry point              mov eax,1; ret (safe FreeLibrary)
7. Per-section protections        RX / R / RW per section (never RWX)
8. Resolve exports                from private mapping, return stomped addresses
9. Free private mapping           eliminates floating PE artifact
10. Execute plugin                code runs inside "sacrificial.dll"

सफ़ाई (चोरी-छिपे बचाव)

11. Restore original .text bytes  sacrificial code back in place
12. FreeLibrary(sacrificial)      unloads the module
13. LoadLibrary(sacrificial)      fresh load = clean file-backed pages
14. Scrub heap buffers            zero saved bytes + raw DLL data

क्लीनअप के बाद, बलि DLL सामान्य रूप से लोड किए गए मॉड्यूल से अप्रभेद्य होती है। पेज फ़ाइल-बैक्ड (निजी नहीं) होते हैं, सामग्री ऑन-डिस्क फ़ाइल से मेल खाती है, और हीप पर कोई PE आर्टिफ़ैक्ट शेष नहीं रहता।

एवेज़न तकनीकें

IOCशमन
RWX मेमोरी क्षेत्रप्रति-सेक्शन सुरक्षा: .text RX, .rdata R, .data RW
निजी निष्पादन योग्य मेमोरी (फ़्लोटिंग PE)एक्सपोर्ट रिज़ॉल्यूशन के बाद निजी मैपिंग को VirtualFree करें
संशोधित मॉड्यूल कोडमूल .text बाइट्स को पुनर्स्थापित करें, फिर स्वच्छ फ़ाइल-बैक्ड पेजों के लिए FreeLibrary + LoadLibrary करें
हीप पर PE हेडरमुक्त करने से पहले रॉ DLL बफ़र और सहेजे गए बाइट्स को memset(0) करें
अनलोड पर DllMain क्रैशस्टॉम्पिंग से पहले एंट्री पॉइंट को mov eax,1; ret पर पैच किया गया

प्रोजेक्ट संरचना

ReflectivePluginLoader/
├── CMakeLists.txt
├── Include/
│   ├── IPlugin.h                      Plugin ABI (TaskApi, IPlugin)
│   ├── ReflectiveLoaderEngine.h       PE mapper + export resolver
│   └── StompedLoaderEngine.h          Module stomping engine
├── Modules/
│   └── CmdPlugin/
│       ├── cmdplugin.cpp              Command execution plugin
│       └── CMakeLists.txt
├── Testing/
│   ├── main.cpp                       Test harness
│   └── CMakeLists.txt
└── Tools/
    └── file2hex.py                    DLL to C byte array converter

प्लगइन लिखना

  1. Modules/ के अंतर्गत एक डायरेक्टरी बनाएं और IPlugin.h शामिल करें।
  2. IPlugin इंटरफ़ेस को लागू करें:
#include "IPlugin.h"

class MyPlugin : public IPlugin {
public:
    void init()                  const override { /* setup */ }
    void execute(TaskApi* task)  const override { /* work  */ }
    void cleanup()               const override { /* tear  */ }
};
  1. पाँच एंट्री पॉइंट्स (create_plugin, destroy_plugin, plugin_init, plugin_exec, plugin_cleanup) एक्सपोर्ट करें। CRT-सुरक्षित एलोकेशन के लिए HeapAlloc + placement new का उपयोग करें।

  2. एक CMakeLists.txt जोड़ें और इसे रूट में add_subdirectory() के साथ रजिस्टर करें।

बलिदानी DLL चुनना

बलिदानी DLL के .text सेक्शन का आकार प्लगइन के वर्चुअल इमेज साइज़ से बड़ा होना चाहिए। इसे प्रोसेस द्वारा सक्रिय रूप से उपयोग या रनटाइम पर इंटीग्रिटी-चेक नहीं किया जाना चाहिए।

अच्छे उम्मीदवार: xpsservices.dll (1.8 MB .text), mscms.dll, colorui.dll, npmproxy.dll

खराब उम्मीदवार: ntdll.dll, kernel32.dll (सक्रिय रूप से उपयोग किए जाते हैं), clr.dll (इंटीग्रिटी चेक किया जाता है)

सीमाएँ

  • समर्थित: बेस रीलोकेशन, इम्पोर्ट रिज़ॉल्यूशन, प्रति-सेक्शन सुरक्षा, सन्निहित इमेज स्टॉम्पिंग, पेज रिस्टोरेशन के साथ पूर्ण क्लीनअप
  • समर्थित नहीं: TLS कॉलबैक, डिले-लोड इम्पोर्ट, फॉरवर्डेड एक्सपोर्ट, CFG, SEH टेबल रजिस्ट्रेशन
  • स्टॉम्पिंग: पूरी प्लगइन वर्चुअल इमेज बलिदानी .text सेक्शन में फिट होनी चाहिए

क्या बदला (v2.0 — एवेज़न हार्डनिंग)

यह रिलीज़ मूल प्रूफ-ऑफ-कॉन्सेप्ट का पूर्ण पुनर्लेखन है:

  • मॉड्यूल स्टॉम्पिंग इंजन (StompedLoaderEngine.h) — पूर्ण एवेज़न क्लीनअप के साथ सन्निहित इमेज स्टॉम्पिंग
  • प्रति-सेक्शन मेमोरी सुरक्षा — .text RX, .rdata R, .data RW; अब RWX क्षेत्र नहीं
  • प्राइवेट पेज एलिमिनेशन — FreeLibrary + LoadLibrary चक्र प्राइवेटाइज़्ड पेजों को साफ़ फ़ाइल-बैक्ड पेजों से बदल देता है
  • हीप स्क्रबिंग — स्कैन विंडो से पहले रॉ DLL बाइट्स और सहेजे गए मूल .text को ज़ीरो कर दिया जाता है
  • एंट्री पॉइंट पैचिंग — mov eax,1; ret FreeLibrary के दौरान DllMain क्रैश को रोकता है
  • प्राइवेट मैपिंग क्लीनअप — एक्सपोर्ट रिज़ॉल्यूशन के बाद रिफ्लेक्टिव मैपिंग को VirtualFree करें (फ्लोटिंग PE को समाप्त करता है)
  • रिफ्लेक्टिव लोडर पुनर्लेखन (ReflectiveLoaderEngine.h) — इनपुट बफ़र से सीधी मैपिंग, कोई मध्यवर्ती VirtualAlloc कॉपी नहीं
  • प्लगइन ABI क्लीनअप (IPlugin.h) — डेड हेल्पर्स (BeaconCout, CStrLenA, PluginAlloc, PluginFree) हटाए गए
  • CmdPlugin क्लीनअप — सभी मार्कर स्ट्रिंग्स और डीबग आर्टिफैक्ट्स हटाए गए
  • टेस्ट हार्नेस पुनर्लेखन (main.cpp) — NDEBUG के माध्यम से कंडीशनल कंपाइलेशन; Release बिल्ड केवल कमांड आउटपुट और स्कैन कमांड दिखाते हैं
  • CMake डिफ़ॉल्ट्स — डिफ़ॉल्ट रूप से Release बिल्ड टाइप, प्लगइन DLLs के लिए -nostartfiles (रिफ्लेक्टिव-लोडेड कोड में कोई CRT नहीं)

स्कैनर परिणाम (क्लीनअप के बाद)

image

संदर्भ

  • stephenfewer/ReflectiveDLLInjection
  • ired.team - Module Stomping
  • fancycode/MemoryModule
  • PE Format (Microsoft)
  • forrest-orr/moneta
  • hasherezade/pe-sieve

लाइसेंस

MIT

टूल डाउनलोड करें