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. NSString 常见数据类型转换:转NSInteger , NSDate(互转)

    1. NSString转NSInteger, 转int (float, double类似 ) 1.1正常情况 , NSString所包含内容确能转化为int的类型 NSString *sNumber ...

  2. 阿里RocketMq试用记录+简单的Spring集成

    CSDN学院招募微信小程序讲师啦 程序猿全指南,让[移动开发]更简单! [观点]移动原生App开发 PK HTML 5开发 云端应用征文大赛,秀绝招,赢无人机! 阿里RocketMq试用记录+简单的S ...

  3. 嵊州普及Day3T1

    题意:n座山,每天袭击k面,不能为同一座.问最少几天袭击所有山两面. 思路:不管如何,n,k<=10,做了就能过,考试时先想的暴力模拟,后来发现有规律,看看就好了. 见代码: #include& ...

  4. [转载]JDK自带的实用工具——native2ascii.exe

    做Java开发的时候,常常会出现一些乱码,或者无法正确识别或读取的文件,原因是编码方式的不一致.native2ascii是sun java sdk提供的一个工具.用来将别的文本类文件(比如*.txt, ...

  5. 针对小文件的spark wholeTextFiles()

    场景:推送过来的数据文件数量很多,并且每个只有10-30M的大小 spark读取hdfs一般都是用textfile(),但是对于这种情况,如果使用textFile默认产生的分区数将与文件数目一致,产生 ...

  6. Verilog有符号整型数(signed int)比大小

    本文参考了https://blog.csdn.net/wenxinwukui234/article/details/42119265/ 关于2进制补码的思考和讨论. ================= ...

  7. 图片FormData上传

    var base64String = /*base64图片串*/; //这里对base64串进行操作,去掉url头,并转换为byte var bytes = window.atob(base64Str ...

  8. 二十 Filter&自动登录功能

    Filter过滤器 过滤器,其实就是对客户端发出来的请求进行过滤,浏览器发出,然后服务器用Servelt处理.在中间就可以过滤,起到的是拦截的作用. 不仅仅作用于客户端请求,而且过滤服务器响应 作用: ...

  9. centos7下yourcompleteme安装

    以前装过一回,没成功,现在再来一次 yourcompleteme git https://github.com/ycm-core/YouCompleteMe#installation 检查软件版本 v ...

  10. 功耗极低非接触 13.56mhz读卡芯片:SI522

    众所周知13.56mhz是高频,一般用于防伪,做到成品非常薄.在智能门锁以及RFID读卡器是非常多人采用的,不管是在读卡距离.读卡灵敏度都是非常好的.现在智能门锁的竞争性很大,大多厂商及方案商都慢慢往 ...