1. A method comprising: providing a portable memory device with at least a virtual registry file and execution files associated with a software application, wherein the virtual registry file is derived from a system registry file in a first computing device, configured to allow execution of the software application in the portable memory device, and generated by monitoring registry values written to the system registry file while the software application is installed in the first computing device, and wherein the registry values are simultaneously time written to the virtual registry file; upon plugging the portable memory device to the second computing device, automatically uploading personalized information to the second computing device; mapping system calls to access the execution files and the virtual registry file stored in the portable memory device, wherein the mapping system calls comprises searching the virtual registry file for a value of a key or sub-key in response to an operating system request for the value of the key or sub-key, and searching a system registry file in the second computing device for the value of the key or sub-key if the value of the key or sub-key is not found in the virtual registry file, wherein the virtual registry file determines which keys or sub-keys to superimpose in the system registry file of the second computing device; executing the software application in the portable memory device by the second computing device; upon disconnecting the portable memory device form the second computing device, removing the personalized information and residual data from the second computing device; and returning system registry values in the system registry file of the second computing device to a previous setting.