Advanced exploit development: return-oriented programming (ROP)
··2046 words·10 mins
ROP defeats non-executable memory by chaining existing instruction sequences (“gadgets”) ending in ret. This post covers the technique from vulnerable-binary basics through modern variants (JOP, SROP, BROP) and the mitigations (CET, shadow stacks, CFI/CFG) that make ROP progressively harder in 2026.