Cheat Engine(简称CE,中文名-作弊引擎),用于查找、修改内存数据,是游戏逆向的基础工具。

本文仅介绍基础操作。

1.打开进程

  运行游戏程序,并将CE附加到进程

                 

2.寻找数据地址,并修改数据

  限定条件进行搜索,直至找到数据。扫描数据时可先暂停游戏

  举例:已知血量初始值

  a.游戏开始时,暂停,搜索初始值。

  b.开始游戏,让血量减少,暂停,检索减少的值。

  c.重复a和b的操作,直到左边出现符合条件的数值

  

 

   

3.指针数据

  如果上面的步骤并没有效果,说明找到的是可变地址(当然也可能是找错了),该地址的数据是由一个指针改变的,我们必须找到是谁在改变数据,即最初的指针(具体有多少级指针不确定)

  a.禁止指针修改数据

    

  

  b.一级指针找基指针

  目的:找到最开始的指针 ,加上偏移, 就指向了找到的数据

   

  

  

 

  c.多级指针

    与找一级指针类似,多找几层就行了,直到地址是绿色的(找到了基指针)。注意指针偏移,最后手动添加地址时,点击Add Offset添加偏移。

    例:三级指针

    [[[基指针 + 偏移1]+偏移2]+偏移3],Add Offset填入偏移1、2、3。

4.inline hook

  在原代码(地址Y)添加自己的代码或修改原代码。

  原理:

    1.在目标进程申请内存空间(代号A),在A中写自己的汇编代码。(A中最后要返回到修改指令的下一条(jmp Y + 5))

    2.将Y的指令改为 jmp A,跳到自己申请的内存中执行代码

    3.跳回到Y+5

 

  自动汇编→模板→代码注入→(自动填入了地址)点OK,得到右图

           

5.内存查看

  有些数据难以扫描得到,可以通过内存查看(点击 内存查看 按钮),内存查看器的汇编代码下面的窗口。

  内存地址难以获取,但是由于开发程序时,数据多是结构体形式,比如人物属性(血量,蓝,。。。等)在一个结构体内。

  可以通过容易找的内存地址来判断同一个结构体内其他内存地址的大致范围。(上下多看看)

  当游戏运行时,根据情况的不同,内存数据会变化。找到变化的地址(数据会变色),在主窗口手动添加地址就能改了。