ce逆向修改——植物大战僵尸

一、实验目的

为熟悉CE的使用和对软件逆向分析有进一步的了解。

二、实验设备

Cheat Engine 6.8、植物大战僵尸

三、实验内容

1.针对“阳光值”

四、实验步骤

1.针对“阳光值”

(1)采用3种以上的方法扫描至少3关的“阳光值”的内存地址,并能修改;

①打开游戏进程

ce怎么修改unity游戏_内存地址

 

②第一关寻找阳光值地址(精确扫描)

初始阳光值为50,输入50,点击首次扫描,显示结果

消耗(或者增加)阳光值,使阳光值产生变化为0,输入0,点击再次扫描,显示结果

单击右键,选择改变该值,进行阳光值的修改

ce怎么修改unity游戏_ce怎么修改unity游戏_02

 

ce怎么修改unity游戏_ce怎么修改unity游戏_03

ce怎么修改unity游戏_逆向分析_04

 

ce怎么修改unity游戏_内存地址_05

 

③第二关寻找阳光值地址(值大于)

初始阳光值为50,选择值大于40,点击首次扫描,显示结果

消耗(或者增加)阳光值,使阳光值产生变化25,输入25,点击再次扫描,显示结果

单击右键,选择改变该值,进行阳光值的修改

ce怎么修改unity游戏_内存地址_06

ce怎么修改unity游戏_ce怎么修改unity游戏_07

ce怎么修改unity游戏_ce怎么修改unity游戏_08

ce怎么修改unity游戏_逆向分析_09

(2)找到阳光值的内存基址,简述如何分析和找出基址的过程;

在此地址上点右键->查找写入该地址的代码,会看到一个对话框“下列代码更改选择的地址”,里面是空白的,切换回游戏,随便种一棵植物(目的是让阳光变少,好找出哪些代码修改了此内存),再回到CE,会看到刚才的空白对话框中已经有内容了,双击或点“更多信息”。

记住EDI的值,下一步将上面的搜索框前的16进制勾选上->将EDI的值填进去->首次扫描。

搜索出一堆地址,将上一步搜索出的值添加到地址列表->右键->查找所有访问此地址的代码,双击第一个 mov指令查看更多信息,我们继续搜索所得地址。

查找到了绿色内存地址,绿色内存地址表明该地址在游戏中是静态的,它就是要找的基址了,把这些内存地址连接起来,手动填加地址进行测试。

ce怎么修改unity游戏_ce怎么修改unity游戏_10

ce怎么修改unity游戏_内存地址_11

 

ce怎么修改unity游戏_逆向分析_12

 

ce怎么修改unity游戏_内存地址_13

ce怎么修改unity游戏_逆向分析_14

 

 

(3)画出阳光值的内存访问示意图或工作原理;

ce怎么修改unity游戏_内存地址_15

 

(4)分析阳光值功能实现的设计算法;

#include <stdio.h>  

class SunClass{

public:

  int SunTime;

  int SunValue;

  int SunAttr;

};

int main(){

  SunClass *Sun=new SunClass;

  Sun->SunValue=100;

  printf("SunValue: %d",Sun->SunValue);

  return 0;

}

(5)分析阳光值的相关汇编语言代码的工作过程;

当捡起阳光时,阳光数值增加,执行下图中的两句指令;当消耗阳光时,阳光数值减少,执行下图中的最后一句指令

(6)画出逆向分析的思维导图,并将以说明其逆向原理。

ce怎么修改unity游戏_安全_16

 

(7)观察“阳关”的其它属性,并采用上述(1)-(5)的方法分析之。

首次扫描时需要进行未知的初始值,之后它的倒计时在没有产出阳光时时慢慢减少的,在产出阳光后,它的倒计时相对于之前来说是进行增加的。

选择减少的数值、增加的数值多次,操作完成之后就可以发现其的时间地址,然后寻找基址。

之后要将其进行锁定要不然还会进行新一轮的倒计时,同时要将数值修改为1,让阳光不断的进行这一操作。

(9)实现自动收集阳光,并详细说明原理;

首先找到阳光的内存地址,然后找到是什么修改了这个地址,右击找到是什么修改了这个地址然后进行阳光的收集,发现在新的窗口中出现了一行代码。

接下来会出现一行代码,选择显示反汇编程序,在调试中设置断点,等待阳光的掉落,点击视图堆栈跟踪,点击工具中的自动汇编,模板中的CT表框架代码,接着点击模板代码注入,将这里的jne修改成jmp。点击文件分配到当前列表,点击运行,删除断点列表中的断点就可以进行自动收集阳光。

ce怎么修改unity游戏_逆向分析_17

ce怎么修改unity游戏_逆向分析_18

ce怎么修改unity游戏_安全_19

ce怎么修改unity游戏_搜索_20

 

ce怎么修改unity游戏_安全_21

 

ce怎么修改unity游戏_搜索_22

 

ce怎么修改unity游戏_搜索_23