首页
社区
课程
招聘
内存中字符串转HEX的问题
发表于: 2011-1-3 20:08 5345

内存中字符串转HEX的问题

2011-1-3 20:08
5345
希望在程序内从INI文件读取一个地址,然后在程序中操作这个地址上的数据,使用GetPrivateProfileString读取
invoke GetPrivateProfileString,offset ApplicationName,offset AddrName,offset Default,offset addr1,64,offset FileName
程序运行后结果如下:

但是我需要的是像下面这个样子的内存(读取后),有没有什么简单的办法可实现呢?

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 317
活跃值: (13)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
void Hex2Char(char const* szHex, unsigned char& rch)
{
        rch = 0;
        for(int i=0; i<2; i++)
        {
                if(*(szHex + i) >='0' && *(szHex + i) <= '9')
                        rch = (rch << 4) + (*(szHex + i) - '0');
                else if(*(szHex + i) >='A' && *(szHex + i) <= 'F')
                        rch = (rch << 4) + (*(szHex + i) - 'A' + 10);
                else
                        break;
        }
}   
void HexStr2CharStr(char const* pszHexStr, unsigned char* pucCharStr, int iSize)
{
       
        int i;
        unsigned char ch;
        for(i=0; i<iSize; i++)
        {
                Hex2Char(pszHexStr+2*i, ch);
                pucCharStr[i] = ch;
        }
       
}

HexStr2CharStr可以按你的要求转换,比如00401000字符串转换后在内存中排列顺序是不会变的,也是00401000,你要变成00104000的话自己做一下排列顺序就行了
2011-1-3 20:25
0
雪    币: 233
活跃值: (285)
能力值: ( LV12,RANK:270 )
在线值:
发帖
回帖
粉丝
3
LS的代码很漂亮……

也可以直接用sscanf将字符串转换为数字……
2011-1-3 22:36
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
c没学好啊,看着好吃力
2011-1-6 01:42
0
雪    币: 123
活跃值: (95)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
5
虽然没看明白,还是先结贴吧,谢谢。
2011-2-4 22:17
0
游客
登录 | 注册 方可回帖
返回
//