首页
社区
课程
招聘
未解决 [求助]C++读写内存遇到的一个奇怪问题,请各位大佬帮忙
发表于: 2023-6-18 18:11 5266

未解决 [求助]C++读写内存遇到的一个奇怪问题,请各位大佬帮忙

2023-6-18 18:11
5266



rax = 基址;//不行
rax = startAddress + 0x213DB78;//可以
基址 rax startAddress 都是DWORD64 类型

 

如图所示,我在使用rax = 基址的时候就无法读取数据
但在使用tartAddress + 0x213DB78就可以正常读取
二者输出显示的都是同样的地址;

 

而且我之前试过新建一个DWORD64 新地址 = 0x213DB78;
然后startAddress + 新地址 这样也是无法读取,
我刚接触C++没有多久,希望各位大佬能帮忙回答一下这个小问题,万分感谢:)


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 267
活跃值: (438)
能力值: ( LV9,RANK:190 )
在线值:
发帖
回帖
粉丝
2
既然都会用rax 了, 那去看看你编译出来的程序汇编,找找编译、链接参数,生成中间汇编伪代码,看看c语句编译链接出来的对应汇编。通过这些你自然会找到原因,而且会收获不小。
还有一个简单办法: 你的rax 不要用,用自定义变量名,全程不与汇编冲突!
2023-6-19 15:23
0
雪    币: 307
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
linziqingl 既然都会用rax 了, 那去看看你编译出来的程序汇编,找找编译、链接参数,生成中间汇编伪代码,看看c语句编译链接出来的对应汇编。通过这些你自然会找到原因,而且会收获不小。 还有一个简单办法: 你的r ...
你好,我用的是64位编译,不能使用汇编,rax是变量名
2023-6-19 20:10
0
雪    币: 307
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
已经找到原因了!是我在读取内存的函数中错误的传递了读取长度,导致读取出来的地址过长,而且因为错误的调试方式才没有正确找到问题所在。
2023-6-19 21:02
0
游客
登录 | 注册 方可回帖
返回
//