Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
rustdllproxy — रस्ट में प्रॉक्सी DLL जनरेट करें | Kitploit
उपकरण/GitHubGitHub/johnswiftc/rustdllproxy
पेलोड जनरेशनस्थायित्व तंत्रपोस्ट-शोषणपेनिट्रेशन टेस्टिंगरेड टीमिंगपेलोड डेवलपमेंट
GitHubjohnswiftc/rustdllproxy

rustdllproxy

रस्ट में प्रॉक्सी DLL जनरेट करें

रिपॉजिटरी देखें
56442 महीने पहलेKitploit द्वारा समीक्षित

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

सभी देखें →

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

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

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

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

rustdllproxy


Windows अनुप्रयोगों के लिए प्रॉक्सी DLL आसानी से उत्पन्न करने और विकसित करने हेतु एक Rust क्रेट उपयोगिता।

स्थापना

root@kitploit:~
cargo install rustdllproxy

संगतता

यह क्रेट वर्तमान में केवल मानक DLL PE प्रारूप का समर्थन करता है।

वर्तमान सीमाएँ

  • कस्टम कोड से फ़ंक्शन हुक करते समय, फ़ंक्शन सिग्नेचर ज्ञात होना चाहिए
    • इसे डिसअसेंबलर और रिवर्स इंजीनियरिंग टूल जैसे Ghidra का उपयोग करके पाया जा सकता है

कमांड्स

Rustdllproxy दो उपकमांड प्रदान करता है:

कमांडउद्देश्य
rustdllproxy newएक या अधिक मौजूदा DLL से नया प्रॉक्सी cdylib क्रेट उत्पन्न करें।
rustdllproxy build.def फ़ाइल को src/lib.rs के साथ सिंक करें और क्रेट बनाएँ।
root@kitploit:~
rustdllproxy --help        # top-level help
rustdllproxy new --help    # generation flags
rustdllproxy build --help  # build flags

नया क्रेट बनाना

रणनीति पर एक संक्षिप्त टिप्पणी

अपना क्रेट उत्पन्न करने से पहले, तय करें कि आप अपना प्रॉक्सी कैसे काम करना चाहते हैं। एक सामान्य पैटर्न सर्च ऑर्डर हाइजैकिंग है, जहाँ आप पहले अपने लक्षित DLL का नाम बदलकर target_.dll जैसा कुछ रखते हैं, और फिर संकलित प्रॉक्सी को target.dll के रूप में उपयोग करते हैं। यह binary -> target.dll -> target_.dll जैसा प्रवाह बनाता है।

आपके उपयोग के मामले के आधार पर आगे बढ़ने के कई रास्ते हैं। हालाँकि, यदि आपको प्रॉक्सी किए जा रहे अंतर्निहित DLL का नाम बदलने की आवश्यकता है, तो उत्पन्न .def फ़ाइल को तदनुसार अपडेट करें।


root@kitploit:~
rustdllproxy new -p path/to/target_.dll -n my_proxy

टिप: rustdllproxy clap के साथ एक CLI के रूप में बनाया गया है। सभी विकल्पों और फ़्लैग्स को देखने के लिए rustdllproxy --help चलाएँ।

हुक लिखना

मैक्रो लाइब्रेरी 3 मुख्य हुक प्रकारों का समर्थन करती है: prehook, posthook, और fullhook।

हुक कार्यान्वयन चरण

  1. #[no_mangle] निर्देश को हुक मैक्रो से बदलें (//<dllname>.dll अनुगामी टिप्पणी को उसी स्थान पर छोड़ दें)

    root@kitploit:~
    #[prehook("dllbeingproxied.dll", "function_name")] //dllbeingproxied.dll
    
  2. फ़ंक्शन सिग्नेचर भरें (उन्हें संशोधित करने के लिए इनपुट को mut के रूप में घोषित करें)

  3. rustdllproxy build के साथ बनाएँ।

हुक प्रकार

prehook

मूल फ़ंक्शन से पहले कोड निष्पादित करता है। आपको कार्यक्षमता जोड़ने या इनपुट वेरिएबल्स को संशोधित करने की अनुमति देता है।

root@kitploit:~
#[prehook("target.dll", "my_function")] //target.dll
fn my_function(mut param1: i32, mut param2: &str) {
    // Your code here - executes before original function
    param1 *= 2;  // Modify parameters if needed
}

posthook

मूल फ़ंक्शन के बाद कोड निष्पादित करता है। जादुई ret वेरिएबल का उपयोग करके रिटर्न मान देखें और संपादित करें।

