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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
IAT-Hook — C++ DLL जो PE हेडर को पार्स करके और आयातित फ़ंक्शन पतों को लक्ष्य प्रक्रिया के भीतर एक कस्टम हुक पर पुनर्निर्देशित करके Import Address Table हुकिंग करता है। | Kitploit
उपकरण/GitHubGitHub/gmh5225/iat-hook
स्थायित्व तंत्रकोड विश्लेषणरिवर्स इंजीनियरिंगमालवेयर विश्लेषणरेड टीमिंगपेलोड डेवलपमेंटबाइनरी शोषण
GitHubgmh5225/iat-hook

IAT-Hook

C++ DLL जो PE हेडर को पार्स करके और आयातित फ़ंक्शन पतों को लक्ष्य प्रक्रिया के भीतर एक कस्टम हुक पर पुनर्निर्देशित करके Import Address Table हुकिंग करता है।

रिपॉजिटरी देखें
14 साल पहलेअभी तक समीक्षित नहीं

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

सभी देखें →

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

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

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

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

हुकिंग - IAT

हुकिंग

हुकिंग एक तकनीक है जो उपयोगकर्ता को किसी प्रोग्राम के निष्पादन प्रवाह को पुनर्निर्देशित करने में सक्षम बनाती है। अधिकांश समय हम फ़ंक्शन हुकिंग का उपयोग करते हैं। हम या तो किसी फ़ंक्शन को प्रतिस्थापित करते हैं या उसे अपने स्वयं के फ़ंक्शन पर पुनर्निर्देशित करते हैं, यह बहुत उपयोगी है और इसके कई उपयोग हैं। हुकिंग के कई तरीके हैं, यहाँ हम IAT Hooking देख रहे हैं, इसका मतलब है Import Address Table। इसमें एक बड़ी तालिका में किसी फ़ंक्शन के पते को अपने स्वयं के पते से प्रतिस्थापित करना शामिल है जो रनटाइम पर भरी जाती है। जैसा कि मैंने पहले एक अन्य रेपो में कहा था, मैं अनुशंसा करता हूं कि आप इस कोड के IAT पार्सिंग भाग को समझने के लिए PE Format के बारे में अधिक पढ़ें। यहाँ एक बुनियादी आरेख है कि IAT Hooking कैसे काम करती है। इस उदाहरण में, दुर्भावनापूर्ण कोड निष्पादित होने के बाद मूल फ़ंक्शन को कॉल किया जा रहा है। इस उदाहरण में हम मूल फ़ंक्शन के बजाय बस एक अन्य फ़ंक्शन को कॉल करेंगे। उस तकनीक का लाभ यह है कि इसमें किसी फ़ंक्शन के शरीर को संशोधित करने की आवश्यकता नहीं होती है, जैसा कि नियमित डिटोर्स .text पैच हुक के विपरीत होता है जिसमें jmp रखने के लिए फ़ंक्शन की शुरुआत में निर्देशों को बदलना पड़ता है।

image

हुकिंग के चरण

यह वास्तव में सुनने में जितना आसान लगता है उससे कहीं अधिक सरल है, हम चीजों को आसान बनाने के लिए आंतरिक रूप से आगे बढ़ेंगे जिसका मतलब है कि यह रेपो एक DLL में कंपाइल होगा जिसे लक्ष्य प्रक्रिया में इंजेक्ट किया जा सकता है, मेरे LoadLibraryA या Manual Mapping इंजेक्टर्स का उपयोग करके लक्ष्य प्रक्रिया में इंजेक्ट करने के लिए।

पहले हम Import Descriptor का पता लगाने के लिए लक्ष्य प्रक्रिया के PE Headers को पार्स करते हैं जैसे :

process_base + nt_header->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress;

फिर हम प्रत्येक आयातित मॉड्यूल के माध्यम से लूप कर सकते हैं, इस मॉड्यूल में प्रत्येक फ़ंक्शन के माध्यम से लूप कर सकते हैं (नेस्टेड लूप का कारण) और उस फ़ंक्शन का पता ढूंढ सकते हैं जो रनटाइम पर भरा गया है। इस उदाहरण में हम TranslateMessage को हुक करेंगे जिसका उपयोग Windows GUI पर इवेंट्स को प्रोसेस करने के लिए करता है। तो एक बार जब हमें उस फ़ंक्शन का पता मिल जाता है, तो हम इसे अपने स्वयं के फ़ंक्शन के पते से प्रतिस्थापित कर देते हैं जिसे हमने पहले परिभाषित किया था और जो रिमोट प्रक्रिया के संदर्भ में मौजूद है क्योंकि हम आंतरिक हैं। उस स्थान पर लिखने की अनुमति सुनिश्चित करने के लिए VirtualProtect का उपयोग करना न भूलें।

VirtualProtect(&firstThunk->u1.Function, sizeof(uint64_t), PAGE_READWRITE, &old_protection);
firstThunk->u1.Function = (uint64_t)hookfunction;

प्रदर्शन

जैसा कि आप देख सकते हैं, जब notepad TranslateMessage को कॉल करता है (लगभग हर समय) तो यह हमारे हुक फ़ंक्शन को चलाएगा जो अंत में एक मैसेज बॉक्स प्रदर्शित करता है !

image

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