I have some questions about KeyGenExample for MSVC. I’m using the VMProtect Ultimate demo because I want to use hardwareIDs to lock down my program to the user’s machine.
The KeyGenExample example requires me to fill in the g_Algorithm header block.
I only want to use the user name and hardware ID fields to generate a key.
When I run VMProtect.exe and try to create a new license, I check:
Customer Name (leave empty)
Hardware ID (leave empty)
However, I can’t create it because I get an error message:
“Hardware ID is invalid or empty.”
If I leave the HWID field unchecked, I can export this data using the “Export Key Pair” button.
This data is then copied to the g_Algorithm header block.
Now, this is what I don’t understand.
Why am I required to enter hardwareID information when creating a new license?
This setup confuses me.
This is what I want do. I want to create a single keygen for all users.
Users submit their name and hardwareID, and the keygen generates their key.
But, how am I suppose to do that if I can’t leave both customer name and harwardID fields blank when creating new license data for keygen?
Does this mean I have to check those options (Customer Name, Hardware ID) in the VMP project, for the keygen flags to work?
These options are not checks. They mean that the serial number will contain fields “Customer Name” and “Hardware ID”. If a serial number contains “Hardware ID” VMProtect automatically checks it in VMProtectSetSerialNumber. Other fileds you can get with VMProtectGetSerialNumberData.
BTW, I don’t intend to use the licensing system. I just need to create a single keygen for all of my users.
In order to do this, I have to create a blank license to get the g_Algorithm header block data, so I can compile a keygen which can generate keys from user name and hardware ID.
I’m not sure if I’m doing this correctly or perhaps VMProtect doesn’t meet my requirements.