1. A method executed by one or more computing devices for generating an instance of an executable program, the method comprising: receiving, by at least one of the one or more computing devices, a random seed as input to a pseudo-random number generator; generating, by at least one of the one or more computing devices, a distinct instance of an executable program, wherein the executable program is generated from a plurality of instances of object code modules by: selecting each object code module in a plurality of object code modules from a plurality of distinct instances of that object code module by applying the random seed as input to the pseudo-random number generator; determining a random layout of the plurality of object code modules by applying the random seed as input to the pseudo-random number generator; and combining the plurality of object code modules in accordance with the random layout to generate the distinct instance of the executable program; and resolving, by at least one of the one or more computing devices, symbols within the distinct instance of the executable program.