首页
社区
课程
招聘
[旧帖] [求助]跪求33 63 写成3c的方法~ 0.00雪花
发表于: 2008-6-6 22:08 5232

[旧帖] [求助]跪求33 63 写成3c的方法~ 0.00雪花

2008-6-6 22:08
5232
我的问题是这样的,
在OD中有这样一数据
0E470FDF                                             33 63             3c

33 66 的ascii码是3c
我想把3366的ascii码3c写到一个byte中,高手们帮下我~~~谢谢

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

收藏
免费 0
支持
分享
最新回复 (16)
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
有点晕胡~~~~~~~~
2008-6-6 22:09
0
雪    币: 211
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
可能是我说的是不明白,我的意思是跟据33 63转成 两个ASCII码...
之后再写Byte
2008-6-6 22:29
0
雪    币: 211
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
就是把0x33 0x63 转成0x3C
请老大们帮帮忙哦~~~~
2008-6-6 22:31
0
雪    币: 2316
活跃值: (129)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
5
regcode[2]="3C";
sscanf(®code[0],"%02x",&value);

或许可以
2008-6-6 22:59
0
雪    币: 211
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
谢谢..壳狼 先,
把0x3C 写到内存我知道怎么写,我想问的是怎么把内存中的0x33 0x63 这两个转成0x03和0x0C
之后把它们写到一起,就是0x3C ...还是谢谢你~~~
2008-6-6 23:06
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
7
printf("%x%x",0x3,0xc);
2008-6-6 23:19
0
雪    币: 2316
活跃值: (129)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
8
我是这样想的。上面代码应可以实现。
2008-6-6 23:28
0
雪    币: 2316
活跃值: (129)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
9
haha。
if(code[0]==0x33&&code[1]==0x63)
           value=0x3c;
2008-6-6 23:29
0
雪    币: 236
活跃值: (16)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
10
0x33-0x30=  是数字3  
0x63这个是c的ascii 不知道怎么转
2008-6-6 23:52
0
雪    币: 236
活跃值: (16)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
11
数字的ascii比较好转,只要减去30h就可以了
2008-6-6 23:53
0
雪    币: 458
活跃值: (265)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
int x;
char byte[2]={0x33,0x63}; //可以换成其他(0-f/F)的ascii
char result;
  
for(x=0;x<2;x++)
   {
    if(byte[x] >= 0x30 && byte[x] <= 0x39)
      {
       byte[x] = byte[x] - 0x30;
      }
    else if(byte[x] >= 0x41 && byte[x] <= 0x46)
      {
       byte[x] = byte[x] - 0x37;
      }
    else if(byte[x] >= 0x61 && byte[x] <= 0x66)
      {
       byte[x] = byte[x] - 0x57;
      }
    else
      {
      }
   }

result = (byte[0] << 0x4) | byte[1];
2008-6-6 23:55
0
雪    币: 2316
活跃值: (129)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
13
无需转换,0x63的字符就是"C"。ASCII字符"C"的十六进制表示是0x63。是等同的。
格式化输出为字符即可。

[QUOTE=yinhuo;463551]int x;
char byte[2]={0x33,0x63}; //可以改
char result;
  
for(x=0;x<2;x++)
   {
    if(byte[x] >= 0x30 && byte[x] <= 0x39)
      ...[/QUOTE]

很辛苦,自己构造了个格式化输出。
2008-6-7 00:10
0
雪    币: 458
活跃值: (265)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
[QUOTE=kissoks;463525]谢谢..壳狼 先,
把0x3C 写到内存我知道怎么写,我想问的是怎么把内存中的0x33 0x63 这两个转成0x03和
0x0C之后把它们写到一起,就是0x3C
...还是谢谢你~~~[/QUOTE]

我是照着楼主的意思写的.
2008-6-7 00:31
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
15
反正就是 StrToInt
要怎么变通'固定位数吗 ? , 自己想.
2008-6-7 00:32
0
雪    币: 211
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
谢谢大家热心帮助~~ 我去试试哈~~~~
谢谢~~
2008-6-7 08:52
0
雪    币: 211
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
搞定了,谢谢大家~~~~~
2008-6-7 09:01
0
游客
登录 | 注册 方可回帖
返回
//