ब्लॉग

9 मार्च 2017

सॉफ्टवेयर विकास: एक हुक क्या है?

/
द्वारा प्रकाशित किया गया था

सॉफ्टवेयर विकास: एक हुक क्या है?

हमें हुक के कुछ प्रकार के बारे में पता होना चाहिए

एक हुक क्या है?सॉफ़्टवेयर विकास में, हुकिंग एक ऐसा विचार है जो एक प्रोग्राम के आचरण को बदलने की अनुमति देता है। संभावना कोड आपको अपनी कक्षा के कोड को बदलने के बिना कुछ के पहले आचरण को बदलने के लिए प्रदान करता है। हुक रणनीतियों को ओवरराइट करके यह समाप्त हो गया है

इस प्रकार का उपयोग अनुप्रयोगों में नई कार्यक्षमता जोड़ने के साथ-साथ बेहद सहायक होता है, साथ ही सिस्टम के वैकल्पिक प्रक्रियाओं और संदेशों के बीच पत्राचार को प्रोत्साहित करता है। हुक सिस्टम निष्पादन को कम करने के लिए तैयारी लोड को बढ़ाने के लिए होता है जो सिस्टम को प्रत्येक संदेश के लिए करने की आवश्यकता होती है। यह आवश्यक है जब शुरू किया जाना चाहिए और जल्द से जल्द अवसर पर खाली किया जाना चाहिए।

कल्पना कीजिए कि आप किसी बाहरी प्रबंधन से ग्राहक प्रबंधन प्रणाली (सीएमएस) का उपयोग कर रहे हैं और आप चाहते हैं कि हर बार एक और पोस्ट वितरित की जा सके और यह आचरण उपकरण का डिफ़ॉल्ट न हो। आगे बढ़ने वाले दो मार्ग होंगे:

सीएमएस स्रोत कोड बदलना एक स्मार्ट विचार नहीं है, डिवाइस के निम्न रिफ्रेश में आप सभी के बाद अपना परिवर्तन खोने की कठिनाई का सामना करेंगे या फिर सब कुछ ताज़ा करने की क्षमता नहीं होगी;

  • अपना खुद का विशेष सीएमएस एक और भयानक विचार है, सभी चीजों को माना जाता है, आपके पास नई चीजें बनाने के लिए पर्याप्त ऊर्जा या संपत्ति नहीं है या यहां तक ​​कि क्या बनाना है;
  • हुक का उपयोग करने की संभावना का अन्वेषण करें, अर्थात यह जांचें कि क्या सीएमएस इस मॉड्यूल या मॉड्यूल की तरफ देखने के लिए तैयार किए गए नाम के तत्वों के लिए, इस स्थिति के लिए, नए पदों का वितरण
  • हुक का उपयोग करने के लिए पृथ्वी के नीचे भाग आमतौर पर डिवाइस से उपकरण तक उतार-चढ़ाव करता है। हुक की सिद्धांत अनुकूल स्थिति पहले कोड को बदलना नहीं है। सभी खुले स्रोत उपकरणों के सभी महान अभ्यास मैनुअल में, जो अंतराल को अद्यतन करते हैं, वे मंत्र को अद्यतन करते हैं जो केंद्र को नहीं बदलता है। ताज़ा करने के बावजूद, किसी भी व्यक्ति जो बाद में कार्य करने के लिए आता है, वह परिवर्तन के बारे में नहीं सोचता है, और जिस व्यक्ति ने शायद ही कभी चर्चा की है वह उपकरण नहीं है।

एक्सटेंसिबिलिटी हुक स्ट्रेटेजी का उपयोग करने की एक और पसंदीदा दृष्टिकोण है, जो अपने स्थिर इंटरफेस को बढ़ाने के लिए आवेदन की अनुमति देती है। हुक रणनीतियों स्थिर इंटरफेस और एक विशिष्ट स्थान के लिए एक आवेदन के तत्काल से उभर सकता है कि एक किस्म के अंतरिक्ष के संचालन decouple।

अभिनव प्रौद्योगिकी समाधान भारत में गुड़गांव, दिल्ली एनसीआर में सॉफ्टवेयर डेवलपमेंट ट्रेनिंग प्रदान करता है।

