高手赶快过来看!关于WriteProcessMemory() to alwaysakid:请问能不能说得更清楚点啊。拜托! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 作为参考:PVOID pfnSourceOrg = (PVOID) GetProcAddress (hModule, SourceFuction/*"TextOutA"*/); ...(使用OpenProcess,VirtualAllocEx等方法分配内存,具体用法见MSDN)WriteProcessMemory(hProcess, pfnSourceOrg, ...); lpBaseAddress是你想写入进程中的绝对地址,你想向某进程的0x400000写入东西,那么lpBaseAddress=0x400000就行了 “看这个函数中的第二个参数,好像应该是相对地址吧”——此言差矣。是绝对地址,就是“绝对”的、hProcess所指进程地址空间内的逻辑地址。 是这样的,我用游戏修改器搜索到了游戏中的某个数值,比如生命值,它的地址是0x507804,于是把lpBaseAddress设为0x507804,写入新的数值,可是我发现内存里的这个位置上的数据并没有改变(通过内存修改器观察)。这是怎么回事呢,哪里有问题? VirtualProtectEx有没有调用过? 你要确信你打开的hProcess具有PROCESS_VM_WRITE和PROCESS_VM_OPERATION存取权限,而且对方进程的0x507804地址对应的段(页)是可写的(否则必须VirtualProtectEx)。不满足这些条件,WriteProcessMemory就会失败。 一般放生命值的地方都是RW属性的,建议检查返回值,我估计你是不是HPROCESS没传对 OpenProcess的时候指定:PROCESS_VM_WRITE了吗?VirtualProtect成功了吗?看看返回值。另外内存修改器刷新了吗?最好关了重开再看。再不行,自己ReadProcessMemory一把。 MFC程序运行时无响应,CPU使用为O VS2010编译的SDI程序在win7上最大化显示有问题 RtlMoveMemory函数在使用时溢出怎么办? 想求一个MFC的浏览器 请问高手关于visual c++2003的问题。 如何实现WINDOWS任务管理器那样的FORM里面套着PROPERTYSHEET的样式? 我的键盘钩子与输入法冲突,怎么办? 急:请问那里有msdn的有效下载. up有分 vc获取TfcStatusBar文本问题 要一个变量在多个对话框中有效,并可以赋值该怎么做? 〓〓〓各位大侠,如何才能使数据报穿越防火墙 VC能否作为汇编的编译器用?
PVOID pfnSourceOrg = (PVOID) GetProcAddress (hModule,
SourceFuction/*"TextOutA"*/);
...(使用OpenProcess,VirtualAllocEx等方法分配内存,具体用法见MSDN)
WriteProcessMemory(hProcess,
pfnSourceOrg,
...);
VirtualProtect成功了吗?看看返回值。
另外内存修改器刷新了吗?最好关了重开再看。
再不行,自己ReadProcessMemory一把。