金山游侠的原因(怎么查找和修改另一应用程序的值)

金山游侠是通过修改另一个游戏的内存来改游戏里面的值,在VC中应该怎么实现查找和修改另一个程序的值,给点提示吧,这些一点都不明白怎么实现的?我知道每个应用程序都有自己独立的... 金山游侠是通过修改另一个游戏的内存来改游戏里面的值,在VC中应该怎么实现查找和修改另一个程序的值,给点提示吧,这些一点都不明白怎么实现的?
我知道每个应用程序都有自己独立的4GB虚拟内存空间,但怎么知道应用程序在物理内存上的地址并修改?还是有其它方法去改?比如运行暗黑,然后运行修改程序,得到暗黑的句柄,然后查找一个数值,得到自己想改的数值后用WriteProcessMemory()写入内存.这是我的思路,请问下是不是这样的?具体的函数请说明了下。非常感谢~!
展开
 我来答
stone_dongdong
2009-07-01 · TA获得超过2853个赞
知道大有可为答主
回答量:1636
采纳率:0%
帮助的人:1015万
展开全部
物理地址是不需要知道的。——当然也可以实现,那需要进入实模式,并且要查找某个进程的地址映射表,来修改物理内存。比较麻烦

直接修改进程的线型地址空间一样可以达到效果。
首先 OpenProcess 打开那个进程。具体的前奏还有查找窗口、搜索进程等方法,反正就是要获取那个目标进程的句柄。
然后 VirtualProtectEx 修改那个进程的内存保护模式,让进程的某部分可读可写。(具体的看MSDN上的说明)。
再,搜索需要修改的数据所在地址
后 WriteProcessMemory 修改那个数据。
最后 恢复现场。
百度网友32cdd9945
2009-06-30 · TA获得超过1374个赞
知道大有可为答主
回答量:2429
采纳率:100%
帮助的人:1923万
展开全部
就是用WriteProcessMemory 这个函数没错。

不用管 物理内存 内存的,传的就是虚拟地址。 搜索的时候只能遍历了,不过也许可以跳过不大常用的区域,比如32位用户空间只有2G,而且具可写书属性的才有可能是数据区域把。

网上应该有很多例子的。 在一本叫作《编程高手箴言》的书里面也有一个例子。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式