code-reuse attack
Misusing instructions that are already in the program's executable code, instead of adding new code; the reason non-executable memory alone is not enough.
A code-reuse attack redirects control flow into code already present in executable pages (whole library functions or fragments of existing functions) after a control-flow hijack, sidestepping non-executable data pages; the course names the class only, as the motivation for ASLR and control-flow integrity.