W^X Transition (3 of 6): Intro to dynamic binaries An example of how shared libraries (used to) map Note the "data" segments which are supposed to be only RW- but contain objects which are RWX An additional danger is that some objects are writeable when they do not need to be, ie. GOT/PLT/ctors/dtors GOT = shared lib Global Offset Table PLT = shared lib Procedure Linkage Table ctors = c++ constructors dtors = c++ destructors