📄 encryptsoftware.cpp
字号:
{
CString szSerialNo = EncodeUserInfoIntoComputerCode(strUser, strOrganization, strKeyNo);
//2005年5月11日 chenwu
CString str,sn,d="1129286929232634370648368187534191368408016488850065367276224291723511310899964538880026014211777477026002517612835144492434443601971445753519625205260199335935075602986178758412305413",n="3857563158972604575396265728896895335282215399054288754328634818668585650670378189780003383810932860734765318874204716204524823171590921493016619030784258701404628771695302433745277081",y;
CBigInt D,N,Y;
long ll = StringtoLong(szSerialNo);
y.Format("%u",ll);
D.InPutFromStr(d,10);
N.InPutFromStr(n,10);
Y.InPutFromStr(y,10);
(Y.Mon(D,N)).OutPutToStr(str,62);
CString strRegCode;
strRegCode = EncodeString(str);
ASSERT(str.GetLength()==103);
return strRegCode;
}
#endif
DWORD UserGetData()
{
//for test UserGetDataFromFile();
CString strReg, strUser, strOrganization, strKeyNo;
strReg = GetSninfo();
if (strReg.IsEmpty())
return 0;
strUser = GetUserinfo();
if (strUser.IsEmpty())
return 0;
strOrganization = GetOrgainfo();
if (strOrganization.IsEmpty())
return 0;
strKeyNo = GetKey();
strUser.MakeUpper();
strOrganization.MakeUpper();
CString strUersMess = EncodeUserInfoIntoComputerCode(strUser, strOrganization, strKeyNo);
AntiStaticAnalyse_1();
ASSERT(strReg.GetLength()==103);
static BYTE buf[52];
#ifdef LOG_ERR
DWORD dw[13];
#endif
CString strDecode[52];
int i=0;
strReg = DecodeString(strReg);
long ll = StringtoLong(strUersMess);
strUersMess.Format("%u",ll);
//2005年5月11日 chenwu
#if defined(USE_SHORT_LENGTH_PASSWORD)
CString strDecodeOut, e="65537",n="15121419457",y;
#elif defined(USE_MIDDLE_LENGTH_PASSWORD)
CString strDecodeOut, e="32769",n="22249547734980280969",y;
#else
CString strDecodeOut, e="32769",n="3857563158972604575396265728896895335282215399054288754328634818668585650670378189780003383810932860734765318874204716204524823171590921493016619030784258701404628771695302433745277081",y;
#endif
CBigInt E,N,Y;
AntiStaticAnalyse_2();
y=strReg;
E.InPutFromStr(e,10);
N.InPutFromStr(n,10);
Y.InPutFromStr(y,62);
(Y.Mon(E,N)).OutPutToStr(strDecodeOut,10);
if (strDecodeOut==strUersMess)
{
return OK_CODE;
}
if (strUersMess!=strDecodeOut)
{
//----------------------加代码迷惑------------------//
y=strDecodeOut;
CString str1="";
CString str2="";
CString szSerialNo="";
e="12312313";
n="65637777866732764294170147526183187698291681662886531079887368323729949799489";
long ll=0;
for(int index=0;index<n.GetLength();index++)
{
ll=ll*16;
if((n[index]<='9') && (n[index]>='0')) ll+=n[index]-'0';
else if((n[index]<='F') && (n[index]>='A')) ll+=n[index]-'A'+10;
}
Sleep(900);
E.InPutFromStr(e,10);
N.InPutFromStr(n,10);
Y.InPutFromStr(y,10);
(Y.Mon(E,N)).OutPutToStr(str1,10);
}
//memcpy(g_codebuf2,dw,52);
return 0;
}
DWORD UserGetDataEnhance()
{
CString strReg, strUser, strOrganization, strKeyNo;
strReg = GetSninfo();
if (strReg.IsEmpty())
return 0;
strUser = GetUserinfo();
if (strUser.IsEmpty())
return 0;
strOrganization = GetOrgainfo();
if (strOrganization.IsEmpty())
return 0;
strKeyNo = GetKey();
//2005年5月11日 chenwu
#if defined(USE_SHORT_LENGTH_PASSWORD)
CString strDecodeOut, e="65537",n="15121419457",y;
#elif defined(USE_MIDDLE_LENGTH_PASSWORD)
CString strDecodeOut, e="32769",n="22249547734980280969",y;
#else
CString strDecodeOut, e="32769",n="3857563158972604575396265728896895335282215399054288754328634818668585650670378189780003383810932860734765318874204716204524823171590921493016619030784258701404628771695302433745277081",y;
#endif
CBigInt E,N,Y;
AntiStaticAnalyse_1();
strReg = DecodeString(strReg);
y=strReg;
E.InPutFromStr(e,10);
N.InPutFromStr(n,10);
Y.InPutFromStr(y,62);
(Y.Mon(E,N)).OutPutToStr(strDecodeOut,10);
strUser.MakeUpper();
strOrganization.MakeUpper();
CString strUersMess = EncodeUserInfoIntoComputerCode(strUser, strOrganization, strKeyNo);
AntiStaticAnalyse_1();
ASSERT(strReg.GetLength()==103);
long ll = StringtoLong(strUersMess);
strUersMess.Format("%u",ll);
AntiStaticAnalyse_2();
if (strDecodeOut==strUersMess)
{
return OK_CODE;
}
if (strUersMess!=strDecodeOut)
{
//----------------------加代码迷惑------------------//
y=strDecodeOut;
CString str1="";
CString str2="";
CString szSerialNo="";
e="12312313";
n="65637777866732764294170147526183187698291681662886531079887368323729949799489";
long ll=0;
for(int index=0;index<n.GetLength();index++)
{
ll=ll*16;
if((n[index]<='9') && (n[index]>='0')) ll+=n[index]-'0';
else if((n[index]<='F') && (n[index]>='A')) ll+=n[index]-'A'+10;
}
Sleep(900);
E.InPutFromStr(e,10);
N.InPutFromStr(n,10);
Y.InPutFromStr(y,10);
(Y.Mon(E,N)).OutPutToStr(str1,10);
}
return 0;
}
//#define CompareMiddleRegCode ThisDummyFunc1
DWORD ThisDummyFunc1(BYTE* buf1, BYTE* buf2, int n)
{
return (memcmp(g_codebuf1,g_codebuf2,52)==0)? OK_CODE : 0;
}
DWORD UserPutData(CString strUser, CString strOrganization, CString strKeyNo, CString strReg)
{
if (strReg.IsEmpty())
return 0;
if (strUser.IsEmpty())
return 0;
if (strOrganization.IsEmpty())
return 0;
strKeyNo = GetKey();
//2005年5月11日 chenwu
#if defined(USE_SHORT_LENGTH_PASSWORD)
CString strDecodeOut, e="65537",n="15121419457",y;
#elif defined(USE_MIDDLE_LENGTH_PASSWORD)
CString strDecodeOut, e="32769",n="22249547734980280969",y;
#else
CString strDecodeOut, e="32769",n="3857563158972604575396265728896895335282215399054288754328634818668585650670378189780003383810932860734765318874204716204524823171590921493016619030784258701404628771695302433745277081",y;
#endif
CBigInt E,N,Y;
AntiStaticAnalyse_1();
strReg = DecodeString(strReg);
y=strReg;
E.InPutFromStr(e,10);
N.InPutFromStr(n,10);
Y.InPutFromStr(y,62);
(Y.Mon(E,N)).OutPutToStr(strDecodeOut,10);
strUser.MakeUpper();
strOrganization.MakeUpper();
CString strUersMess = EncodeUserInfoIntoComputerCode(strUser, strOrganization, strKeyNo);
AntiStaticAnalyse_2();
ASSERT(strReg.GetLength()==103);
long ll = StringtoLong(strUersMess);
strUersMess.Format("%u",ll);
AntiStaticAnalyse_1();
if (strDecodeOut==strUersMess)
{
return OK_CODE1;
}
if (strUersMess!=strDecodeOut)
{
//----------------------加代码迷惑------------------//
y=strDecodeOut;
CString str1="";
CString str2="";
CString szSerialNo="";
e="12312313";
n="65637777866732764294170147526183187698291681662886531079887368323729949799489";
long ll=0;
for(int index=0;index<n.GetLength();index++)
{
ll=ll*16;
if((n[index]<='9') && (n[index]>='0')) ll+=n[index]-'0';
else if((n[index]<='F') && (n[index]>='A')) ll+=n[index]-'A'+10;
}
Sleep(900);
E.InPutFromStr(e,10);
N.InPutFromStr(n,10);
Y.InPutFromStr(y,10);
(Y.Mon(E,N)).OutPutToStr(str1,10);
}
return 0;
}
///为了注册后不插网线仍可运行,机器码获取从文件中读
DWORD UserGetDataFromFile()
{
CString strReg, strUser, strOrganization, strKeyNo;
strReg = GetSninfo();
if (strReg.IsEmpty())
return 0;
strUser = GetUserinfo();
if (strUser.IsEmpty())
return 0;
strOrganization = GetOrgainfo();
if (strOrganization.IsEmpty())
return 0;
strKeyNo = GetMachinfo();
if (strKeyNo.IsEmpty())
return 0;
strUser.MakeUpper();
strOrganization.MakeUpper();
CString strUersMess = EncodeUserInfoIntoComputerCode(strUser, strOrganization, strKeyNo);
AntiStaticAnalyse_1();
PuzzleCode1();
ASSERT(strReg.GetLength()==103);
static BYTE buf[52];
#ifdef LOG_ERR
DWORD dw[13];
#endif
CString strDecode[52];
int i=0;
strReg = DecodeString(strReg);
long ll = StringtoLong(strUersMess);
strUersMess.Format("%u",ll);
//2005年5月11日 chenwu
#if defined(USE_SHORT_LENGTH_PASSWORD)
CString strDecodeOut, e="65537",n="15121419457",y;
#elif defined(USE_MIDDLE_LENGTH_PASSWORD)
CString strDecodeOut, e="32769",n="22249547734980280969",y;
#else
CString strDecodeOut, e="32769",n="3857563158972604575396265728896895335282215399054288754328634818668585650670378189780003383810932860734765318874204716204524823171590921493016619030784258701404628771695302433745277081",y;
#endif
CBigInt E,N,Y;
AntiStaticAnalyse_2();
PuzzleCode1();
y=strReg;
E.InPutFromStr(e,10);
N.InPutFromStr(n,10);
Y.InPutFromStr(y,62);
(Y.Mon(E,N)).OutPutToStr(strDecodeOut,10);
if (strDecodeOut==strUersMess)
{
return OK_CODE;
}
if (strUersMess!=strDecodeOut)
{
//----------------------加代码迷惑------------------//
y=strDecodeOut;
CString str1="";
CString str2="";
CString szSerialNo="";
e="12312313";
n="65637777866732764294170147526183187698291681662886531079887368323729949799489";
long ll=0;
for(int index=0;index<n.GetLength();index++)
{
ll=ll*16;
if((n[index]<='9') && (n[index]>='0')) ll+=n[index]-'0';
else if((n[index]<='F') && (n[index]>='A')) ll+=n[index]-'A'+10;
}
Sleep(900);
E.InPutFromStr(e,10);
N.InPutFromStr(n,10);
Y.InPutFromStr(y,10);
(Y.Mon(E,N)).OutPutToStr(str1,10);
}
return 0;
}
CString GetProgramPath()
{
CString szDirPath;
char szPath[_MAX_PATH];
GetModuleFileName(AfxGetInstanceHandle(),szPath,sizeof(szPath));
// g_RunExe = szPath;
char* pch=strrchr(szPath,'\\');
*(pch)=0;
szDirPath = szPath;
/*
{
int nLT = g_RunExe.GetLength();
int nPa = szDirPath.GetLength();
g_RunExe = g_RunExe.Right(nLT - nPa -1);
}
*/
return szDirPath;
}
//Get all MAC Address with IPhelp API
#include "Iphlpapi.h"
PIP_ADAPTER_INFO pinfo=NULL;
unsigned long len=0;
#pragma comment(lib,"IPHlpApi.Lib")
CString EncrytyMACData()
{
CString strmacaddress;
char Author[] = { "k1yt8d" };
char *pAuthor = Author;
BYTE keyValue[6];
CString strDescription;
int i=0;
strmacaddress.Empty();
ZeroMemory(&keyValue, sizeof(keyValue));
if (pinfo==NULL)
return strmacaddress;
int k=0;
while (pinfo!=NULL)
{
//strmacaddress.Format("%02X:%02X:%02X:%02X:%02X:%02X",pinfo->Address[0],pinfo->Address[1],pinfo->Address[2],pinfo->Address[3],pinfo->Address[4],pinfo->Address[5]);
strDescription = pinfo->Description;
strDescription.MakeUpper();
//if (strDescription.Find("PPPOE")==-1)
if (strDescription.Find("PPP")==-1)
{
for (i=0 ; i<6 ; i++)
{
keyValue[i] |= pinfo->Address[i] ^ (*pAuthor);
pAuthor++;
}
k++;
}
pinfo = pinfo->Next;
pAuthor = Author;
}
if (k==0)
{
return strmacaddress;
}
keyValue[4] |= k;
strmacaddress.Format("%02x%02x%02x%02x%02x%02x",
keyValue[0],
keyValue[1],
keyValue[2],
keyValue[3],
keyValue[4],
keyValue[5]);
return strmacaddress;
}
CString GetMACAddresswithIPhelp(BOOL bUse)
{
unsigned long nError;
CString strEncrytyMAC;
strEncrytyMAC.Empty();
if(bUse)
{
nError = GetAdaptersInfo(pinfo,&len);
if (nError==0)
{
strEncrytyMAC = EncrytyMACData();
return strEncrytyMAC;
}
if (nError==ERROR_NO_DATA)
{
return strEncrytyMAC;//No adapter information exists for the local computer
}
if (nError==ERROR_NOT_SUPPORTED)
{
return strEncrytyMAC;//GetAdaptersInfo is not supported by the operating system running on the local computer
}
if (nError==ERROR_BUFFER_OVERFLOW)
{
pinfo= (PIP_ADAPTER_INFO)malloc(len);
//GetAdaptersInfo is buffer overflow
nError = GetAdaptersInfo(pinfo,&len);
if (nError==0)
{
strEncrytyMAC = EncrytyMACData();
return strEncrytyMAC;
}
}
}
else
{
strEncrytyMAC = "6B323ED949F8";
}
return strEncrytyMAC;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -