The document discusses various return-oriented programming (ROP) countermeasures, including position independent code (PIE) which randomizes the base address of all segments, making it difficult to predict gadget addresses and rely on bruteforcing. PIE imposes around a 25% performance overhead but is not widely used. Full RELRO prevents PLT/GOT overwrites but does not prevent GOT dereferencing. Stack pivot and return detection are difficult to implement outside of research. For exploitation concerns, PIE is the best available option.