为什么我的 HWID 锁接受任何acceptedSerial_2值
Why does my HWID lock accept any value in acceptedSerial_2
基本上我使用 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);
}
}
}```
如果只想接受三个值:acceptedSerial
、acceptedSerial_1
、acceptedSerial_2
,则逻辑表达式将if ((serialNumber == acceptedSerial) || (serialNumber == acceptedSerial_1) || (serialNumber == acceptedSerial_2))
。
但是,您当前使用的那个:只要acceptedSerial_1
或acceptedSerial_2
不等于serialNumber
,if (serialNumber == acceptedSerial || acceptedSerial_1 || acceptedSerial_2)
始终true
。
请参阅C++逻辑 OR 运算符:||。
相关文章:
- 没有找到相关文章