praveena211
@leo:what is NOP??
NOP is better known as No Operator. This operator is quite often used in programming to manage unequal inputs. By the way this is very rarely used by professional programmers since it lowers the speed of operation.
NOP is usually used by hackers to run buffer overflow attacks over a system, NOP comes into play if coder had explicitly implimented bound checking. Since the program becomes capable of checking bounds itself, NOP is used to create overflow.
Example:
Consider a capacity of buffer is 500 and it is completely filled. Now you want to add extra data to run buffer overflow then you will cover all data in such a way with NOP so that in all the buffer checking mechanism should fail. Now suppose data addition is integer which is to be incremented, then it will be given as
x++
now cover it with equivalent NOP so that bound checking mechanism should not detect it,
NOPx++
now first bound checking mechanism will encounter NOP so it will think there's no increment or decrement means no operation is getting performed on buffer but when it'll encounter x++ it will discard it, to cope this we again add NOP to it like this
NOPx++NOP
so now it starts with NOP and ends with NOP so buffer checking mechanism fails to detect it and buffer overflow runs successfully.
This is one of the most basic use of NOP, there might be many uses but currently i never encountered anything which made me use NOP in program. I hope it was easy explanation. Feel free to ask if anything is not clear.