A method for memory assignment for a guest operating system supported by a host operating system on a host computing device having a host storage holding records of license information accessible only to the host operating system, the method comprising: receiving a request to launch an application in the guest operating system; and in response to receiving the request, at the host operating system: generating, based on a record of license information stored in the host storage, a license blob containing data representing a product key copied from the record of license information; determining a random memory location within a range of memory that is outside of a range of memory that is allocated to the guest operating system in the host computing device; and writing the generated license blob to the determined random memory location which is outside of the range of memory that is allocated to the guest operating system; and communicating, from the host operating system to the guest operating system, the location of the determined random memory location which is outside of the range of memory that is allocated to the guest operating system such that the guest operating system has access to the written license blob at the determined random memory location to launch the application, thereby preventing relaunching the application in a new guest operating system on a new host computing device using the same license blob when data in the range of memory allocated to the guest operating system on the host computing device is copied to a new range of memory that is allocated to the new guest operating system on the new host computing device. receiving a request to launch an application in the guest operating system; and in response to receiving the request, at the host operating system: generating, based on a record of license information stored in the host storage, a license blob containing data representing a product key copied from the record of license information; determining a random memory location within a range of memory that is outside of a range of memory that is allocated to the guest operating system in the host computing device; and writing the generated license blob to the determined random memory location which is outside of the range of memory that is allocated to the guest operating system; and communicating, from the host operating system to the guest operating system, the location of the determined random memory location which is outside of the range of memory that is allocated to the guest operating system such that the guest operating system has access to the written license blob at the determined random memory location to launch the application, thereby preventing relaunching the application in a new guest operating system on a new host computing device using the same license blob when data in the range of memory allocated to the guest operating system on the host computing device is copied to a new range of memory that is allocated to the new guest operating system on the new host computing device. generating, based on a record of license information stored in the host storage, a license blob containing data representing a product key copied from the record of license information; determining a random memory location within a range of memory that is outside of a range of memory that is allocated to the guest operating system in the host computing device; and writing the generated license blob to the determined random memory location which is outside of the range of memory that is allocated to the guest operating system; and communicating, from the host operating system to the guest operating system, the location of the determined random memory location which is outside of the range of memory that is allocated to the guest operating system such that the guest operating system has access to the written license blob at the determined random memory location to launch the application, thereby preventing relaunching the application in a new guest operating system on a new host computing device using the same license blob when data in the range of memory allocated to the guest operating system on the host computing device is copied to a new range of memory that is allocated to the new guest operating system on the new host computing device.