16进制数值转换成16进制字符串,用于显示或对OllyDbg中的特征码进行整理

//////////////////////////////////////////////////////////////////////////
//16进制数值转换成16进制字符串,用于显示或对OD中的特征码进行整理


//使用:
// CVConvert vc;
// CProcess p;
// BYTE byInput[] = {0xFF, 0x0D, 0xBB, 0xAA, 0x00, 0xAA};
// vc.HEXValueToStr(byInput, strlen(byInput));
// p.ODS((PCHAR)byInput);//结果为:FF0DBBAA00AA
void CVConvert::HEXValueToStr(PUCHAR pStr, int nLen)
{
PUCHAR tmp = (PUCHAR)malloc(nLen + 1);
memset(tmp, '\0', nLen + 1);
memcpy(tmp, pStr, nLen);

for(UINT i = 0, j = 0; i < (UINT)nLen; i++)
{
sprintf((PCHAR)&pStr[j++], "%X", (tmp[i] & 0xF0) >> 4 & 0x0F);
sprintf((PCHAR)&pStr[j++], "%X", tmp[i] & 0x0F);
}

pStr[j] = '\0';

free(tmp);
}

你可能感兴趣的:(VC)