|
|
|
|
#include "StdAfx.h"
|
|
|
|
|
#include "EncryptionMgr.h"
|
|
|
|
|
#include "LogMgr.h"
|
|
|
|
|
#include "MsgBox.h"
|
|
|
|
|
#include "winioctl.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef __USE_SUPER_DOG__
|
|
|
|
|
#pragma comment( lib, "KernelMode.lib")
|
|
|
|
|
CKernelMode gKernelMode;
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#define LEFT_DAYS_ALAM 7 //ʣ<>༸<EFBFBD><E0BCB8><EFBFBD><EFBFBD>ʾ
|
|
|
|
|
|
|
|
|
|
CEncryptionMgr *gEncryptionMgr = new CEncryptionMgr;
|
|
|
|
|
CEncryptionMgr::CEncryptionMgr(void)
|
|
|
|
|
{
|
|
|
|
|
m_LeftDays = 0;//ʣ<><CAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
m_bRunAtNoteBook = false;//<2F>Ƿ<EFBFBD><C7B7>ڱʼDZ<CABC><C7B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
}
|
|
|
|
|
CEncryptionMgr::~CEncryptionMgr(void)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
void CEncryptionMgr::Ini()
|
|
|
|
|
{
|
|
|
|
|
m_CurHardDiskSerialNum = GetHardDiskSerialNum();
|
|
|
|
|
set<CString> NoteBookHardDiskSerialSet;
|
|
|
|
|
NoteBookHardDiskSerialSet.insert("2cc413dd");//k2450 <20>ʼDZ<CABC>
|
|
|
|
|
NoteBookHardDiskSerialSet.insert("4a410fe7");//t420 <20>ʼDZ<CABC>
|
|
|
|
|
//NoteBookHardDiskSerialSet.insert("ebfac14d");//T460S <20>ʼDZ<CABC>
|
|
|
|
|
//<2F>ʼDZ<CABC>
|
|
|
|
|
if(NoteBookHardDiskSerialSet.count(m_CurHardDiskSerialNum))
|
|
|
|
|
{
|
|
|
|
|
m_bRunAtNoteBook = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//<2F><>ȡӲ<C8A1><D3B2><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>(C<><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2>)
|
|
|
|
|
CString CEncryptionMgr::GetHardDiskSerialNum()
|
|
|
|
|
{
|
|
|
|
|
CString id;
|
|
|
|
|
char Name[MAX_PATH];
|
|
|
|
|
DWORD serno;
|
|
|
|
|
DWORD length;
|
|
|
|
|
DWORD FileFlag;
|
|
|
|
|
char FileName[MAX_PATH];
|
|
|
|
|
BOOL Ret;
|
|
|
|
|
Ret = GetVolumeInformation("c:\\", Name, MAX_PATH, &serno, &length, &FileFlag, FileName, MAX_PATH);
|
|
|
|
|
if (Ret)
|
|
|
|
|
id.Format( "%x", serno);
|
|
|
|
|
return id;
|
|
|
|
|
}
|
|
|
|
|
#if 1
|
|
|
|
|
/*
|
|
|
|
|
code:530001 <EFBFBD>豸<EFBFBD><EFBFBD>û<EFBFBD>з<EFBFBD><EFBFBD>ּ<EFBFBD><EFBFBD>ܹ<EFBFBD>
|
|
|
|
|
code:530002 <EFBFBD><EFBFBD>ȡBinary<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
code:530003 Binary<EFBFBD>ļ<EFBFBD>ID<EFBFBD>ͼ<EFBFBD><EFBFBD>ܹ<EFBFBD>ID<EFBFBD><EFBFBD>ƥ<EFBFBD><EFBFBD>
|
|
|
|
|
code:530004 <EFBFBD><EFBFBD><EFBFBD>ݹ<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
code:530005 <EFBFBD>·ݹ<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
code:530006 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
code:530007 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>кŲ<EFBFBD>ƥ<EFBFBD><EFBFBD>
|
|
|
|
|
*/
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>false)
|
|
|
|
|
bool CEncryptionMgr::CheckLockState()
|
|
|
|
|
{
|
|
|
|
|
#ifndef __USE_SUPER_DOG__
|
|
|
|
|
return true;
|
|
|
|
|
#endif
|
|
|
|
|
//<2F>ʼDZ<CABC>
|
|
|
|
|
if(m_bRunAtNoteBook)
|
|
|
|
|
{
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int code = gKernelMode.CheckState();
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>仹ʣn <20><>
|
|
|
|
|
if(code>100 && code<=(100+LEFT_DAYS_ALAM))
|
|
|
|
|
{
|
|
|
|
|
m_LeftDays = code-100;
|
|
|
|
|
}
|
|
|
|
|
else if(code==0 || code>(100+LEFT_DAYS_ALAM))
|
|
|
|
|
{
|
|
|
|
|
m_LeftDays = 0;//ʣ<><CAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
}
|
|
|
|
|
else if((code>0) &&( code!=7)&&(!gLogMgr->IsDebuging())) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>)
|
|
|
|
|
{
|
|
|
|
|
m_LeftDays = 0;//ʣ<><CAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CString s;
|
|
|
|
|
s.Format(_T("<EFBFBD>豸ʹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>Ӧ<EFBFBD><D3A6> (code :53000%d)"),code);
|
|
|
|
|
CMsgBox MsgBox;
|
|
|
|
|
MsgBox.Show(s);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ʣ<EFBFBD><CAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(10 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>)
|
|
|
|
|
CheckLeftDays();
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ʣ<EFBFBD><CAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(10 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>)
|
|
|
|
|
void CEncryptionMgr::CheckLeftDays()
|
|
|
|
|
{
|
|
|
|
|
if(m_LeftDays>0)
|
|
|
|
|
{
|
|
|
|
|
CString s;
|
|
|
|
|
s.Format("<EFBFBD>豸<EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>%ld <20>쵽<EFBFBD><ECB5BD>,<2C><><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>Ӧ<EFBFBD><D3A6>",m_LeftDays);
|
|
|
|
|
CMsgBox MsgBox;
|
|
|
|
|
MsgBox.Show(s);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
|