获取文件的版本信息

先上代码吧

BOOL IsMicroSoft(TCHAR *pFile)
{
	BOOL bRet = FALSE;
	PBYTE pInfo = NULL;
	TCHAR *pCompany;
	DWORD dwSize;
	LANGANDCODEPAGE *plcp;
	UINT  nSize;
	TCHAR *pToGet = new TCHAR[MAX_PATH];

	ZeroMemory(pToGet, MAX_PATH * sizeof(TCHAR));
	dwSize = GetFileVersionInfoSize(pFile, 0);
	if (dwSize > 0)
	{
		pInfo = new BYTE[dwSize];
		if (GetFileVersionInfo(pFile, 0, dwSize, pInfo))
		{
			//plcp指向的是pInfo里的数据,也就是取得一个指针而已
			if (VerQueryValue(pInfo, _T("\\VarFileInfo\\Translation"), (PVOID*)&plcp, &nSize))
			{
				wsprintf(pToGet, _T("\\StringFileInfo\\%04X%04X\\CompanyName"), plcp->wLanguage, plcp->wCodePage);
				if (VerQueryValue(pInfo, pToGet, (PVOID*)&pCompany, &nSize))
				{
					if (lstrcmp(_T("Microsoft Corporation"), pCompany) == 0) bRet = TRUE;
				}
			}
		}
		delete[] pInfo;
	}
	delete[] pToGet;
	return bRet;
}


我这个函数是判断是不是微软的版本,比较简单,也容易伪造,但也不失为一种方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值