首页
社区
课程
招聘
[求助]一个取指定内存下的值,谢谢!
发表于: 2008-12-30 19:52 4421

[求助]一个取指定内存下的值,谢谢!

2008-12-30 19:52
4421
如一段地址0x805CB150.
ULONG A=0x0x805CB150;
地址下面保存的是一个数500,用4字节保存的.

想问下怎么通过变量A来取出里面的500.

我只会去BYTE的
如BYTE B[4];

我只会超麻烦的,比如RtlCopyMemory(B,(BYTE*)A,4);
这样B里就保存了500,但是是BYTE类型的,我想是ULONG型的该怎么取呢?
ULONG B;

RtlCopyMemory(B,(ULONG*)A,4);
这样不行.

还有比如A=0x805Cb150地址下保存的是16字节的字符串
我该怎么取出来直接和"字符串",这样对比呢

IF("字符串" == ??)

新手很弱很白痴,这几天发了不少问题,可能各位大大都烦了,真的很抱歉.希望这个问题后就没有问题了~   ^^

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

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 30
活跃值: (1233)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
内存中的数据保存起来最小的单位是bit, 而8个bit就够成了一个BYTE,通常取数据我们用BYTE,
因为表示数据最小的就是char,或者BYTE(MS 的宏为unsigned char) 也就是8个bit.
2个BYTE就够成了一个WORD, 4个BYTE构成DWORD
我觉的你数据类型的概念比较混淆,自己翻下书看看,C的数据类型部分
2008-12-30 20:02
0
雪    币: 129
活跃值: (31)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
但是取出来BYTE类型的不能直接和INT,LONG直接对比,那样很复杂呀?
就像读内存字节,读出来的字节得转成DWORD和一个数字来对比.
能否直接取出DWORD类型的值来呢?
2008-12-30 20:15
0
雪    币: 635
活跃值: (101)
能力值: ( LV12,RANK:420 )
在线值:
发帖
回帖
粉丝
4
基础功完全不行还写什么驱动啊。。。。
2008-12-30 20:58
0
雪    币: 129
活跃值: (31)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
多写就会了啊,哈哈...
2008-12-30 21:11
0
雪    币: 230
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
int* p=0x0x805CB150;
*p的值就是500呀
2008-12-30 21:54
0
雪    币: 44
活跃值: (133)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
RtlCopyMemory(B,(ULONG*)A,4)这样是取的16个字节吧
2008-12-30 22:15
0
雪    币: 75
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
BYTE *p=0x805CB150;
BYTE a;
WORD b;
DWORD c;
BYTE szBuffer[16];
a = p;
b = (WORD&)p;
C =(DWORD&)p;
RtlCopyMemory(szBuffer,p,16);
2008-12-30 22:48
0
雪    币: 129
活跃值: (31)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
谢谢楼上的,都清楚了,呵呵,结贴.很感谢.
2008-12-30 23:42
0
游客
登录 | 注册 方可回帖
返回