?? getkeyfileinfo.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 + -