1. A method of protecting data in a computer system against attack from viruses and worms comprising; modifying micro-code of a processor of system to be protected to remove homogeneity between processors from a manufacturer; ensuring a plurality of applications are free from viruses and worms prior to modifying op-codes; and modifying op-codes of said plurality of applications to match modified micro-code of the processor prior to execution, wherein each application may have a plurality of procedures for said modifying op-codes, wherein said modifying op-codes of said plurality of applications comprises procedures that are selected based at least on speed and security needed for a particular application, wherein said procedures for said modifying op-codes may be added to a crypto-engine and removed from said crypto engine after said modifying op-codes of an application has been performed, and wherein said modifying op-codes comprises: morphing and un-morphing procedures when code is loaded into the computer system, wherein said morphing is performed by a software development system that compiles source code directly into a morphed executable binary; and storing the code in a protected format such that it cannot effectively be infected with malicious code.