Çoğu zaman NOPtalimat adreslerini hizalamak için kullanılır. Bu genellikle, örneğin arabellek taşmasını kullanmak veya dize güvenlik açığını biçimlendirmek için Shellcode yazılırken görülür .
100 bayt ileriye doğru göreceli bir sıçrama yaptığınızı ve kodda bazı değişiklikler yaptığınızı varsayalım. Şanslarınız değişikliklerinizin atlama hedefinin adresini bozmasıdır ve böylece yukarıda belirtilen göreceli sıçramayı da değiştirmeniz gerekecektir. Burada, NOPhedef adresi ileri itmek için s ekleyebilirsiniz . NOPHedef adres ile atlama talimatı arasında birden fazla s varsa NOP, hedef adresi geriye çekmek için s'yi kaldırabilirsiniz .
Etiketleri destekleyen bir montajcı ile çalışıyorsanız bu sorun olmaz. Basitçe yapabilirsiniz JXX someLabel(burada JXX bazı koşullu atlamadır) ve birleştirici, someLabeletiketi bu etiketin adresiyle değiştirecektir . Ancak, monte edilen makine kodunu (gerçek opcode) elle değiştirirseniz (bazen kabuk kodu yazarken olduğu gibi), atlama talimatını manuel olarak da değiştirmeniz gerekir. Ya onu değiştirin ya da NOPs kullanarak hedef kod adresini taşıyın .
NOPTalimat için bir başka kullanım örneği, NOP kızağı olarak adlandırılan bir şey olacaktır . Özünde fikir, hiçbir yan etkiye neden olmayan (ör.NOPveya bir kaydı artırıp azaltarak) ancak talimat işaretçisini artırın. Bu, örneğin, adresi bilinmeyen belirli bir kod parçasına atlamak istediğinde yararlıdır. İşin püf noktası, bahsedilen NOP kızağını hedef kodun önüne yerleştirmek ve daha sonra bahsedilen kızağa bir yere atlamaktır. Olan şey, yürütmenin umarım yan etkisi olmayan diziden devam etmesidir ve istenen kod parçasına çarpana kadar talimat başına talimatı iletir. Bu teknik, yukarıda belirtilen tampon taşması istismarlarında ve özellikle ASLR gibi karşı güvenlik önlemlerinde yaygın olarak kullanılmaktadır .
NOPTalimat için bir başka özel kullanım , bir programın kodunu değiştirmektir. Örneğin, koşullu atlamaların parçalarını NOPs ile değiştirebilir ve böylece durumu atlatabilirsiniz. Bu, yazılımın kopya korumasını " kırırken " sıklıkla kullanılan bir yöntemdir . En basit haliyle, sadece kod if(genuineCopy) ...satırı için montaj kodu yapısını kaldırmak ve talimatları NOPs ve .. ile değiştirmekle ilgili .. Voilà! Hiçbir kontrol yapılmaz ve orijinal olmayan kopyalar çalışır!
Özünde hem kabuk kodu hem de çatlama örneklerinin aynı şeyi yaptığına dikkat edin; göreli adreslemeye dayanan işlemlerin göreli adreslerini güncellemeden mevcut kodu değiştirin.