1. A method of applying security transformations to object-code at build-time or load-time, comprising: specifying a random seed as input to a pseudo-random number generator; generating a distinct instance of an executable module by: applying diversification operations to a plurality of compiled software modules by applying the random seed as input to the pseudo-random number generator to make a random selection of instances of each of the plurality of compiled software modules from sets of distinct instances of each of the plurality of compiled software modules, and to determine a random layout of the selected instances of the compiled software modules; combining the selected instances of the compiled software modules in accordance with the random layout to generate the distinct instance of the executable module; and resolving symbols within the distinct instance of the executable module.