⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 getkeyfileinfo.cpp

📁 通过机器硬件设备加密软件的算法,支持反败为胜跟踪等.
💻 CPP
字号:
/****************************************************************/
//
//用于获取KeyFile中的用户名、组织、机器码、注册码
//2003年11月24日
/****************************************************************/

#include "stdafx.h"
#include "GetKeyFileinfo.h"
#include "EncryptSoftware.h"

CString GetUserinfo()
{
	CString Userinfo="";
	CString Userinfo1="";
	char buffer1[3001];
	CFile m_file;
	BYTE userval=0;

	//Displey.dll为存放加密信息的文件

	CString KeyFilePath  = _T("\\Displey.dll");

	SetFileAttributes((const char*)KeyFilePath,FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_NORMAL);
	Userinfo.Empty();
	if(m_file.Open((const char*)KeyFilePath,CFile::modeRead))
	{
		m_file.Seek(3000,CFile::begin);
		m_file.Read(buffer1,3000);

//------------------如果文件的头9个字节不是我的英文名,就不进行解密----------//
		if(strncmp(buffer1,"RETNUHMOT",9)!=0)
			{
				m_file.Close();
				memset(buffer1,0,3001);
				return Userinfo;
			}
		
		int i;
		int temp1=(2*sizeof(int)+9);
		char * PW1="UWNEHC1981";
		int m_PWlen1=strlen(PW1);
		for(int j=temp1+1;j<= 3000;j++)
		buffer1[j]^=PW1[j%m_PWlen1];
		for(j=9;j<= temp1;j++)
		buffer1[j]^=PW1[j%m_PWlen1];
		int *datauser=(int *)&buffer1[9];
		int m_lenuser=(datauser[0]-1)/2;

		for (i=0;i<2*m_lenuser;i++)
		{
			Userinfo1.Insert(0,buffer1[2*sizeof(int)+9+i]);
			Userinfo1.Insert(1,buffer1[2*sizeof(int)+9+i+1]);
			i = i + 1;
			BYTE userval = HexStringToBYTE(Userinfo1);
			Userinfo1="";
			Userinfo.Insert(i-1,userval);
		}

		memset(buffer1,0,3001);

 		//AfxMessageBox(Userinfo);

		m_file.Close();
	}

	return Userinfo;
}

CString GetOrgainfo()
{
	CString Orgainfo="";
	CString Orgainfo1="";
	char buffer2[3001];
	CFile m_file;
	BYTE orgval=0;

	CString KeyFilePath  = _T("\\Displey.dll");
	SetFileAttributes((const char*)KeyFilePath,FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_NORMAL);
	Orgainfo.Empty();
	if(m_file.Open((const char*)KeyFilePath,CFile::modeRead))
	{
		m_file.Seek(15000,CFile::begin);
		m_file.Read(buffer2,3000);

//------------------如果文件的头9个字节不是我的英文名,就不进行解密----------//
		if(strncmp(buffer2,"RETNUHMOT",9)!=0)
			{
				m_file.Close();
				memset(buffer2,0,3001);
				return Orgainfo;
			}
		
		int i;
		int temp2=(2*sizeof(int)+9);
		char * PW2="UWNEHC1981";
		int m_PWlen2=strlen(PW2);
		for(int k=temp2+2;k<= 3000;k++)
		buffer2[k]^=PW2[k%m_PWlen2];
		for(k=9;k<= temp2;k++)
		buffer2[k]^=PW2[k%m_PWlen2];
		int *dataorg=(int *)&buffer2[9];
		int m_lenorg=dataorg[1];

		for (i=0;i<2*m_lenorg;i++)
		{
			Orgainfo1.Insert(0,buffer2[2*sizeof(int)+9+i]);
			Orgainfo1.Insert(1,buffer2[2*sizeof(int)+9+i+1]);
			i = i + 1;
			BYTE orgval = HexStringToBYTE(Orgainfo1);
			Orgainfo1="";
			Orgainfo.Insert(i-1,orgval);			
		}		
		
		memset(buffer2,0,3001);		

		//AfxMessageBox(Orgainfo);

		m_file.Close();
	}

	//AfxMessageBox(useinfo);

	return Orgainfo;
}

