VirtualBox

Ticket #5846 (new task)

Opened 4 years ago

Last modified 3 months ago

Programs that requires ProcessorID for Licensing will not function with VirtualBox

Reported by: gabster2 Owned by:
Priority: major Component: other
Version: VirtualBox 3.1.2 Keywords: processorID, CPUID
Cc: Guest type: Windows
Host type: Windows

Description (last modified by frank) (diff)

I have a software that I currently use for my job that requires me to test as newer release of this software become available. It will not go throught the license process since it rquires a processorID number (16 characters) as its licensing requirements. On my Host it works as well as other Vitualization software I currently use. I also notice that for VirtualBox there is no Processor available in the 'Device Manager' list. If this processID is present then this software will work properly as it only works once licensed. So in short, processorID should be available in VirtualBox.

Attachments

2009-12-26_115555.png Download (19.5 KB) - added by gabster2 4 years ago.
2009-12-26_114717.png Download (17.0 KB) - added by gabster2 4 years ago.

Change History

Changed 4 years ago by gabster2

Changed 4 years ago by gabster2

comment:1 follow-ups: ↓ 2 ↓ 3 Changed 4 years ago by ni81036

In my VMs processor object is available in the device manager, but likely this is not real reason of your problems (check if ACPI is on for the VM).

Likely you refer to leaf 3 of CPUID (processor serial number):  http://www.intel.com/assets/pdf/appnote/241618.pdf

comment:2 in reply to: ↑ 1 Changed 4 years ago by gabster2

Replying to ni81036:

Yes your correct. I enabled the IO APIC and the Processor shows up now. But still no processorID.

comment:3 in reply to: ↑ 1 Changed 4 years ago by gabster2

Replying to ni81036: And yes Page 3 is what I am refering to only that the processor I have is a AMD.

comment:4 Changed 4 years ago by ni81036

Is demo of some other freely available version of this software available? If not, do you have technical details on how it computes "ProcessorID" field?

Processor serial number is 12 bytes, and isn't available on AMD CPUs, so your software shall use some other mechanism to compute it.

Without this information we cannot really help you.

comment:5 Changed 4 years ago by ni81036

Also you may try to turn off hardware virtualization, and see if it will help with your problem (will work if your program rely on CPUID and it's called from the user program).

comment:6 Changed 4 years ago by gabster2

Unfortunatly, I don't have the licensing details from the software maker, they don't seem to be too willing to give it. But I can set it up on a machine if you can host it. It will need at least 10GB of free space(Min Requirements) and I can show in details what is happening when it comes to licensing there. I also tried it with Hardware virtualization off. Still the same.

You can email me at gabstertoo@… if this is an option.

comment:7 Changed 3 years ago by asaba

Just an update to this issue, for informational purposes.

As of 4.0.0, the virtualized processors still seem to be without support for the CPUID instruction. We came up against this issue when we tried to implement a licensing algorithm based on a "machine identifier" and one of our clients ran it in a VirtualBox hosted system (host was CentOS, guest was WinXP, but I was able to confirm that the same thing happens with a Win7 host).

Our application is for Windows, so we used WMI to get hardware identifying details - one of which is the processor type (family, model, stepping, etc.). Normally, you would just use the ProcessorID field as specified by Microsoft ( MSDN link) which executes CPUID on the processor, but support for this instruction is apparently optional, so we're just going to work around it by trying other fields to get a pseudo-signature. (ProcessorID is not the serial, as the name might suggest, bur rather processor family, model, stepping, etc. The serial number is actually provided by the UniqueId field, which has been deprecated since the PIII and all AMD processors or something like that)

Granted, this won't help you if you can't change the program that won't run, but you can explain to the developers why they can't depend on ProcessorID.

On a slightly related note, the virtualized hardware in 4.0.0 also seems to be without motherboard according to WMI (see #6361), which can also throw a wrench into machine identifier algorithms...

comment:8 Changed 3 months ago by frank

  • Description modified (diff)

Just an additional information. Of course does VirtualBox support the CPUID instruction since ages. It is more likely that some DMI information is not implemented.

Note: See TracTickets for help on using tickets.

www.oracle.com
ContactPrivacy policyTerms of Use