Patent ID: 8423974

Claim:
A computer-implemented method for obfuscating a function call, the method comprising: receiving a computer program having an annotated function; determining via a processor prolog instructions for setting up a stack frame of the annotated function, epilog instructions for tearing down the stack frame, and a call site in the computer program for the annotated function, the call site including a function call; replacing the function call with a jump instruction, the jump instruction causing execution to transfer to the annotated function at runtime; placing a first portion of the prolog instructions at a first location at the call site, the first location preceding the jump instruction; placing a second portion of the prolog instructions at a second location at a beginning of the annotated function; placing a first portion of the epilog instructions at a third location at an end of the annotated function; and placing a second portion of the epilog instructions at a fourth location at the call site, the fourth location after the jump instruction.