本篇文章属于《518抽奖软件开发日志》系列文章的一部分。
我在开发《518抽奖软件》(www.518cj.net)的时候,为了防止被破解,需要检查软件exe的完整性。MapFileAndCheckSum 是系统提供的API可以用于在代码中检查自己的完整性。exe搞代码签名也没关系不影响此函数。
DWORD HeaderSum = 1; DWORD CheckSum = 0;
MapFileAndCheckSum(m_pgmFile, &HeaderSum, &CheckSum);
if (CheckSum != HeaderSum)
{
wcscpy(one.flnm, PathFindFileName(m_pgmFile));
one.ret = 0; one.ec = 0;
rLst.push_back(one);
}
你看,这个函数的用法很简单。但是,要在 工程->属性->链接器->高级->设置校验和(是)。