72 lines
1.3 KiB
C
72 lines
1.3 KiB
C
|
|
|
|||
|
|
#include "encrypt.h"
|
|||
|
|
#include "cpuid.h"
|
|||
|
|
|
|||
|
|
/*
|
|||
|
|
<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܹ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
Ŀ<EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD><EFBFBD>оƬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>忨ʹ<EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
ʹ<EFBFBD>÷<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
1, <EFBFBD><EFBFBD>.c<EFBFBD>ļ<EFBFBD><EFBFBD>ж<EFBFBD><EFBFBD><EFBFBD> const static u16 <EFBFBD>ı<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
2. <EFBFBD><EFBFBD> AddToEncrypt <EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
3. <EFBFBD>ں<EFBFBD><EFBFBD>ʵ<EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CheckEncrypt <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD><EFBFBD>ܹ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
4. <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><EFBFBD><EFBFBD>...<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
#define MAX_ENCRYPT_NUM 32 // <20><><EFBFBD><EFBFBD>֧<EFBFBD>ֵļ<D6B5><C4BC><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>
|
|||
|
|
|
|||
|
|
int g_encryptNum = 0;
|
|||
|
|
const u16 * g_encryptList[MAX_ENCRYPT_NUM];
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD>Ӽ<EFBFBD><D3BC><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>ܹ<EFBFBD><DCB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> const static <20><><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD>
|
|||
|
|
int AddToEncrypt(const u16 * pEncryptWord)
|
|||
|
|
{
|
|||
|
|
if (g_encryptNum < MAX_ENCRYPT_NUM)
|
|||
|
|
{
|
|||
|
|
g_encryptList[g_encryptNum] = pEncryptWord;
|
|||
|
|
g_encryptNum++;
|
|||
|
|
}
|
|||
|
|
return g_encryptNum;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ0<CEAA><30><EFBFBD>Ƿ<EFBFBD>
|
|||
|
|
int CheckEncrypt(void)
|
|||
|
|
{
|
|||
|
|
int rslt = 0;
|
|||
|
|
int i, j;
|
|||
|
|
const u16 * pEncrype;
|
|||
|
|
|
|||
|
|
int idnum = sizeof(CpuId) / sizeof(u16);
|
|||
|
|
|
|||
|
|
CpuId id;
|
|||
|
|
GetCpuID(&id);
|
|||
|
|
|
|||
|
|
for (i = 0, j = 0; i < g_encryptNum; i++, j++)
|
|||
|
|
{
|
|||
|
|
pEncrype = g_encryptList[i];
|
|||
|
|
j %= idnum;
|
|||
|
|
if (id.wbuff[j] != *pEncrype)
|
|||
|
|
{
|
|||
|
|
if (*pEncrype == 0xffff) // <20><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>idд<64><D0B4>flash
|
|||
|
|
{
|
|||
|
|
/*
|
|||
|
|
FLASH_Unlock();
|
|||
|
|
FLASH_ClearFlag(FLASH_FLAG_BSY|FLASH_FLAG_EOP|FLASH_FLAG_PGERR|FLASH_FLAG_WRPRTERR);
|
|||
|
|
FLASH_ProgramWord((u32)pEncrype, id.wbuff[j]);
|
|||
|
|
FLASH_Lock();
|
|||
|
|
*/
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
rslt = i+1;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
return rslt;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|