首页
社区
课程
招聘
[旧帖] 地址错位读去问题 0.00雪花
2006-11-30 15:32 3849

[旧帖] 地址错位读去问题 0.00雪花

2006-11-30 15:32
3849
各位,有这么一个程序,我跟踪出的地址显示
10029650  80 09 02 10 10 00 00 00 03 00 00 00 0F 00 00 00  
10029660  0A 00 00 00 00 00 00 00 00 00 00 00 0F 00 00 00  
10029670  01 00 00 00 01 00 00 00 01 00 00 04 E0 60 02 10  
10029680  E0 60 02 10 E0 60 02 10 E0 60 02 10 E0 60 02 10
10029690  E0 60 02 10 D0 60 02 10 D0 60 02 10 D0 60 02 10
100296A0  D0 60 02 10 D0 60 02 10 D0 60 02 10 28 59 02 10
100296B0  00 00 01 C4 60 02 10 B8 60 02 10 AC 60 02 10 00
而这里面我需要的地址是第7行(最后一行)偏移+3,也即是C4 60 02 10才是我需要的地址,我要通过该地址读去里面的类容,但我定义的结构,比如
typedef stuct
{
  BYTE btUnkown[0x63];
  DWORD dwAddr;
}
我读出来的dwAddr的值缺是C4100260,而实际地址应该是100260C4,请问我要怎么写程序才能正确的读去这个地址呢?

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

收藏
免费 0
打赏
分享
最新回复 (7)
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
mikydoll 2006-11-30 15:38
2
0
各位,有这么一个程序,我跟踪出的地址显示
10029650  80 09 02 10 10 00 00 00 03 00 00 00 0F 00 00 00  
10029660  0A 00 00 00 00 00 00 00 00 00 00 00 0F 00 00 00  
10029670  01 00 00 00 01 00 00 00 01 00 00 04 E0 60 02 10  
10029680  E0 60 02 10 E0 60 02 10 E0 60 02 10 E0 60 02 10
10029690  E0 60 02 10 D0 60 02 10 D0 60 02 10 D0 60 02 10
100296A0  D0 60 02 10 D0 60 02 10 D0 60 02 10 28 59 02 10
100296B0  00 00 01 C4 60 02 10 B8 60 02 10 AC 60 02 10 00
而这里面我需要的地址是第7行(最后一行)偏移+3,也即是C4 60 02 10才是我需要的地址,我要通过该地址读去里面的类容,但我定义的结构,比如
typedef stuct
{
  BYTE btUnkown[0x63];
  DWORD dwAddr;
}
我读出来的dwAddr的值缺是C4100260,而实际地址应该是100260C4,请问我要怎么写程序才能正确的读去这个地址呢?
雪    币: 196
活跃值: (135)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
thinkSJ 4 2006-11-30 17:07
3
0
这样写行不?
typedef stuct
{
  BYTE btUnkown[0x63];
  DWORD dwAddr;
}Struct;

Struct st;
st.dwAddr= *(DWORD *)0x100296B3;
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
SmileBoy 2006-11-30 17:37
4
0
DWORD dwAddr[4];

然后倒过来给数组赋值,读的时候顺序读取。

不知对于你的程序行不行
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
mikydoll 2006-11-30 17:47
5
0
Struct st;
st.dwAddr= *(DWORD *)0x100296B3;

啊哦。0x100296B3那里来的啊?我想最好是能通过读出来,因为我要的这个地址可能会变
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
mikydoll 2006-11-30 17:49
6
0
行应该行,但这样似乎过于烦琐。难道就没办法让C4100260变成100260C4吗?比如通过移位运算之类
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
NIU 2006-11-30 18:11
7
0
最初由 mikydoll 发布
Struct st;
st.dwAddr= *(DWORD *)0x100296B3;

啊哦。0x100296B3那里来的啊?我想最好是能通过读出来,因为我要的这个地址可能会变
0x100296B3就是你要读的数据的起始地址,你用一个变量替代就是了
雪    币: 494
活跃值: (629)
能力值: ( LV9,RANK:1210 )
在线值:
发帖
回帖
粉丝
softworm 30 2006-11-30 19:06
8
0
可以用rol,但不知道你怎么会得到这样的结果
游客
登录 | 注册 方可回帖
返回