Patent ID: 7111285

Claim:
A method for protecting a software application module, comprising: given an application module having executable code, constructing a managed challenge system specific to the application module, said constructing including copying certain executable code from the application module and forming the managed challenge system, the certain executable code being at identified authorization points in the application module; rewriting the application module by overwriting the certain executable code at identified authorization points with control transfers to the managed challenge system, such that a rewritten application module results; for a byte sequence in the application module which matches one of said control transfers and which does not correspond with an identified authorization point, including dummy code in the managed challenge system; associating said dummy code with said byte sequence; and linking the managed challenge system to the rewritten application module wherein the steps of rewriting, constructing and linking are able to be performed by a compiler, the compiler creating a shared object that includes the managed challenge system and that is linked with the rewritten application module; and wherein the step of rewriting further comprises, without access to source code, instrumenting the application module's executable code.