工具介绍
CE修改器(cheat engine)的功能十分强大,集内存扫描、十六进制编辑器、动态调试功能于一体,所以它可以十分方便地进行游戏数据的修改从而达到作弊的效果(很多修改器就是通过CE制作的)。
1.1:CE怎么修改游戏
在使用CE之前,我们首先要了解一下CE修改器一些浅显的原理,以方便理解后面使用CE时一些操作的目的。(只说最浅显的原理,逆向汇编这些的这里不多说)
看这张图:

假设这个框框就是你的游戏,而这个游戏里面有许许多多个数据:

这么多数据,显然不是每个数据都是我想要的。比如我想要修改血量,那我就要找到血量所对应的那个数据。但很明显我并不知道这些数据里面哪个才是血量(它又没把血量写在脸上),所以下一步要做的就是找到血量这个数据并修改——这就是CE的功能::
在所有数据中筛选、过滤找到我们想要的数据(比如血量)并进行修改。
我们需要做的就是通过CE这个工具使用各种各样的方法去寻找我们需要的数据并修改从而达到我们想要的效果。
1.2:CE能修改哪些游戏
CE能修改大部分的单机游戏,因为单机游戏的数据都存储在本地,所以你可以通过CE找到这些数据并修改。
而网络游戏基本上是不能通过CE修改(除非网游自身出现bug),因为网络游戏的数据要随时传送给服务器,并在服务器进行存储和运算,而CE只能扫描本地的数据。即使你修改成功了,那也只是掩耳盗铃——修改后的效果只有你自己能看到,而且刷新一下就没了。
啰嗦了这么多,相信你对CE有了一些基本的认识,接下来我们来看看CE的真面目吧!

1.3:CE修改器的部署和初体验
下载下来后点击Cheat Engine.exe进入CE的界面:

如果界面不是中文可以依次点击Edit→Settings→languages→zh_CN→Select Language修改。
首先可以看到左上角有个发光的框框,我们首先要点击它选择我们要打开的进程。


这样我们就选中了我们想要修改的进程,可以进行后面的操作了。
认识完CE后就可以开始学习如何修改游戏了。
这里以植物大战僵尸为例,来看看如何通过搜索找到游戏数据并修改。
2.1:精确数值搜索
首先打开CE,选择进程。

众所周知,植物大战僵尸里面有一个叫阳光的东西。
阳光的数值是摆在明面上我们能够看得到的,所以对于这种数据我们只需进行精确数值搜索。

现在可以看到阳光为0(怎么开局五秒就来了4个僵尸(ˉ▽ˉ;)...)。
在CE中数值里输入0,扫描类型为精确数值扫描,数值类型选择4字节。

Q:为什么是4字节?
A:事实上这个数据的类型原本应该是你试出来的,只是我现在告诉你这个阳光就是4字节。
在你不知道类型的情况下,你就要2字节、4字节、8字节一个个试(这里指整数哈,浮点数应该选单浮点或双浮点)。但是这里我直接告诉你,一般整数都是以4字节存储的,所以以后搜索整数直接选择4字节就行(原因是整数一般用int类型的,int类型占4个字节,听不懂也没关系散了散了)。
这时点击首次扫描:

搜出来一千多万条数据。

这还是找不到阳光啊。
不慌,我们先吃个阳光,这时阳光就变成了50。


(糟,这僵尸出了六双鞋子,我家要没了)
这时将数值改为50,点击再次扫描。

如果这时只剩下一条数据,恭喜你,你大概率已经找到了阳光。如果你还有很多数据,那只需重复上述操作,吃个阳光或种个植物让阳光的数值改变,然后继续再次扫描。直到扫描结果中只有一条数据(有时会有两条,如果怎么扫描都是两条,那也没关系)。

双击这个地址,然后它会显示在下面。(如果你有两个地址,就把两个地址都弄下来)

这时我们可以看到这里会显示出它的数值,双击这个数值,修改它!(有两个地址就两个都试一遍)


点击确定,这时我们回游戏里看一眼。

看这时阳光就变成了我们修改的数值。

(终究还是抵御不住僵尸浪潮)
这就是精确数值搜索。
2.2:模糊搜索
有的数据不会显示出来告诉你,这时我们该如何找到这个数据并修改呢?
这里以CE修改器自带的小教程Tutorial-i386.exe为例。

先选择进程:

我们看到这一关:

每点击一次“打我”健康值都会减少——这就是我们搜索的突破点。
扫描类型选未知的初始值,数值类型选4字节,点击首次扫描。

首次扫描后不出所料有很多数据,这时点击一下“打我”让健康值减少。

(减少了多少不用记)
这时在CE中将扫描类型改为减少的数值,点击再次扫描。


这次扫描结果就少了很多,但还是太多了。
这时只需重复上述操作,直到数据较少且怎么扫描结果也不会减少为止。
将所有地址弄到下面。
是不是也需要像之前一样一个一个修改数值来试呢?
不!我们先观察。

看这些当前值,这里面哪个数值更像健康值呢?
教程里面告诉我们这个数值在0~500之间。我们可以猜测满健康值应该为500。
所以显然这3个42开头这么长一串的数字是不可能的。至于这么多568也不可能,哪来这么多健康值。至于剩下的323和75,看这个教程里面的血条还剩这么多,显然323更合理。

那就尝试将323改成5000。
回Tutorial看一眼,“下一步”亮了,说明我们的猜测是正确的。

2.3:不同类型数值搜索
不是所有的数据都是以4字节存储的,如果碰上浮点数(编程里面的概念,浮点数不严谨地说就是实数)我们就要考虑将数值类型换成单浮点或双浮点。
依旧以CE自带教程为例,我们先修改健康值。

已经告诉我们健康值是单浮点,所以在CE中数值输入100,扫描类型为精确数值,数值类型为单浮点。

点击首次扫描。
后面的操作和精确数值搜索类似,点击打我将数值更新为当前健康值,点击再次扫描。重复这个操作直到只有一个结果。修改数值的操作和精确数值搜索中的操作也是一样的。
自己试试吧!(*^_^*)
2.4:结语
现在我们已经基本学会了对游戏数据进行搜索并修改。你可以找一些单机游戏自己动手试一试。也许你会遇到搜索不到、修改无效的问题,不用灰心不用怀疑,你可以自己去尝试在网络上寻求帮助,