首页
社区
课程
招聘
[旧帖] [求助]怎么把HEX数据改成ANSI/UNICODE 0.00雪花
发表于: 2016-12-27 20:56 2781

[旧帖] [求助]怎么把HEX数据改成ANSI/UNICODE 0.00雪花

2016-12-27 20:56
2781
闲着没事写个简单脱机玩玩
在写个专版WPE 想把HEX数据改成ANSI/UNICODE看起来更加方便

但C++不是很好啊
请教下 怎么才可以写成OD那样显示出来??

比如 char szValue[]={0x31,0x32,0x33,0x34};

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 13606
活跃值: (4398)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
2
MultiByteToWideChar,WideCharToMultiByte,sprintf
OD同样风格显示,曾经见过一份代码.但不支持中文.
2016-12-27 22:22
0
雪    币: 130
活跃值: (1005)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
。。。还是不会啊。。。没人帮忙只能取消这个功能了
2016-12-27 22:25
0
雪    币: 756
活跃值: (114)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
十六进制数据或取出来用char类型存放,显示出来不就是ANSI了吗,转UNICODE用楼上的API转。
例如char a[]={0x31,0x32,0x33,0x34,0x35};
输出的就是12345了。
2016-12-28 00:17
0
雪    币: 756
活跃值: (114)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
贴一段以前写的代码,理解意思就能用了。
//ASC到文本
void AscToText()
{
	CHAR Temp[100] = { 0 };
	//获取了两个编辑框的句柄 用于读或写
	HWND hEdit3 = GetDlgItem(g_hWnd1, IDC_EDIT3);
	HWND hEdit4 = GetDlgItem(g_hWnd1, IDC_EDIT4);
	DWORD dwLength = GetWindowTextA(hEdit3, Temp, 100);
	//去除空格 
	for (DWORD i = 0; i < dwLength; i++)
	{
		if (Temp[i] == ' ')
		{
			for (DWORD j = i; j < dwLength; j++)
			{
				Temp[j] = Temp[j + 1];
			}
		}
	}
	dwLength = strlen(Temp);
	//十六进制数据是两两配对的,不是双数就是出错了
	if (dwLength % 2 != 0)
		return;
	CHAR szASC[3] = { 0 };//存放一个字节的十六进制
	CHAR *szText = new CHAR[dwLength / 2 + 1];
	ZeroMemory(szText, dwLength / 2 + 1);
	int j = 0;
	for (DWORD i = 0; i < dwLength; i = i + 2)
	{
		szASC[0] = Temp[i];
		szASC[1] = Temp[i + 1];//把那一串十六进制每次两个存放到szASC中。
		int a = 0;
		sscanf_s(szASC, "%X", &a);//从缓冲区中按%x的格式读取数据
		szText[j] = a;
		j++;
	}
	//上述得到的是ascii,转UNICODE用如下格式
	//MultiByteToWideChar(CP_ACP, NULL, MultiByte, -1, WideChar, 
	//_countof(WideChar));
	//MultiByte和WideChar是ascii和unicode的缓冲区
	SetWindowTextA(hEdit4, szText);
	delete[]szText;
}
2016-12-28 00:28
0
雪    币: 130
活跃值: (1005)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
[QUOTE=liuwan;1458843]贴一段以前写的代码,理解意思就能用了。
//ASC到文本
void AscToText()
{
        CHAR Temp[100] = { 0 };
        //获取了两个编辑框的句柄 用于读或写
        HWND hEdit3 = GetDlgItem(g_hWnd1, IDC_EDIT3);
        H...[/QUOTE]

谢谢 我看看
2016-12-28 01:48
0
游客
登录 | 注册 方可回帖
返回
//