|
|
|
|
|
|
|
|
|
// CH91PayloadSoftware.cpp : <20><><EFBFBD><EFBFBD>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
#include "stdafx.h"
|
|
|
|
|
#include "CH91PayloadSoftware.h"
|
|
|
|
|
#include "CH91PayloadSoftwareDlg.h"
|
|
|
|
|
#include "cDESUtils.h"
|
|
|
|
|
#include "cPhysicsInfoUtils.h"
|
|
|
|
|
#include "cMD5Encode.h"
|
|
|
|
|
|
|
|
|
|
#ifdef _DEBUG
|
|
|
|
|
#define new DEBUG_NEW
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// CCH91PayloadSoftwareApp
|
|
|
|
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CCH91PayloadSoftwareApp, CWinApp)
|
|
|
|
|
//ON_COMMAND(ID_HELP, &CWinApp::OnHelp)
|
|
|
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// CCH91PayloadSoftwareApp <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
CCH91PayloadSoftwareApp::CCH91PayloadSoftwareApp()
|
|
|
|
|
{
|
|
|
|
|
// ֧<><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
m_dwRestartManagerSupportFlags = AFX_RESTART_MANAGER_SUPPORT_RESTART;
|
|
|
|
|
|
|
|
|
|
// TODO: <20>ڴ˴<DAB4><CBB4><EFBFBD><EFBFBD>ӹ<EFBFBD><D3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룬
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ij<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> InitInstance <20><>
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Ψһ<CEA8><D2BB>һ<EFBFBD><D2BB> CCH91PayloadSoftwareApp <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
CCH91PayloadSoftwareApp theApp;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// CCH91PayloadSoftwareApp <20><>ʼ<EFBFBD><CABC>
|
|
|
|
|
|
|
|
|
|
BOOL CCH91PayloadSoftwareApp::InitInstance()
|
|
|
|
|
{
|
|
|
|
|
/************************************************************************/
|
|
|
|
|
/* DES<45>ӽ<EFBFBD><D3BD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
/************************************************************************/
|
|
|
|
|
cPhysicsInfoUtils m_physicsInfoUtils;
|
|
|
|
|
string strSerialNum; //Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
|
|
|
|
|
string strMAC; //<2F><><EFBFBD><EFBFBD>MAC<41><43>ַ
|
|
|
|
|
string strCPUId; //CPU<50><55><EFBFBD>к<EFBFBD>
|
|
|
|
|
|
|
|
|
|
m_physicsInfoUtils.GetHardDiskSerial(strSerialNum); //<2F><>ȡӲ<C8A1><D3B2><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
|
|
|
|
|
m_physicsInfoUtils.GetMAC(strMAC); //<2F><>ȡMAC<41><43>ַ
|
|
|
|
|
m_physicsInfoUtils.GetCPU_iD(strCPUId); //<2F><>ȡCPU<50><55><EFBFBD>к<EFBFBD>
|
|
|
|
|
|
|
|
|
|
cDESUtils m_desUtils;
|
|
|
|
|
string str1 = strSerialNum + strMAC + strCPUId;
|
|
|
|
|
|
|
|
|
|
Md5Encode m_Md5Encoder;
|
|
|
|
|
str1 = m_Md5Encoder.Encode(str1);
|
|
|
|
|
//str1 = "A1335FA36BDA99F1E5D53DD08FDF7898";
|
|
|
|
|
string str2 = "FEIPENGZHIKONG2021.";//<2F><>Կ
|
|
|
|
|
|
|
|
|
|
str1 = m_desUtils.H(str1);//ʮ<><CAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
str2 = m_desUtils.H(str2);//ʮ<><CAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
m_desUtils.generateKeys(str2);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Կ
|
|
|
|
|
string str3 = m_desUtils.encrypt(str1);//<2F><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
|
|
|
|
|
str3 = m_desUtils.G(str3);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊʮ<CEAA><CAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CString strSoftwareCode = str3.c_str();
|
|
|
|
|
|
|
|
|
|
CString m_strRegisterPath = GetSoftwareCurrentDirectory() + _T("\\Register.txt");//ע<><D7A2><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
|
|
|
|
if (PathFileExists(m_strRegisterPath))//ע<><D7A2><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
{
|
|
|
|
|
CStdioFile fileRegister;
|
|
|
|
|
fileRegister.Open(m_strRegisterPath, CFile::modeRead);
|
|
|
|
|
CString strRegisterCode;
|
|
|
|
|
fileRegister.ReadString(strRegisterCode);
|
|
|
|
|
fileRegister.Close();
|
|
|
|
|
if (!(strRegisterCode == strSoftwareCode))
|
|
|
|
|
{
|
|
|
|
|
MessageBox(NULL, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD>!", "<EFBFBD><EFBFBD>ʾ", MB_OK);
|
|
|
|
|
return FALSE;
|
|
|
|
|
}
|
|
|
|
|
}else //ע<><D7A2><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
{
|
|
|
|
|
MessageBox(NULL, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD>!", "<EFBFBD><EFBFBD>ʾ", MB_OK);
|
|
|
|
|
return FALSE;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// <20>ڳ<EFBFBD>ʼ<EFBFBD>Ի<EFBFBD><D4BB><EFBFBD>֮ǰ<D6AE><C7B0><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD><DFB3><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// // <20><><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD><DFB3><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>ġ<EFBFBD>
|
|
|
|
|
// SetThreadLocale(MAKELCID(MAKELANGID(
|
|
|
|
|
// LANG_CHINESE,
|
|
|
|
|
// SUBLANG_CHINESE_SIMPLIFIED),
|
|
|
|
|
// SORT_DEFAULT));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Windows XP <20>ϵ<EFBFBD>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD>嵥ָ<E5B5A5><D6B8>Ҫ
|
|
|
|
|
// ʹ<><CAB9> ComCtl32.dll <20>汾 6 <20><><EFBFBD><EFBFBD><EFBFBD>߰汾<DFB0><E6B1BE><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF>ӻ<EFBFBD><D3BB><EFBFBD>ʽ<EFBFBD><CABD>
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>Ҫ InitCommonControlsEx()<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><F2A3ACBD><EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڡ<EFBFBD>
|
|
|
|
|
INITCOMMONCONTROLSEX InitCtrls;
|
|
|
|
|
InitCtrls.dwSize = sizeof(InitCtrls);
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD>
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD><D8BC>ࡣ
|
|
|
|
|
InitCtrls.dwICC = ICC_WIN95_CLASSES;
|
|
|
|
|
InitCommonControlsEx(&InitCtrls);
|
|
|
|
|
CWinApp::InitInstance();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
AfxEnableControlContainer();
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD> shell <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Է<EFBFBD><D4B7>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// <20>κ<EFBFBD> shell <20><><EFBFBD><EFBFBD>ͼ<EFBFBD>ؼ<EFBFBD><D8BC><EFBFBD> shell <20>б<EFBFBD><D0B1><EFBFBD>ͼ<EFBFBD>ؼ<EFBFBD><D8BC><EFBFBD>
|
|
|
|
|
CShellManager *pShellManager = new CShellManager;
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><D7BC>ʼ<EFBFBD><CABC>
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>δʹ<CEB4><CAB9><EFBFBD><EFBFBD>Щ<EFBFBD><D0A9><EFBFBD>ܲ<EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD>С
|
|
|
|
|
// <20><><EFBFBD>տ<EFBFBD>ִ<EFBFBD><D6B4><EFBFBD>ļ<EFBFBD><C4BC>Ĵ<EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>Ӧ<EFBFBD>Ƴ<EFBFBD><C6B3><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ض<EFBFBD><D8B6><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ洢<DAB4><E6B4A2><EFBFBD>õ<EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// TODO: Ӧ<>ʵ<EFBFBD><CAB5>ĸ<DEB8><C4B8>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>˾<EFBFBD><CBBE><EFBFBD><EFBFBD>֯<EFBFBD><D6AF>
|
|
|
|
|
SetRegistryKey(_T("Ӧ<EFBFBD>ó<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɵı<EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>ó<EFBFBD><EFBFBD><EFBFBD>"));
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD><DFB3><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>Ӣ<EFBFBD>ġ<EFBFBD>
|
|
|
|
|
SetThreadLocale(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
|
|
|
|
|
|
|
|
|
CCH91PayloadSoftwareDlg dlg;
|
|
|
|
|
m_pMainWnd = &dlg;
|
|
|
|
|
INT_PTR nResponse = dlg.DoModal();
|
|
|
|
|
if (nResponse == IDOK)
|
|
|
|
|
{
|
|
|
|
|
// TODO: <20>ڴ˷<DAB4><CBB7>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|
|
|
|
// <20><>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>رնԻ<D5B6><D4BB><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
|
|
|
|
|
}
|
|
|
|
|
else if (nResponse == IDCANCEL)
|
|
|
|
|
{
|
|
|
|
|
// TODO: <20>ڴ˷<DAB4><CBB7>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>رնԻ<D5B6><D4BB><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD>洴<EFBFBD><E6B4B4><EFBFBD><EFBFBD> shell <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
if (pShellManager != NULL)
|
|
|
|
|
{
|
|
|
|
|
delete pShellManager;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>ڶԻ<DAB6><D4BB><EFBFBD><EFBFBD>ѹرգ<D8B1><D5A3><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD><EFBFBD> FALSE <20>Ա<EFBFBD><D4B1>˳<EFBFBD>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>á<EFBFBD>
|
|
|
|
|
return FALSE;
|
|
|
|
|
}
|
|
|
|
|
|