ब्लॉग

9 मार्च 2017

सॉफ्टवेअर डेव्हलपमेंट: अ हूक म्हणजे काय?

/
द्वारा पोस्ट केलेले

सॉफ्टवेअर डेव्हलपमेंट: अ हूक म्हणजे काय?

आम्ही हुक काही प्रकार बद्दल माहित पाहिजे

हुक काय आहे?सॉफ्टवेअर डेव्हलपमेंटमध्ये, हुकिंग ही एक कल्पना आहे जी प्रोग्रॅमचे आचरण बदलण्याची परवानगी देते. संभाव्य कोड आपल्याला तुलना क्लासमचा कोड न बदलता कशाचा तरी पहिला आचार बदलावा. हुक रणनीती ओव्हरराईट करून हे पूर्ण झाले आहे.

ऍप्लिकेशनमध्ये नवीन फंक्शनलिटी जोडण्यामुळे या प्रणालीचा वैकल्पिक वापर आणि संदेशांमधील पत्रव्यवहारांना प्रोत्साहन देणे हे अत्यंत उपयुक्त आहे. हुक प्रणाली प्रत्येक संदेशासाठी कार्यान्वित करणे आवश्यक असलेली लोड वाढवून सिस्टम अंमलबजावणी कमी करते. आवश्यकतेनुसार आवश्यकतेनुसार तो लावावा आणि लवकर संधी मिळवण्यास पाहिजे.

अशी कल्पना करा की आपण परदेशी बाहेरून ग्राहक व्यवस्थापन प्रणाली (सीएमएस) वापरत आहात आणि प्रत्येक वेळी दुसर्या पोस्ट वितरीत केल्याबद्दल आपल्याला ईमेलद्वारे सुपर अव्हॅजिएटिव्ह सावध राहतील आणि हे आचरण डिव्हाइसचे डिफॉल्ट नसते. पुढील दोन मार्ग असतील:

सीएमएस स्त्रोत कोड बदलणे एक चतुर विचार नाही, ज्यामुळे खालीलपैकी रीफ्रेश साधनामध्ये आपण आपला बदल गमावण्याची कठिनाई समोर ठेऊ शकता किंवा रीफ्रेश सर्वकाही चालू ठेवण्याची क्षमता आपल्याकडे नसेल;

  • आपल्या स्वत: च्या विशिष्ट सीएमएसला आणखी एक भयानक विचार करा, सर्व गोष्टी विचारात घेतल्या, आपल्याकडे नवीन गोष्टी करण्यासाठी पुरेसे उर्जा किंवा मालमत्ता नाही किंवा काय तयार केले आहे तेच ठेवा;
  • एक हुक वापरण्याची शक्यता एक्सप्लोर करा, म्हणजेच, सीएमएस त्या बाहेरच्या मोड्यूल्स किंवा मोड्यूल्स मध्ये दिसत असेल तर क्षणार्धात चालविलेल्या नावाच्या घटकांसाठी, या परिस्थितीसाठी, नवीन पोस्टचे वितरण
  • हुक वापरण्याच्या पृथ्वीच्या खालच्या भागापर्यंत डिव्हाइसपासून इन्स्ट्रुमेन्टवर सामान्यतः चढ-उतार असतात. हुक ची तत्त्व अनुकूल स्थिती प्रथम कोड बदलणे नाही. सर्व ओपन सोअर्स डिव्हाइसेसच्या सर्व महान अभ्यासपद्धतींमध्ये जे अधूनमधून अद्ययावत असतात, ते स्वत: पुन्हा पुन्हा नव्याने आलेला मंत्र बदलत नाही. पुनरावृत्ती अजिबात न पटणारा बनवण्याइतकाच, जो कोणी नंतर देखभाल करण्यासाठी पुढे येतो तो त्या बदलाबद्दल विचार करणार नाही आणि ज्या व्यक्तीने याविषयी चर्चा केली नाही ते तुम्ही आहात, उपकरणे नाही.

एक्सटेंबिलिबिलिटी हुक स्ट्रक्चरची उपयोगाची आणखी एक आवडीची भूमिका आहे जी त्याच्या स्थिर इंटरफेस वाढविण्यासाठी ऍप्लिकेशनला परवानगी देते. विशिष्ट पद्धतींसाठी अनुप्रयोगाच्या तत्परतेपासून विविध स्थळांच्या स्थिर इंटरफेस आणि आचारसंहिता काढून टाकण्यासाठी हुक स्ट्रॅटेजीने डिसूल्बल केले.

अभिनव तंत्रज्ञान सोल्युशन्स गुडगांव, दिल्ली एनसीआर मधील भारतातील सॉफ्टवेयर डेव्हलपमेंट ट्रेनिंग देते.

डिझाईन पॅटर्न म्हणून हुक