डिजाइन पैटर्न के रूप में कांटों

यह ध्यान देने योग्य है कि कई (सभी) रूपरेखा डिजाइन हुक के लिए शब्दों को उदाहरण देते हैं। वे समस्या क्षेत्रों के उप-सिस्टम को कैसे कार्यान्वित करें, इसके बारे में बात करते हैं। कुछ टुकड़ी विकास के नियम पर निर्भर करते हैं: सार, फैक्टरी, बिल्डर, कमान, इंटरप्रेटर, प्रेक्षक, प्रोटोटाइप, राज्य और रणनीति।

एकीकरण और विभाजन के विकास के दोनों उदाहरणों में अन्य: टेम्पलेट विधि और ब्रिज

सिमेंटिक्स को आमतौर पर हुक तकनीक के नाम से सूचित किया जाता है (उदाहरण के लिए, कमान में, रणनीति को निष्पादित () कहा जाता है)।

आभासी विधि तालिका हुकिंग

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

चूंकि वीएमटी एक ऐसी तालिका है जिसमें इंटरफ़ेस क्षमताओं के लिए स्मृति पते के साथ पॉइंटर्स होते हैं, एक वैध हुक काम के पते के साथ पहला मेमोरी एड्रेस को दूर करने के लिए क्या करना चाहिए। इन पंक्तियों के साथ, कहा जाता तकनीक को ओवरराइट किया जाएगा, और क्षमता के नए प्रतिष्ठित आचरण को निष्पादित किया जाएगा।

हुकिंग एपीआई

सॉफ्टवेयर डेवलपमेंट - हुक-पॉइंट 2 क्या है हुकिंग एपीआई प्रक्रिया वास्तव में आपको कार्य प्रणाली के तत्वों को पुन: पेश करने की अनुमति देती है। इस तरह के शुल्कों को पकड़ने की क्षमता के साथ, आप उस गतिविधि को बदलकर अपने पैरामीटर बदल सकते हैं जो शुरू में किया जाएगा।

उदाहरण के लिए, किसी विशिष्ट रिकॉर्ड को रद्द करने का टुकड़ा करने के लिए, चलने से एक आवेदन रखें और सर्कल में एक संग्रह को छोड़ने के लिए क्लाइंट की पुष्टिकरण की मांग करें, आदि।

दरअसल, निर्णय का सबसे बड़ा कटौती सुरक्षा के क्षेत्र में है, उदाहरण के लिए, एंटीवायरस और एंटीस्पाइवेयर हो सकता है कि ऐसा हो, हमारे सामान्य विकास में परिस्थितियां हैं जहां हुकिंग एपीआई मुख्य तरीका हो सकती है।

प्रोग्रामिंग अंतरफलक हुकिंग, हमारे विशेष परिस्थिति में, ओएस से या किसी डीएलएल से एपीआई प्राप्त करने का तात्पर्य करता है, और इसकी विशिष्ट निष्पादन को कहीं और किसी अन्य क्षमता के लिए और अधिक सटीक रूप से बदलता है। मूल रूप से दो दृष्टिकोण हैं:

ईएटी और आईएटी: सभी EXE / DLL में एपीआई आयात और किराया टेबल शामिल हैं। इन तालिकाओं में पॉइंटर्स होते हैं जो API प्रविष्टि बिंदु दिखाते हैं। इन पॉइंटर्स को बदलकर, उन्हें हमारी कॉलबैक इंगित करने के लिए, हमारे पास एक हुक है। जैसा भी हो सकता है, यदि यह EXE / DLL एपीआई आयात नहीं करता है, तो यह रणनीति काम नहीं करेगी;

सीधा कोड ओवरराइटिंग: जैसा कि पहले कहा गया था, अगर एपीआई कोड की शुरुआत की ओर हमारी कॉलबैक पर कॉल जोड़ने के लिए कल्पना की जा रही थी, तो हम "हुक" कर सकते थे, जिससे हमारी क्षमता को एपीआई कहा जाता था। जैसा भी हो सकता है, एक मुद्दा है: यदि हमारे कोड को संभालने के बाद, हमें पहले एपीआई को कॉल करने की आवश्यकता होती है, तो हम अपने कॉलबैक पर वापस आ जाएंगे, और एक स्टैक बाढ़ बनाई जाएगी। एक व्यवस्था हुक को एपीआई को कॉल करने की क्षमता रखने के लिए तय करती है, इसे निष्पादित करने के बाद इसे पुनः प्रयास कर रही है। जैसा कि हो सकता है, इस केंद्र के मैदान के बीच, कुछ एपीआई कॉल किए जा सकते हैं और हमारे कॉलबैक को निष्पादित नहीं करेंगे;

