Modifying the stack such that you can call arbitrary functions with arbitrary arguments.

This is possible if you perform a buffer overflow and override some part of memory that is returned to.