Nytro Posted December 23, 2012 Report Posted December 23, 2012 Reverse Stack ExecutionBabak Salamatbsalamat@uci.eduAndreas Galgal@uci.eduAlexander Yermolovichayermolo@uci.eduKarthik Manivannankmanivan@uci.eduMichael Franzfranz@uci.eduDonald Bren School of Information and Computer SciencesUniversity of California, IrvineIrvine, CA 92697, USATechnical Report No. 07-07August 23, 2007AbstractIntroducing variability during program execution is an eective technique forghting software monoculture which enables the quick spread of malicious codesuch as viruses and worms. Existing works in the area of automatic genera-tion of execution variability have been limited to instruction randomization andheap allocation randomization, even though stack overows are the predomi-nant attack vectors used to inject malicious code. We present a compiler-basedtechnique that introduces stack variance by reversing the stack growth direc-tion, and is thus able to close this loophole. In this paper we discuss the stepsnecessary to reverse the stack growth direction for the Intel x86 instruction setwhich was designed for a single stack growth direction. The performance eval-uation of our approach shows a negligible overhead for most applications. Forone of the benchmark applications, we see a small performance gain.Download:www.ics.uci.edu/~kmanivan/files/TechReport07-07.pdf Quote