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

📄 encryptsoftware.h

📁 通过机器硬件设备加密软件的算法,支持反败为胜跟踪等.
💻 H
字号:

#ifndef ENCRIPT_SOFTWARE_INCLUDED
#define ENCRIPT_SOFTWARE_INCLUDED

//////////////////////////////////////////////////////////////////////////
//standard interface assume the following string saved in szRegLocation:
//User,	Organization, SerialNo;


BOOL GetMacAddress(char *mac);

//implemented in GetHDIdInfo.cpp
DWORD GetHardDiskKey(BOOL bUse);

///////////////////////////////////////////////////
//特定application可以适当修改的接口:

//WINAPI can be read by other tools for decoding the object program code


BOOL getmac_one();



//encoding tools

#define DWORD_ENCODE1(dw)	( ~( (dw>>16) | (dw<<16) ) )
#define DWORD_DECODE1(dw)	( ((~dw)>>16) | ((~dw)<<16) )
#define WORD_ENCODE3(w)		(WORD)( ~( (w>>8) | (w<<8) ) )
#define WORD_DECODE3(w)		(WORD)( ((~w)>>8) | ((~w)<<8) )

#define WORD_ENCODE1(w)		( (DWORD)( ~( (w+179)<<3 ) ) )
#define WORD_DECODE1(dw)	(WORD)( ( (~dw)>>3 ) - 179 )
#define WORD_ENCODE2(w)		( (DWORD)( ~( (w+137)<<5 ) ) )
#define WORD_DECODE2(dw)	(WORD)( ( (~dw)>>5 ) - 137 )

__inline DWORD HexStringToDWORD(CString str)
{
	DWORD n=0;
	str.MakeUpper();
	const char *buf=str;
	int nLen=str.GetLength();
	if(nLen>2*sizeof(DWORD))
		nLen=2*sizeof(DWORD);//one byte displayed by 2 HEX char

	for(int i=0;i<nLen;i++){
		char ch=buf[i];
		if(ch<'0' || ch>'F')
			goto l_err;
		if(ch<'A')
			ch-='0';
		else
			ch=ch-'A'+10;

		n=(n<<4) | ch;	
	}
	return n;
l_err:
	return 0;
}

__inline WORD HexStringToWORD(CString str)
{
	WORD n=0;
	str.MakeUpper();
	const char *buf=str;
	int nLen=str.GetLength();
	if(nLen>2*sizeof(WORD))
		nLen=2*sizeof(WORD);//one byte displayed by 2 HEX char

	for(int i=0;i<nLen;i++){
		char ch=buf[i];
		if(ch<'0' || ch>'F')
			goto l_err;
		if(ch<'A')
			ch-='0';
		else
			ch=ch-'A'+10;

		n=(n<<4) | ch;	
	}
	return n;
l_err:
	return 0;
}

__inline BYTE HexStringToBYTE(CString str)
{
	BYTE n=0;
	//str.MakeUpper();
	const char *buf=str;
	int nLen=str.GetLength();
	if(nLen>2*sizeof(BYTE))
		nLen=2*sizeof(BYTE);//one byte displayed by 2 HEX char

	for(int i=0;i<nLen;i++){
		char ch=buf[i];
		if(ch<'0' || ch>'z')
			goto l_err;
		if(ch<'A')
			ch-='0';
		else if(ch>='A')
			ch=ch-'A'+10;
		else if(ch>='a')
			ch=ch-'a'+36;

		n=(n<<4) | ch;	
	}
	return n;
l_err:
	return 0;
}

__inline BYTE HexStringToBYTE_Standard(CString str)
{
	BYTE n=0;
	str.MakeUpper();
	const char *buf=str;
	int nLen=str.GetLength();
	if(nLen>2*sizeof(BYTE))
		nLen=2*sizeof(BYTE);//one byte displayed by 2 HEX char

	for(int i=0;i<nLen;i++){
		char ch=buf[i];
		if(ch<'0' || ch>'F')
			goto l_err;
		if(ch<'A')
			ch-='0';
		else
			ch=ch-'A'+10;
		
			n=(n<<4) | ch;	
		
		
	}
	return n;
l_err:
	return 0;
}

#endif

⌨️ 快捷键说明

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