1. A method of ensuring the integrity of an application comprising: receiving, at a secure processing system, a request to launch an application binary associated with the application; receiving, at the secure processing system and from a secure storage, the application binary; receiving secure monitor code; in response to receiving the request, integrating the secure monitor code into the application binary to generate a secure application process, wherein the secure monitor code is integrated at a different position in the application binary each time the request to launch the application binary is received; communicating the secure application process to a host memory; and executing the secure application process on a host processor.