root@kitploit:~
#[posthook("target.dll", "calculate")] //target.dll
fn calculate(input: i32) -> i32 {
    // Original function executes first
    // Then your code runs with access to 'ret'
    ret = ret * 2;  // Modify return value
}

नोट: ret वेरिएबल स्वचालित रूप से mutable के रूप में परिभाषित होता है। यदि आवश्यक न हो तो इसे संदर्भित करने की आवश्यकता नहीं है।

fullhook

फ़ंक्शन निष्पादन पर पूर्ण नियंत्रण प्रदान करता है। रिटर्न मान और फ़ंक्शन कॉलिंग को मैन्युअल रूप से प्रबंधित करें।

root@kitploit:~
#[fullhook("target.dll", "do_multi_add")] //target.dll
fn do_multi_add(mut a: i32, mut b: i32, mut c: i32) -> i32 {
    // Pre-processing
    a += 10;
    b += 20;

    // Call original function with magic func()
    let mut return_value: i32 = func(a, b, c);

    // Post-processing
    return_value *= 2;

    // Must explicitly return the value
    return_value
}

क्रेट बनाना

प्रॉक्सी क्रेट निर्देशिका से चलाएँ (या इसे पहले तर्क के रूप में पास करें):

root@kitploit:~
rustdllproxy build [PATH] [--profile <name>] [--no-build] [-- <extra cargo args>]
फ़्लैगडिफ़ॉल्टप्रभाव
PATH.प्रॉक्सी क्रेट रूट का पथ।
--profile <name>releaseकार्गो बिल्ड प्रोफ़ाइल (release, dev, custom)।
--no-buildoff.def फ़ाइल को पुनः उत्पन्न करें लेकिन cargo build छोड़ें।
-- <args>—cargo build को शब्दशः अग्रेषित किया गया।

चेतावनियाँ

  • .def फ़ाइल हर बिल्ड पर पूरी तरह पुनः उत्पन्न होती है, मैन्युअल परिवर्तन अधिलेखित हो जाएंगे। यदि आपको rustdllproxy के निर्माण के तरीके के विरुद्ध मैन्युअल परिवर्तन करने की आवश्यकता है, तो cargo का उपयोग करके इसे पूरा किया जा सकता है।
  • बिल्ड सिस्टम निर्माण से पहले अंतर्निहित DLL का नाम प्राप्त करने के लिए उत्पन्न टिप्पणियों, .def निर्यातों और हुक नामों पर निर्भर करता है। यदि पर्याप्त जानकारी नहीं है, तो एक त्रुटि फेंकी जाएगी जो समझाएगी कि इसे कैसे पुनर्प्राप्त किया जा सकता है।

उदाहरण कार्यप्रवाह

मान लीजिए आप DLL सर्च ऑर्डर हाइजैकिंग के माध्यम से office सॉफ़्टवेयर में उपयोग होने वाले office.dll को संशोधित करना चाहते हैं:

चरण 1: मूल DLL तैयार करें

root@kitploit:~
# Rename the original DLL
mv office.dll office_.dll

चरण 2: प्रॉक्सी क्रेट उत्पन्न करें

root@kitploit:~
rustdllproxy new -p office_.dll -n office_proxy

चरण 3: हुक लागू करें

root@kitploit:~
#[prehook("office_.dll", "open_window")] //office_.dll
fn open_window() {
    // Your custom code here...
    println!("Window is about to open!");
}

चरण 4: बनाएँ और तैनात करें

root@kitploit:~
cd office_proxy
rustdllproxy build

बिल्ड फ़ाइलें /target के अंतर्गत स्थित होती हैं

DLL बंडलिंग संबंधी विचार

एक ही क्रेट के साथ कई लक्षित DLL को प्रॉक्सी करना संभव है। यह सुविधा शायद ही कभी उपयोग की जाती है और इसके साथ कुछ महत्वपूर्ण चेतावनियाँ जुड़ी हैं।

कई DLL बंडल करते समय:

  • फ़ंक्शन ऑर्डिनल्स बदल सकते हैं निर्यात क्रम के कारण
  • यह शायद ही समस्याग्रस्त होता है क्योंकि आधुनिक सॉफ़्टवेयर संगतता के लिए निर्यात नामों का उपयोग करता है
  • मुख्य रूप से विश्लेषण और कस्टम अनुप्रयोग विकास के लिए उपयोगी

परिवर्तन लॉग

रिलीज़ नोट्स CHANGELOG.md में उपलब्ध हैं।

योगदान

योगदान का स्वागत है! कृपया बेझिझक issues और pull requests सबमिट करें।

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