इनलाइन हुक एक ऐसी बात है जिस पर हम क्षमता का मुख्य दिशानिर्देश प्राप्त करते हैं, और हम अपनी क्षमता के लिए कूद, पुश या कॉल के लिए व्यापार करते हैं।

निर्धारित रीडिंग: विंडोज़ वर्किंग सिस्टम इसके अतिरिक्त हुकुएंग एपीआई के अंतर्गत आता है। हमें पता होना चाहिए कि विंडोज़ एपीआई हुकिंग फ़ंक्शंस क्या है?

अवसर हुकिंग

सॉफ़्टवेयर डेवलपमेंट - हुक-प्वाइंट 3As हुक तकनीक क्या स्थिर इंटरफेस को कम करता है और एक विशेष स्थान के लिए किसी एप्लिकेशन की तात्कालिकता से उभरने वाली विभिन्न जगहों का आचरण नियंत्रण का एक उलट होता है। ऑब्जेक्ट्स अवसर हैंडलर कदम तैयार करने में संशोधन करते हैं। दिन के अंत में, जब कोई अवसर होता है, तो हैंडलर पूर्व-नामांकित वस्तुओं पर आकर्षक हुक रणनीतियों का जवाब देता है जो विशेष अवसरों को तैयार करने के अवसरों को निष्पादित करते हैं। अवसरों के मामले: खिड़की के संदेश, पत्राचार बंदरगाहों से लैंडल लैंडिंग।

आईएटी हुकिंग के अंदर

सॉफ्टवेयर डेवलपमेंट - विंडोज में एक हुक-प्वाइंट 4Each प्रक्रिया में एक आयात सारणी तालिका (आईएटी) नामक एक सारणी है, जो प्रत्येक प्रक्रिया के डीएलएल द्वारा भेजे गए क्षमताओं को पॉइंटर्स संग्रहीत करती है। यह तालिका रन समय पर डीएलएल के तत्वों के पते के साथ क्रमिक रूप से आबादी में आ गई है।

विशिष्ट क्षमताओं का उपयोग करते हुए, हम आईएटी तालिका को लिखने योग्य बना सकते हैं, एक कस्टम क्षमता के पते से इसका पता बदलने के लिए कल्पनीय है, इस परिवर्तन के बाद तालिका को पढ़ने-बस के रूप में पुनः निरूपित किया जा सकता है। इस बिंदु पर जब प्रक्रिया क्षमता को कॉल करने की कोशिश करती है, तो उसका पता आईएटी तालिका में मिल जाता है, और एक संकेतक वापस आ गया है। जैसा कि आईएटी तालिका में बदल दिया गया है, कस्टम क्षमता को पहली क्षमता से लाया गया है और इस प्रक्रिया में लगाया गया कोड मिल गया है।

नेटफिल्टर हुक

सॉफ्टवेयर डेवलपमेंट - हुक-पॉइंट 5Netfilter क्या है एक लिनक्स टुकड़ा उपप्रणाली 2.4 से अधिक उल्लेखनीय है। यह बंडल को अलग करने, एनएटी, फ़ायरवॉल, पुनर्निर्देशन के प्रभारी है। नेटफिल्टर असाधारण रूप से एक्स्टेंसिबल है, और इसका दस्तावेज समाप्त हो गया है। यह कर्नेल कोड में हुक का उपयोग करने की संभावना को छोड़ देता है, जिससे इसका उपयोग बेहद लचीला होता है और आम तौर पर समूह द्वारा प्राप्त किया जाता है। ये हुक कुछ कल्पनीय परिणाम छोड़ते हैं और विशिष्ट अवसरों के लिए ट्रिगर्स के रूप में भर सकते हैं।

निष्कर्ष:

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

&bsp

GTranslate Your license is inactive or expired, please subscribe again!