Patent ID: 7380051

Claim:
A method for software virus prevention comprising: scrambling functionally equivalent code segments located on a plurality of different computers to form a machine-specific code layout unique to each computer in the plurality of computers, the unique machine-specific code layout on each computer being different from the machine-specific code layout on any other computer and thus being unrecognizable to a software virus; retrieving a scrambled code block from a first computer of the plurality of computers that is functionally equivalent to a code block of a second computer of the plurality of computers; converting the retrieved scrambled code block so as to de-scramble the code segments from the unique machine-specific code layout of the first computer to a canonical form that is non-unique to any particular one of the plurality of computers; re-scrambling the converted code block for use on a particular virtual machine running on any one of the plurality of computers, the re-scrambled code block being in a virtual-machine-specific code layout unique to the particular virtual machine such that the unique virtual-machine-specific code layout on the particular virtual machine is different from the virtual-machine-specific code layout on any other virtual machine and thus being unrecognizable to a software virus; storing data as a virtual disk image on the particular virtual machine using a static disk (S) and a differencing disk (D) that are stored in a server running a remote virtual disk service; storing changes to a state of the virtual disk image on a portable memory device that includes a write log for storing an entry for each sector written, a chunk cache list that lists memory chunks currently residing in the portable memory device and a fingerprint array that contains a fingerprint for each memory chunk; buffering at least one read from the virtual disk image using the portable memory device flushing a memory state of the particular virtual machine associated with the virtual disk image to the portable memory device; and associating the memory state with a particular position on the write log on the portable memory device.