Skip to main content

Posts

Showing posts from September, 2017

Attacking Network Device PART - 6

Return Oriented Programming  Introduction   Since 1988, the Morris Worm stack overflow has been a nightmare for developers. Several countermeasures have been created to avoid this kind of attack. Compilers are pioneers in developing such techniques.    Sadly, few programmers know very much about compilers' options as they usually compile programs with inherited procedures. For instance, the very well known GCC compiler has a stack protection with the fstack-protector option [1].    In the middle of the past decade, manufacturers introduced the No-eXecute (NX) bit which prevents the execution of code beyond the text area of a program. When this bit is ON, the processor sends a signal to the Operating System (OS). In addition, it is also necessary for the Operating System to be instructed to stop the code execution. In Windows, this is achieved by activating the Data Execution Prevention.     Readers must be aware that the NX bit does not prevent stack overflow and only prevents the