CString GetMachinfo()
{
	CString Machinfo="";
	CString Machinfo1="";
	char buffer3[3001];
	CFile m_file;
	BYTE machval=0;

	CString KeyFilePath  = _T("\\Displey.dll");
	SetFileAttributes((const char*)KeyFilePath,FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_NORMAL);
	Machinfo.Empty();	
	if(m_file.Open((const char*)KeyFilePath,CFile::modeRead))
	{
		m_file.Seek(6000,CFile::begin);
		m_file.Read(buffer3,3000);

//------------------如果文件的头9个字节不是我的英文名,就不进行解密----------//
		if(strncmp(buffer3,"RETNUHMOT",9)!=0)
			{			
				m_file.Close();
				memset(buffer3,0,3001);
				return Machinfo;
			}
		
		int i;
		int temp3=(2*sizeof(int)+9);
		char * PW3="UWNEHC1981";
		int m_PWlen3=strlen(PW3);
		for(int l=temp3+3;l<= 3000;l++)
		buffer3[l]^=PW3[l%m_PWlen3];
		for(l=9;l<= temp3;l++)
		buffer3[l]^=PW3[l%m_PWlen3];
		int *datamach=(int *)&buffer3[9];
		int m_lenmach=(datamach[0]-1)/2;

		for (i=0;i<2*m_lenmach;i++)
		{
			Machinfo1.Insert(0,buffer3[2*sizeof(int)+9+i]);
			Machinfo1.Insert(1,buffer3[2*sizeof(int)+9+i+1]);
			i = i + 1;
			BYTE machval = HexStringToBYTE(Machinfo1);
			Machinfo1="";
			Machinfo.Insert(i-1,machval);
		}

		memset(buffer3,0,3001);

 		//AfxMessageBox(Machinfo);

		m_file.Close();
	}

	//AfxMessageBox(useinfo);

	return Machinfo;
}

CString GetSninfo()
{
	CString Sninfo="";
	CString Sninfo1="";
	char buffer4[3001];
	CFile m_file;
	BYTE snval=0;

	CString KeyFilePath  = _T("\\Displey.dll");
	Sninfo.Empty();
	SetFileAttributes((const char*)KeyFilePath,FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_NORMAL);
	if(m_file.Open((const char*)KeyFilePath,CFile::modeRead))
	{
		m_file.Seek(9000,CFile::begin);
		m_file.Read(buffer4,3000);

//------------------如果文件的头9个字节不是我的英文名,就不进行解密----------//
		if(strncmp(buffer4,"RETNUHMOT",9)!=0)
			{
				m_file.Close();
				memset(buffer4,0,3001);

				return Sninfo;
			}
		
		int i;
		int temp4=(2*sizeof(int)+9);
		char * PW4="UWNEHC1981";
		int m_PWlen4=strlen(PW4);
		for(int m=temp4+4;m<= 3000;m++)
		buffer4[m]^=PW4[m%m_PWlen4];
		for(m=9;m<= temp4;m++)
		buffer4[m]^=PW4[m%m_PWlen4];
		int *datasn=(int *)&buffer4[9];
		int m_lensn=(datasn[0]-1)/2;

		for (i=0;i<2*m_lensn;i++)
		{
			Sninfo1.Insert(0,buffer4[2*sizeof(int)+9+i]);
			Sninfo1.Insert(1,buffer4[2*sizeof(int)+9+i+1]);
			i = i + 1;
			BYTE snval = HexStringToBYTE(Sninfo1);
			Sninfo1="";
			Sninfo.Insert(i-1,snval);
		}

		memset(buffer4,0,3001);

 		//AfxMessageBox(Sninfo);

		m_file.Close();
	}

	//AfxMessageBox(useinfo);
	return Sninfo;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -