1. A computer-implemented method for mitigating return-oriented programming (ROP) attacks, the method comprising: receiving, by a computer, program code for execution and associated components needed by the program code for execution; loading, by the computer, the program code and associated components into memory; selecting, by the computer, a predetermined number of executable machine language instruction sequences from the loaded program code and the associated components, wherein each sequence terminates in a return instruction; making, by the computer, multiple non-executable copies of each of the selected machine language instruction sequences; and distributing, by the computer, the selected executable machine language instruction sequences and the multiple non-executable copies in memory; whereby, if the computer sustains an ROP attack and the ROP attack selects a machine language instruction sequence terminating in a return instruction to include in an ROP payload, the likelihood of the ROP attack selecting an executable machine language instruction sequence terminating in a return instruction is diminished.
1. A computer-implemented method for mitigating return-oriented programming (ROP) attacks, the method comprising: receiving, by a computer, program code for execution and associated components needed by the program code for execution; loading, by the computer, the program code and associated components into memory; selecting, by the computer, a predetermined number of executable machine language instruction sequences from the loaded program code and the associated components, wherein each sequence terminates in a return instruction; making, by the computer, multiple non-executable copies of each of the selected machine language instruction sequences; and distributing, by the computer, the selected executable machine language instruction sequences and the multiple non-executable copies in memory; whereby, if the computer sustains an ROP attack and the ROP attack selects a machine language instruction sequence terminating in a return instruction to include in an ROP payload, the likelihood of the ROP attack selecting an executable machine language instruction sequence terminating in a return instruction is diminished. 5. A method in accordance with claim 1 , wherein distributing further comprises: periodically distributing, by the computer, the selected executable machine language instruction sequences and the multiple non-executable copies in memory.