हे लक्षात घेण्यास उत्सुक आहे की असंख्य (सर्व) रूपरेषा डिझाइन हुक साठी अर्थशास्त्र समजावून सांगतात. ते समस्या क्षेत्राच्या सब-सिस्टम कसे चालवायचे ते बोलतात. काही निरनिराळ्या विकासाच्या नियमांवर अवलंबून असतात: सार, फॅक्टरी, बिल्डर, कमांड, इंटरप्रिटर, निरीक्षक, प्रोटोटाइप, राज्य आणि धोरण.

एकीकरण आणि विभाजन विकासाच्या दोन्ही उदाहरणांमध्ये इतर: टेम्पलेट पद्धत आणि पुल.

सिमेंटिक्स सामान्यतः हुक तंत्र नावाने (उदाहरणार्थ, कमांडमध्ये, कार्यान्वयन (execute)) म्हणतात.

 

व्हर्च्युअल मेडिशन टेबल हुकिंग

सॉफ़्टवेअर डेव्हलपमेंट - हुक - पॉइंट 1 इर्च्युअल तंत्र काय आहे ते स्टॅटिक रणनीतींवरून अप्रभेद्य मार्गाने आणले जातात परंतु व्हर्च्युअल तंत्र बदलले जाऊ शकत असल्यामुळे संकलक विशिष्ट व्हर्च्युअल क्षमतेच्या पत्त्याला माहिती देत ​​नाही जेव्हा आपण ते आपल्या कोडमध्ये कॉल करता. कंपाइलर, अशा प्रकारे, वर्च्युअल मेडिशन टेबल (व्हीएमटी) एकत्रित करतो, जे रनटाइममध्ये क्षमता पत्त्यावर चौकशी करण्याचे एक मार्ग देते. प्रत्येक आभासी धोरणाचा चालू कालावधीत व्हीएमटी द्वारे सक्रिय केला जातो. एका प्रश्नाच्या व्हीएमटीमध्ये त्याच्या आधीच्या प्रकरणांसाठी सर्व आभासी नीती असतात आणि त्याचबरोबर ते जाहीर करतात की म्हणून, वर्च्युअल तंत्रात घटकांची तुलना करण्यापेक्षा अधिक मेमरी वापरतात, त्याचप्रमाणे ते वेगवान चालवतात.

VMT एक टेबल आहे ज्यामध्ये इंटरफेस क्षमतेसाठी मेमरी पत्त्यांसह पॉईंट्स समाविष्ट असतात, कायदेशीर हुक काम केल्याच्या पत्त्यासह प्रथम मेमरी एड्रेसला पाठविणे. या ओळीबरोबरच, म्हटल्या जाणार्या तंत्राचे अधिलिखित केले जाईल, आणि क्षमतेचा नवीन हवासा वाटणारा अंमलबजावणी केली जाईल.

 

हुकिंग API

सॉफ्टवेअर डेव्हलपमेंट - एक हुक काय आहे - पॉइंट 2 हुकिंग API प्रक्रिया खरोखर आपल्याला कार्य प्रणालीतील घटकांची पुनर्रचना करण्याची परवानगी देते. अशा शुल्काचा ताबा घेण्याच्या क्षमतेसह, सुरुवातीला सुरू असलेली क्रियाकलाप बदलून आपण त्यांच्या मापदंड बदलू शकता.

उदाहरणार्थ, विशिष्ट रेकॉर्ड रद्द करणे, चालविण्यापासून अर्ज करणे, आणि वर्तुळापर्यंतच्या अर्जाची पूर्तता करण्यासाठी क्लायंटची पुष्टी करणे अशी मागणी करणे हे कल्पनाशक्तीचे आहे.

खरंच, निर्णयातील सर्वात मोठे कट सुरक्षामध्ये आहे, उदाहरणार्थ, अँटीव्हायरस आणि एन्टीस्पायव्हर. हे असे होऊ शकते, आपल्या सामान्य विकासातील परिस्थिती आहेत जेथे हुकिंग API, मुख्य मार्ग आहे.

प्रोगामिंग इंटरफेस हुकिंग, आमच्या विशिष्ट परिस्थितीमध्ये, OS पासून किंवा कोणत्याही डीएलएलवरून API मिळविण्याचे सुचवते आणि कोणत्याही अन्य क्षमतेमध्ये त्याचे वैशिष्ट्यपूर्ण अंमलबजावणी इतरत्र कुठेतरी बदलते. मूलतः दोन पध्दती आहेत:

ईएटी आणि आयएटी: सर्व EXE / DLL मध्ये आयात आणि भाडे टेबल सारखी एपीआई समाविष्ट आहे. या सारण्यांमध्ये एंट्री एंट्री पॉइंट दाखवणारे पॉइंटर असतात. या पॉइंटर्स बदलून, त्यांना कॉलबॅक सूचित करून, आमच्याकडे एक हुक आहे हे शक्य तितके व्हा, जर हे EXE / DLL API चे आयात करत नसेल तर हे धोरण कार्य करणार नाही;

सरळ कोड ओव्हरराइटिंग: आधीच सांगितल्याप्रमाणे, API कोडच्या सुरवातीस कॉलबॅकवर कॉल करण्यासाठी आम्ही कल्पनाशक्ती करण्यायोग्य असू शकतो, आम्ही "हुक" असे म्हणू शकतो, ज्यामुळे एपीआय ज्या ज्या ठिकाणी बोलावले गेले तेथे आपली क्षमता वाढविली जाऊ शकते. हे शक्य तितक्याच एक समस्या आहे: जर आमची कोड हाताळली गेली, तर आम्हाला प्रथम एपीआय वर कॉल करावा लागेल, आम्ही आमच्या कॉलबॅकवर परत जाऊ, आणि स्टॅकचा पूर निर्माण होईल. एपीआय कॉल करण्याची क्षमता असणारी एक व्यवस्था हुक निश्चित आहे, एकदा ती अंमलात आणल्यानंतर पुन्हा एकदा प्रयत्न करते. हे असे असू शकते की हे केंद्र ग्राउंडमध्ये, काही API कॉल केल्या जाऊ शकतात आणि कॉलबॅक कार्यान्वित करणार नाहीत;

इनलाइन हुक म्हणजे आपल्याला क्षमतेचे मुख्य मार्गदर्शक तत्त्व मिळते आणि आम्ही आमच्या क्षमतेसाठी जंप, पुश किंवा कॉलसाठी व्यवसाय करतो.

निर्धारित वाचन: विंडोज कार्यरत प्रणाली अतिरिक्त हूकिंग API लागू करते. आम्ही विंडोज एपीआई हुकिंग फंक्शन्स कसे माहित पाहिजे?

 

Occasion Hooking

सॉफ़्टवेअर डेव्हलपमेंट - हुक-पॉइंट 3A हुक तंत्र काय आहे? स्थिर इंटरफेस आणि विविध प्रकारचे वर्तन जे एका विशिष्ट सेटिंगसाठी एखाद्या अनुप्रयोगाच्या तत्परतेने उदयास शकतात नियंत्रणांचे उलट परिणाम होते. ऑब्जेक्ट प्रसंग हँडलर चरण तयार करण्यास सुधारित करतात. दिवसाच्या शेवटी जेव्हा एखादी प्रसंग घडते तेव्हा हाताळणीने पूर्व-नोंदणी केलेल्या वस्तूंवर हुक रचनेला प्रतिसाद देणारी वस्तू देते जे विशिष्ट उपक्रम राबविते. प्रसंगी प्रकरणे: विंडो संदेश, पत्रव्यवहार पोर्ट पासून लँडिंग.

 

आयएटी हुकिंगच्या आत

सॉफ्टवेअर डेव्हलपमेंट - विंडोजमध्ये हुक-पॉइंट 4Each प्रोसेस म्हणजे काय, म्हणजे आयात पत्ता सारणी (आयएटी) नावाची टेबल आहे, जी प्रत्येक प्रक्रियेच्या डीएलएलद्वारे पाठविलेल्या क्षमतेस पोइंट स्टोअर करते. ही सारणी क्रमशः DLL च्या घटकांच्या पत्त्यासह रन टाइमवर जाते.

विशिष्ट क्षमतेचा वापर करून, आम्ही आयएटी टेबल लिहीण्यायोग्य बनवू शकतो, त्याच्या पत्त्यावर एका सानुकूल क्षमतेच्या पत्त्यानुसार त्याचा पत्ता बदलण्याइतपत विचार केला जाऊ शकतो, या बदला नंतर फक्त-वाचू सारख्या टेबलची पुनर्रचना करणे. जेव्हा प्रक्रिया क्षमता कॉल करण्याचा प्रयत्न करते तेव्हा त्याचा पत्ता आयएटी टेबलमध्ये मिळतो आणि एक पॉइंटर परत येतो. आयएटी सारणी बदलली गेल्यामुळे, सानुकूल क्षमता प्रथम क्षमतेची स्थापना केली गेली आहे आणि प्रक्रियामध्ये समाविष्ट केलेले कोड मिळविले आहे.

 

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

सॉफ्टवेअर डेव्हलपमेंट - हुक - पॉइंट 5Netfilter हा एक Linux तुकडा उपप्रणाली आहे जो 2.4 पेक्षा अधिक लक्षवेधक आहे. हे बंडल विभक्त, NAT, फायरवॉल, रीडायरेक्शन, इतरांदरम्यान प्रभारी आहे. Netfilter अपवादात्मकपणे विस्तारणीय आहे आणि त्याचे दस्तऐवजीकरण संपले आहे. यामुळे कर्नल कोडमध्ये हुक वापरणे शक्य होते, ज्यामुळे त्याचा वापर अत्यंत लवचिक बनतो आणि सामान्यत: गटाद्वारे प्राप्त होतो. हे हुक काही कल्पनीय परिणाम सोडून देतात आणि विशिष्ट प्रसंगी ट्रिगर म्हणून भरू शकतात.

 

निष्कर्ष:

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

प्रत्युत्तर द्या

GTranslate Please upgrade your plan for SSL support!
GTranslate Your license is inactive or expired, please subscribe again!