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.内存查看

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

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

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

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

Cheat Engine 入门操作的更多相关文章

  1. 使用 Cheat Engine 修改 Kingdom Rush 中的金钱、生命、星

    最新博客链接 最近想学习一下 CE,刚好看见游戏库里装了 Kingdom Rush 就拿它来研究吧.这里写的东西,需要一些 Cheat Engine 的基础,可以看看教程. 这里主要是看写的注释,来理 ...

  2. Mysql的二进制安装和基础入门操作

    前言:Mysql数据库,知识非常的多,要想学精学通这块知识,估计也要花费和学linux一样的精力和时间.小编也是只会些毛皮,给大家分享一下~ 一.MySQL安装 (1)安装方式: 1 .程序包yum安 ...

  3. Mysql数据库的二进制安装和基础入门操作

    前言:Mysql数据库,知识非常的多,要想学精学通这块知识,估计也要花费和学linux一样的精力和时间.小编也是只会些毛皮,给大家分享一下~ 一.MySQL安装 (1)安装方式: 1 .程序包yum安 ...

  4. MySQL数据库的二进制安装、源码编译和基础入门操作

    一.MySQL安装 (1)安装方式: 1 .程序包yum安装 优点:安装快,简单 缺点:定死了各个文件的地方,需要修改里边的相关配置文件,很麻烦 2 .二进制格式的程序包:展开至特定路径,并经过简单配 ...

  5. ce游戏内存修改器(Cheat Engine)

    ce修改器(Cheat Engine)一款专门修改内存修改编辑的游戏工具它包括16进制编辑,反汇编程序,内存查找工具新版6.1 版的CE与6.0 最大的区别就是添加了修改器制作工具,比之前 5.6.1 ...

  6. cheat engine lua

    function CEButton1Click(sender) local x = getProperty(CETrainer.CEEdit1,"Text")--这句很重要,获取文 ...

  7. spring boot 入门操作(二)

    spring boot入门操作 使用FastJson解析json数据 pom dependencies里添加fastjson依赖 <dependency> <groupId>c ...

  8. spring boot 入门操作(三)

    spring boot入门操作 devtools热部署 pom dependencies里添加依赖 <dependency> <groupId>org.springframew ...

  9. java之servlet入门操作教程一续

    本节主要是在java之servlet入门操作教程一  的基础上使用myeclipse实现自动部署的功能 准备: java之servlet入门操作教程一 中完成myFirstServlet项目的创建: ...

随机推荐

  1. Java的equals方法实现及其细节

    判断两个对象是否等价,是OOP编程中常见的需求(下面围绕Java来进行阐述). 考虑这样几种情况:通过某个特征值来判断两个对象是否“等价”,当这两个对象等价时,判断结果为true,否则结果为false ...

  2. Day2-H-非常可乐-HDU1495

    大家一定觉的运动以后喝可乐是一件很惬意的事情,但是seeyou却不这么认为.因为每次当seeyou买了可乐以后,阿牛就要求和seeyou一起分享这一瓶可乐,而且一定要喝的和seeyou一样多.但see ...

  3. 白手起家Django项目发布上篇_linux centos 环境部署

    在项目发布之前,首先准备好我们编写好的Django项目,这个我们在之后博客有写,大家可以去看, 首先,先开始安装linux服务器,作为Django项目的发布服务器.以Vmware虚拟机为例子,大家也可 ...

  4. dfs+记忆化搜索,求任意两点之间的最长路径

    C.Coolest Ski Route 题意:n个点,m条边组成的有向图,求任意两点之间的最长路径 dfs记忆化搜索 #include<iostream> #include<stri ...

  5. PLCsim 软件模拟OB86故障

    用上一节 组态DP主站与标准从站的方法 组态了网络 实现了 将profibus –dp 标准从站 ET200M 下 输入地址为IW2 接口的状态 读取到 主机 DP-315-2DP 的QW0 变量以来 ...

  6. java 加法变乘法

    加法变乘法 我们都知道:1+2+3+ - + 49 = 1225 (1) 现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015 比如: 1+2+3+...+10*11+12+...+27*28 ...

  7. 51nod 1099:任务执行顺序 贪心

    1099 任务执行顺序 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题  收藏  取消关注 有N个任务需要执行,第i个任务计算时占R[i]个空间,而后会释放一部分, ...

  8. 2-10 就业课(2.0)-oozie:6、通过oozie执行mr任务,以及执行sqoop任务的解决思路

    执行sqoop任务的解决思路(目前的问题是sqoop只安装在node03上,而oozie会随机分配一个节点来执行任务): ======================================= ...

  9. Ubuntu下安装 Mysql

    MYSQL在ubuntu16.04下的编译安装mysql-5.6.23.tar.gz 为减少安装过程中因权限带来个各种问题,建议全程用root用户编译安装,步骤如下: 1.安装依赖文件  apt-ge ...

  10. Vue(九)---自定义指令(directive )

    1.无参数 自定义指令的方式:1. 使用Vue.directive 来自定义2. 第一个参数就是 指令名称 xart3. el 表示当前的html dom对象4. 在方法体内就可以通过 innerHT ...