Large nopsleds make it easier for ROP machinery to sloppily reach targets.
authorderaadt <deraadt@openbsd.org>
Wed, 21 Jun 2017 19:23:12 +0000 (19:23 +0000)
committerderaadt <deraadt@openbsd.org>
Wed, 21 Jun 2017 19:23:12 +0000 (19:23 +0000)
commit6ad246754118312ee2894796687958bdf081baed
tree0bddbd2d5070d834f39b06c89c606da26b77d92e
parent2b6787043d1f6b7519bbc71449b4b6ef1cf99e1a
Large nopsleds make it easier for ROP machinery to sloppily reach targets.
Convert these to "trapsleds' instead.  Since these can occur inside
fall-through blocks of code (and gcc sure isn't helping us by identifying
those), convert most to "short jump over" followed a sequence of int3.
This works for sled sizes 3-15, for i386 and amd64.   Work by Todd Mortimer
ok mlarkin
gnu/usr.bin/binutils-2.17/gas/config/tc-i386.c