bool create_bp0b_001(PTSTR imei1, PTSTR imei2, PTSTR save_file_path)
{
unsigned int i = 0;
TCHAR _IMEI1[16];
TCHAR _IMEI2[16]; // imei 输入是否有问题
if (imei1 == NULL || imei2 == NULL)
{
return false;
} if (_tcslen(imei1) < 14 || _tcslen(imei2) < 14)
{
return false;
} for (i=0; i<_tcslen(imei1); i++)
{
if ( imei1[i]<TEXT('0') || imei1[i]>TEXT('9') )
{
return false;
}
} for (i=0; i<_tcslen(imei2); i++)
{
if ( imei2[i]<TEXT('0') || imei2[i]>TEXT('9') )
{
return false;
}
} // 检测校验位
_tcsncpy(_IMEI1, imei1, 16);
if ( !check_imei(_IMEI1) )
{
::MessageBox(NULL, TEXT("IMEI1有错误,已经修正"), TEXT("提示"), MB_OK);
} _tcsncpy(_IMEI2, imei2, 16);
if ( !check_imei(_IMEI2) )
{
::MessageBox(NULL, TEXT("IMEI2有错误,已经修正"), TEXT("提示"), MB_OK);
} // 写 BP0B_001 文件
PBYTE BP0B_buf = new BYTE[0x80];
if (BP0B_buf == NULL)
{
::MessageBox(NULL, TEXT("alloc buffer error!n"), TEXT("memory error"), MB_OK);
return false;
}
memset(BP0B_buf, 0, 0x80);
memcpy(BP0B_buf, table, 0x78); write_imei(BP0B_buf, _IMEI1);
write_imei(BP0B_buf+12, _IMEI2); HANDLE handle = ::CreateFile(save_file_path,
GENERIC_READ|GENERIC_WRITE,
FILE_SHARE_READ,
NULL,
CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
NULL);
if (handle == INVALID_HANDLE_VALUE)
{
::MessageBox(NULL, TEXT("File create error"), TEXT("Error"), MB_OK);
delete []BP0B_buf;
return false;
} DWORD dwBytes = 0;
::WriteFile(handle, BP0B_buf, 0x78, &dwBytes, NULL);
CloseHandle(handle);
delete []BP0B_buf;
return true;
}bool create_mp09_001(char* sn)
{
int i=0; if (strlen(sn) < 18)
{
// 必须18位的哦
return false;
}
LPBYTE pbuf = new BYTE[0x42];
memcpy(pbuf, table2, 0x42);
for (i=0; i<18; i++)
{
pbuf[i] ^= sn[i];
} i = 0;
do
{
pbuf[0x40] += pbuf[i++];
pbuf[0x41] += pbuf[i++];
} while (i<0x40); FILE* fp = fopen("MP09_001", "wb");
fwrite(pbuf, 1, 0x42, fp);
fclose(fp); delete []pbuf;
return true;
}BU KODU ÇALIŞTIRACAK ARKADAŞA İHTİYAÇ VARDIR.
kodun bulunduğu link : https://bbs.csdn.net/topics/391001654
teklif ile dönüş sağlayınız .
whatsapp : 0507 4238080