基本上我使用HWID锁来锁定我的程序,但我有一个问题,我的程序接受acceptedSerial_2中的任何值这里是代码,请帮助我做改进,谢谢!显然,当我运行程序时,接受的序列不是0,它们是受尊重的值
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12);
std::cout << ":: Verifying HWID \n " << std::endl;
TCHAR volumeName[MAX_PATH + 1] = { 0 };
TCHAR fileSystemName[MAX_PATH + 1] = { 0 };
DWORD serialNumber = 0;
DWORD maxComponentLen = 0;
DWORD fileSystemFlags = 0;
if (GetVolumeInformation(
_T("C:\\"),
volumeName,
ARRAYSIZE(volumeName),
&serialNumber,
&maxComponentLen,
&fileSystemFlags,
fileSystemName,
ARRAYSIZE(fileSystemName)))
{
DWORD acceptedSerial = 0; //
DWORD acceptedSerial_1 = 0; //
DWORD acceptedSerial_2 = 0; //
if (serialNumber == acceptedSerial || acceptedSerial_1 || acceptedSerial_2)
{
MessageBox::Show("Access Granted!",
"Welcome",
MessageBoxButtons::OK,
MessageBoxIcon::Exclamation);
return(0);
}
else
{
MessageBox::Show("HWID Missmatch",
"Error",
MessageBoxButtons::OK,
MessageBoxIcon::Error);
exit(0);
}
}
}```发布于 2020-02-03 11:13:02
如果您只想接受三个值:acceptedSerial、acceptedSerial_1、acceptedSerial_2,那么逻辑表达式将是if ((serialNumber == acceptedSerial) || (serialNumber == acceptedSerial_1) || (serialNumber == acceptedSerial_2))。
但是,您当前使用的if (serialNumber == acceptedSerial || acceptedSerial_1 || acceptedSerial_2)始终为true,只要acceptedSerial_1或acceptedSerial_2不为零,即使它们不等于serialNumber。
https://stackoverflow.com/questions/60028966
复制相似问题