MTK IMEI 文件mp0b_001如何生成 假如说有一个15位的IMEI码,如何生成mp0b文件,有谁知道算法啊 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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;} 用Flex开发安卓的天气预报碰到了解析JSON的问题!求大牛指导 android 4.0 显示鼠标光标 android下文字输出格式,类似LOGFONT Android Bluetooth porting android或者ophone能不能使用access数据库? WebView 只在屏幕左半边显示网页内容的问题 android震动的参数怎么设置 SurfaceView的一个问题 请问,应用发了这个广播后,android系统是不是会重启? android标题栏功能 求助,Android能不能像手写字那样一笔一笔的显示出来 关于安卓手机通过蓝牙推送来电铃声的问题,急!急!急!
{
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;
}