1. A computer-implemented method of obfuscating code, the method comprising: identifying in a source program code a routine for replacement; selecting a function equivalent to the identified routine from a pool of functions to replace the identified routine; and replacing the selected function with the identified routine to generate modified source code.