这是一篇大家熟 Windows 下分析内数据的文章并且用 VC++
实现修改内存
VC++6.0 制作单机游戏修改器 这里介绍一个简单的单机游戏修改器制作过单机游戏修改器当然 比修改网络游戏要简单很一般只需修改内存即今天就拿红警
2 共和国之辉为例子做一个单机游戏修改器。首先打开游戏然后用 内存查器查我们想要修改相应数据的内存地这里我们选 CE CE 是个功能非常强大的内存修改好废话少说 我们开始新建一个 游戏,相信这个游戏大家都很熟悉了,新建游戏开始
这里可看到游戏刚开始我们就金钱入手吧这个在警里是最直的啦好然后最 小化游戏 打开我 CE(注意这时候 我们新一个电厂然暂停 让金钱数值处于一 个不容重复出现很次的数值) 注意VC++实现修内存相应地的值很简单面我会讲解现在我们具看看内存地址
  和基址是 如何查和分 析的   

这是我 CE 附加红游戏进程 进程名为 Game.exe,然后让戏的金币处一个容易查
的值状请看下图

可以看查出来的数非常少了,是还需要过,所以现在们再返回游戏 再让金
数值变一下暂停,学习编程的单机游戏回 CE 继续查,最终发现下几个地址
CE 里绿示常量而这两常量对于修内存的金币行不通他们肯有别的作 用但是能达到修改币的作用所我们修改黑的那个地址 0A029DDC直接在 CE 里面 修改返回游发现游戏金的值已经被改了但是这有一个问当我们闭游戏之 后再新进就已经不是 0A029DDC 这个值了 这个候我就要想一个固定的 地址是基址,么查?CE 强大功能可以到这点双这个地址 把它加到下面的 列表 然后右击 查看所操作这个地的代码如下所示:

Z-11
然后我进入游戏 改变下币的值然后返我们的 CE 修改器发现 有一些这个 代码就操作这个金值的代码 我们来析下这段简的代码这是查基址的关键骤。 如下图示:

每段代后面都有+24C 的操作我们双击把放大看看
看看红的那句代码 mov ecx+24C,edx然后看下面有 edx 可以看到 edx 的值 2710 注意 16 转换 10 2710 进制
10000现在游的数据恢复一万了正好是金币的值那么它这个值放到了呢 就是 ecx+24C 这个地,大家可以看图 Z-11 这是特标示出来的可以看看我到金币地
化的 0A029DDC ecx+24C ecx 看到
0A029B90 然后我 ecx+24C 计算出可以看到等于 0A029DDC就是现我们到的这 个每打开戏都动变化值,所现在们要关 ecx 是从里来,因 24C 是一个定的值每次其动态变化的是那个 ecx然后再 24C 得出的址就是我们
要真正改金币的地好了我现在就直接 ecx 的基它的基也就是一个含了 每次变的地址的一固定的地红警 2 里面只一层基址相来说比较简一些所以 我们来查看这个地在哪个地址面,打开新搜索搜索 ecx 这个地如下图:

这个时我们又看到个绿的常跟前面们金币那值常量有所我们可
测它就我们最终要的基址,因它是一个常量 它的值每次不变的符合我们要
基址的件所以我们把 00A1E0C4 这个值存起来然后关游戏 我们再开游戏 我们直 看看 00A1E0C4 便宜 24C 址里面 是不是是我们当前金币试过几完全是的所以现很清楚了 我们要修 改金币地址的思很简单:
1:查出 00A1E0C4 这个地里面的值我现在称为 X