Hi,
Here is the bug/problem.
VMProtectSetSerialNumber() returned: 32
VMProtectGetSerialNumberData() returned: True
Despite it return True, serial number data is empty when state is other than 0
How to get serial data with state <>0 ?
It's useful for many porposes.
Serial Data bug
Re: Serial Data bug
VMProtectGetSerialNumberData(VMProtectSerialNumberData *data, int size) returns FALSE in two cases:
1. if (data == NULL) return FALSE;
2. if (size < sizeof(VMProtectSerialNumberData)) return FALSE;
In other cases VMProtectGetSerialNumberData returns TRUE. Anyway, VMProtectGetSerialNumberData returns the current state of you serial number in VMProtectSerialNumberData.nState, so you can check it before usage of VMProtectSerialNumberData like this:
1. if (data == NULL) return FALSE;
2. if (size < sizeof(VMProtectSerialNumberData)) return FALSE;
In other cases VMProtectGetSerialNumberData returns TRUE. Anyway, VMProtectGetSerialNumberData returns the current state of you serial number in VMProtectSerialNumberData.nState, so you can check it before usage of VMProtectSerialNumberData like this:
Code: Select all
VMProtectSerialNumberData data;
...
if (VMProtectGetSerialNumberData(&data, sizeof(data)) && data.nState == SERIAL_STATE_SUCCESS) {
// your serial number is valid and "data" isn't empty
}