Técnica utilizada por exploits que permite a un atacante ejecutar código arbitrario en presencia de defensas como DEP o ASLR, sobrescribiendo la pila de llamadas (call stack) en los procesos para ejecutar zonas de código del propio proceso, conocidas como gadgets. El atacante puede «armar» un flujo de ejecución alternativo al del programa original, formado por partes de código del proceso atacado.