| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1232 人关注过本帖
标题:关于ReadProcessMemory函数的小问题 10分求解
只看楼主 加入收藏
a451410
Rank: 2
等 级:论坛游民
帖 子:34
专家分:48
注 册:2018-3-4
结帖率:83.33%
收藏
已结贴  问题点数:10 回复次数:1 
关于ReadProcessMemory函数的小问题 10分求解
是这样的我用c语言获取到了进程的内存读写权限,并且我想修改一个基地址所指向的最终的值(植物大战僵尸的阳光值基地址(0x 00199178)),这个值指向0x 20155c08,但是这个值是有一个偏移的,最后的阳光值地址是20155c08 + 5578后的值。我想请教一下如何才能得到这个最后的值,怎么通过基址找到最后的值,我以为定义一个指针将00199178赋值过去然后就可以计算呢,但是不行会报错,请了解相关只是的大佬详细给我解释一下,最好能给出范例。十分奉上!这是我的其中一段代码:
程序代码:
DWORD dwSunjizhi,dwSun1=0,dwSize=0;
    dwSunjizhi=0x00199178;

    if(NULL==ReadProcessMemory(hProcess,(LPVOID)dwSunjizhi,&dwSun1,sizeof(DWORD),&dwSize));
    {
        printf("读取内存失败!错误编号:%d\n3秒后退出...\n",GetLastError());
        Sleep(3000);
        exit(0);
    }
}
  
搜索更多相关主题的帖子: 函数 地址 指向 阳光 DWORD 
2018-04-27 00:02
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10537
专家分:42927
注 册:2014-5-20
收藏
得分:10 
Windows用逻辑地址(或虚拟内存)
如在WIN32中,每个应用程序都可“看见”4GB的线性地址空间,
其中最开始的4MB和最后的2GB由操作系统保留,
剩下不足2GB的空间用于应用程序私有空间。
具体分配如下:
 0x00000000-0x00000FFF 为防止使用空指针的4,096字节
 0x00001000-0x003FFFFF 为MS-DOS 和 WIN16应用程序
 0x00400000-0x7FFFFFFF 为每个进程的WIN32专用地址
 0x80000000-0xBFFFFFFF 的1GB用于共享的WIN32 DLL、存储器映射文件和共享存储区
 0xC0000000-0xFFFFFFFF 的1GB用于VxD、存储器管理和文件系统
用ReadProcessMemory()读进程内存数据,第二个参数 lpBaseAddress 在 0x00400000-0x7FFFFFFF
2018-04-27 04:40
快速回复:关于ReadProcessMemory函数的小问题 10分求解
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016887 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved