कैसे उन 3 तकनीक के खिलाफ की रक्षा करने के लिए:
CreateRemoteThread
आप पहली तकनीक रोका जा सकता है (CreateRemoteThread जो LoadLibrary कॉल) LoadLibrary hooking द्वारा। अपने हुक में आप डीएलएल नामों की एक सूची के खिलाफ जांच करते हैं जिन्हें आप जानते हैं प्रक्रिया का हिस्सा हैं और जिन्हें लोड किया जा सकता है, या आप ज्ञात डीएलएल की एक सूची के खिलाफ जांच सकते हैं जिन्हें आप लोड नहीं करना चाहते हैं।
जब आप एक DLL आप SetLastError (ERROR_ACCESS_DENIED) लोड करने के लिए तो लौट शून्य नहीं करना चाहते हैं। मैंने आखिरी त्रुटि सेट की है ताकि कोड लिखने वाले लोग एक त्रुटि कोड की तलाश कर सकें। यह काम पर प्रतीत होता है, शायद एक अलग कोड अधिक उपयुक्त हो सकता है।
जो डीएलएल को लोड होने से रोक देगा।
SetWindowsHookEx
मुझे लगता है कि CreateRemoteThread अवरुद्ध के लिए उसी तकनीक का SetWindowsHookEx के लिए काम करेंगे, लेकिन केवल आप अपने हुक स्थापित कर सकते हैं इससे पहले कि SetWindowsHookEx तकनीक अपने कोड (जो आमतौर पर तब होता है जब पहली विंडो बनाई गई है लोड हो रहा है शुरू कर दिया है, तो एक ऐप में - अपने जीवनकाल में इतनी जल्दी)।
कोड गुफा
अच्छा तकनीक। पहले नहीं देखा। आप इसके खिलाफ बचाव कर सकते हैं, लेकिन आपको लोड लाइब्रेरी एंट्री पॉइंट (आईएटी टेबल नहीं) को हुक करना होगा क्योंकि कोड गुफा सीधे लोड लाइब्रेरी को कॉल करता है।
लेख के लेखक ने टिप्पणी की - कई तरीकों से आप पर हमला किया जा सकता है और आपको शायद उन सभी को हराने में मुश्किल होगी। लेकिन अक्सर आप केवल कुछ डीएलएल लोड के खिलाफ बचाव करना चाहते हैं (जैसे कि एक विशेष तृतीय पक्ष डीएलएल जो आपके सॉफ़्टवेयर के साथ असंगत है क्योंकि तीसरी पार्टी डीएलएल को इस तथ्य को समायोजित करने के लिए ठीक से लिखा नहीं गया था कि एक और हुक भी मौजूद हो सकता है, इसलिए आप ब्लॉक करते हैं इसे लोड करने से)।
स्रोत
2010-04-07 09:40:37
हालांकि यह सच है कि सभी हैकर्स को रोकना असंभव होगा, मैं बस उन तीन सूचीबद्ध तकनीकों को रोकना चाहता हूं। ये सबसे कमांड हैं, और तकनीक का उपयोग लगभग विशेष रूप से किया जाता है लेकिन अधिकांश लीचर्स और स्क्रिप्ट किड्स। बस एफवाईआई, कोड इंजेक्शन डीएल के भीतर है, इसलिए मैं यह सुनिश्चित करना चाहता हूं कि एक बार जब मैं अंदर हूं, कोई और अंदर नहीं जा सकता है। –
आपको याद है, लोडर लॉक एक वैश्विक संसाधन है, और तत्काल समाप्ति के लिए इसे जब्त कर रहा है (है | होना चाहिए)। – MSalters
"क्या किसी भी प्रोग्राम को अतिरिक्त कार्यक्षमता देने के लिए संभावित रूप से डीएलएल इंजेक्शन का उपयोग कर सकते हैं" - और, इसे अक्सर क्रैश करने के लिए, प्रोग्राम-इंजेक्शन-टू-इन, बिना किसी उपयोगकर्ता द्वारा क्रैश के लिए दोषी ठहराया जा सकता है)। –