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