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

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); }