c एक एनओपी कैसे काम करता है?




assembly stack (2)

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

साइड नोट: x86 आर्किटेक्चर पर एनओपी निर्देश हेक्स बाइट 0x90 के बराबर है इसलिए एक पूर्ण शोषण बफर कुछ ऐसा देख सकता है:

| एनओपी स्लेज | शैलकोड | दोहराया वापसी पता |

ऐसा लगता है कि ईआईपी रजिस्टर एनओपी स्लेज में पाए गए किसी भी पते पर इंगित करता है, यह प्रत्येक एनओपी निर्देश को निष्पादित करते समय वृद्धि करेगा, एक बार में, जब तक कि यह अंततः शेलकोड तक पहुंच जाए

मुझे एक अच्छा स्रोत नहीं मिल रहा है जो इस प्रश्न का उत्तर देता है। मुझे पता है कि एक एनओपी स्लेज एक तकनीक है जो बफर ओवरफ्लो हमले में स्टैक यादृच्छिकता को रोकने के लिए प्रयोग की जाती है, लेकिन मैं अपने सिर को कैसे काम करता है इसके बारे में नहीं मिल सकता।

एक सरल उदाहरण क्या है जो इस विधि को दिखाता है?

128-बाइट नॉप स्लेज का मतलब क्या है?


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

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

हमलावर एनओपी स्लेज का उपयोग करने का कारण लक्ष्य पता बड़ा करना है: कोड इंजेक्शन कोड की शुरुआत में बिल्कुल कहीं भी स्लेज में कूद सकता है।

एक 128-बाइट एनओपी स्लेज सिर्फ 128 बाइट चौड़े एनओपी निर्देशों का एक समूह है।

नोट # 1: एनओपी (नो-ऑप्शन) एक निर्देश है जो अधिकांश (सभी?) आर्किटेक्चर में उपलब्ध है जो स्मृति पर कब्जा करने और कुछ रनटाइम के अलावा कुछ भी नहीं करता है।

नोट # 2: चर लंबाई लंबाई वाले आर्किटेक्चर में, एक एनओपी निर्देश आमतौर पर लंबाई में केवल एक बाइट होता है, इसलिए इसे सुविधाजनक निर्देश पैडिंग के रूप में उपयोग किया जा सकता है। दुर्भाग्य से, यह एनओपी स्लेज करने में भी आसान बनाता है।







nop