कुछ हमलों में प्रोग्राम को एक विशिष्ट पते पर कूदने और वहां से चलते रहना शामिल है। इंजेक्शन कोड को उस सटीक स्थान पर पहले किसी भी तरह लोड किया जाना चाहिए।
स्टैक यादृच्छिकरण और अन्य रनटाइम मतभेद उस पते को बना सकते हैं जहां प्रोग्राम भविष्यवाणी करने के लिए असंभव कूद जाएगा, इसलिए हमलावर स्मृति की एक बड़ी श्रृंखला में एक एनओपी स्लेज रखता है। यदि कार्यक्रम स्लेज में कहीं भी कूदता है, तो यह शेष शेष एनओपी चलाएगा, कुछ भी नहीं करेगा, और फिर स्लेज के बगल में, पेलोड कोड चलाएगा।
हमलावर एनओपी स्लेज का उपयोग करने का कारण लक्ष्य पता बड़ा करना है: कोड इंजेक्शन कोड की शुरुआत में बिल्कुल कहीं भी स्लेज में कूद सकता है।
एक 128-बाइट एनओपी स्लेज सिर्फ 128 बाइट चौड़े एनओपी निर्देशों का एक समूह है।
नोट # 1: एनओपी (नो-ऑप्शन) एक निर्देश है जो अधिकांश (सभी?) आर्किटेक्चर में उपलब्ध है जो स्मृति और कुछ रनटाइम पर कब्जा करने के अलावा कुछ भी नहीं करता है।
नोट # 2: चर लंबाई लंबाई वाले आर्किटेक्चर में, एक एनओपी निर्देश आमतौर पर लंबाई में केवल एक बाइट होता है, इसलिए इसे सुविधाजनक निर्देश पैडिंग के रूप में उपयोग किया जा सकता है। दुर्भाग्य से, यह एनओपी स्लेज करने में भी आसान बनाता है।
बस सोच रहा है कि व्यावहारिक अनुप्रयोग क्या हैं जिसके लिए आप इसे सीखने की योजना बना रहे हैं? –
मैं एक सीई अंडरग्रेड हूं और ब्रायंट, ओहॉलरॉन पाठ्यपुस्तक सीएस: एपीपी में इस विषय के बारे में सीख रहा हूं। मैं अपने कॉलेज में आईटी सुरक्षा के लिए भी काम करता हूं, इसलिए यह मुझे रूचि देता है। – amorimluc
यही एक सामाजिक अभियंता कहता है! ;) – DeepS1X