Cheat Enginee(CE)修改器详细教程
文章目录
- CE 介绍
- 安装教程
- 汉化教程
- Cheat Engine 训练教程
- 附加进程
- 精确值扫描
- 未知的初始值
- 浮点数的扫描
- 代码替换功能
- 关于指针寻找
- 代码注入
- 多级指针
- 查找共享代码
CE 介绍
Cheat Engine
,简称CE
,是逆向工程师常用的几大神器之一,也是游戏汉化、破解以及外挂编写中常用的工具,其功能包括:内存扫描、十六进制编辑器、调试工具,可以进行反汇编调试、断点跟踪、代码注入等诸多高级功能。
它还附带了调试器、反汇编器、汇编器、变速器、作弊器生成、Direct3D
操作工具、系统检查工具等。
支持 lua
语言,可以实现自己定义的逻辑功能,而不仅仅是简单的锁定数据。也可以在代码注入的同时注入 lua
插件,使游戏进程与 CE
进程进行交互。 CE
的大部分功能都可以通过 lua
来操作。
它还支持 D3D Hook
功能,可以在游戏中显示十字准星,也可以绘制功能菜单,同时也可以对 D3D 的调用栈进行跟踪调试。
自带变速功能,通过 Hook
游戏相关函数改变游戏速度。
自带了一个 Trainer
的功能,可以将自己在 CE
中实现的功能单独生成一个 exe
文件,并可以使用 lua
创建比默认样式更加复杂的窗体或功能。
安装教程
下载链接:https://www.cheatengine.org/downloads.php
点击后即可自动跳转到下载安装文件,点击下载完成的exe
文件,选择语言为English
,分别点击next -> accept
直到安装完成即可。
汉化教程
安装完成后,在官网页面下载中文汉化包并解压
右键点击桌面CE
图标,选择“打开文件所在位置”,将解压的汉化包复制到languages
文件夹中。
重启CE
后,点击最上面一栏的Edit
,选择Settings
。
来到设置页面后,按下图所示,依次点击,重启CE
后,即可为中文版。
Cheat Engine 训练教程
附加进程
按照CE
自带的训练教程,我们开始第一步。
附加进程后的界面如下
精确值扫描
第二关的作用还是很简单的,主要目的是遍历出我们想要的动态数据,比如角色的生命,人物的魔法等,都会用到精确扫描,可以说这一关是既简单又实用的东西,也是今后制作中最常用的环节.
简单描述的意思就是,需要将100
这个数值修改为1000
则本关就算通过。我们首先尝试搜索数值100
,默认情况下一般游戏就是4
字节,这里不需要改动扫描类型和输出类型,默认就好了。点击首次扫描,看看会出现什么结果。
这次扫描我们得到 49
个结果,里面肯定有我们要找的那个血值,但是找下去有点复杂,我们继续往下看。
我们再次回到Tutorial
页面,点击“打我”,可以看到数值变化为97
。
我们再次搜索数值97
,得到一条结果。
此时地址栏里面只有1
个结果了,这个就是我们要找的内存地址,双击将其加入到地址栏。
在数值95
上面双击,并修改把 97
改成 1000
点击确定按钮。
回到教程后,即可发现“下一步”按钮亮起,点击即可通关。
未知的初始值
本关主要用来搜索进度条,人物血条等,因为这些数据通常是一个进度条,我们无法直接看到的数据,此时可以通过变更的数据一步步筛选找到动态地址。
点击新的扫描,选择未知的初始值,点击首次扫描。
显示有927744
条结果,由于结果太多,所以CE
未列出来。
老办法,回到 Tutorial.exe
,点击打我 ,CE
会告诉你血量减了多少,比如 -3
。
我们换个思路,假设CE没告诉我减少了多少或者我们根本没看清,这时应该怎么办呢?
- 扫描减少的数值: 下拉框,选择减少了的数值,按再次扫描【此时血量减少了】
- 扫描不变的数值: 拉框,然后选择未变动的数值【此时血量没有变化】
- 反复操作: 再回到
Tutorial
,点击 打我 => 扫描减少了的数值 => 扫描没变动的数值 反复操作,最后就会只剩4个地址 - 判断: 简单判断下(
Tutorial
中告诉你了这个数值是小于500
的),很容易就找到了最终的地址。
血量减少=>CE搜索减少的数值
血量不变=>CE搜索不变的数值
血量增加=>CE搜索增加的数值
这样反复筛减,就能很容易找到最终的结果。
双击把地址加到地址栏,然后更改数值为5000
。
浮点数的扫描
在扫描浮点数时,我们需要将数值类型改为浮点数,浮点数扫描时不必输入后的小数 97.0000
扫描时输入97
就可以了。
将地址双击加入地址栏,修改数值为5000
即可。
接着搜索双浮点数,也就是找到弹药的内存地址。
按照上面相同的步骤,修改数值为5000
。
修改完数值后,点击下一关即可。
浮点数的长度是4字节,使用4字节也可搜索到浮点数,但需要使用模糊搜索。
双浮点数的长度是8字节,使用8字节也可搜索到浮点数,但需要使用模糊搜索
现在好多游戏都采用浮点数来处理。例如在扫描游戏时发现一个数值是 1120403456
,这时候就要想到它是浮点数。
4字节的 1120403456
= 浮点数的 100
,目前的游戏大多以4字节(含浮点数)为主。
代码替换功能
首先先找到血量的内存地址,然在地址上右键=>找出是什么改写了这个地址。
在弹出的小窗口中点击YES
按钮 ,会弹出一个如下所示的小窗口,这个窗口此时没有任何数据。
然后我们回到教程中,点击教程中的 改变数值 按钮。会出现如下代码mov[eax],edx
不用管他的意思。
小窗口中会出现一行代码,选中代码,然后点击替换按钮。
回到教程后,点击改变数值,发现按钮失效。继续点击下一步,即可通关成功。
改变数值按钮其实是通过 代码 0045aecb - 89 10 - mov [eax],edx
来实现数值改变的。我们的最后一步操作就是要把这行代码替换成什么也不做【英文是 Nop
】,这样就会让按钮的功能失效。
关于指针寻找
首先还是之前一样,我们先找到数值的动态地址。
找到血量的地址后,加入到地址栏,然后在地址上按右键=>找出是什么改写了这个地址,然后点击”改变数值“按钮,出现一行代码【见第五关】,双击那行代码【或者点击详细信息】。
然后出现一个信息框,具体的代码是什么意思不需要明白,CE
会告诉你下一步该做什么。
CE
让我们下一步找 017F3FA0
【每个人电脑显示可能不是相同的地址,因为它是动态地址】,继续操作。
返回到CE
,点击新扫描,先勾上HEX
,填入 017F3FA0
,点击首次扫描。这个地址 006566B0
,就是基址。在CE中显示绿色的地址是基址,黑色的地址是动态地址。
手动添加一个指针,点击 手动添加地址。按接下来图示操作,点击确定即可。
注意看:指针在地址栏显示的是 p-> 地址
这种类型的
我们将数值改成5000
,再点击前面的锁定,激活让其永久生效。
然后点击教程中的“改变指针”按钮,下一步按钮亮起,这关就可以过了。
补充:
并不是所有的游戏都要找基址然后做指针,有的游戏直接就是基址;
基址是绿色的,如果找到最后有多个绿色地址,在一般情况下选择第1个。
代码注入
我们还是老规矩,先找出血量的地址。
在地址处点击右键,选择“找出是什么改写了这个地址”
点击教程中的“打我”,会出现这样一行代码,>>00427B13 - sub dword ptr [ebx+000004A4 ],01
。这条指令的作用是,将血量地址中的数据减1
,sub
为减法的汇编格式。
我们接下来的操作需要将减一改为加二。选择反汇编程序,如下步骤。
点击工具,选择自动汇编。
点击模板,选择CT
表框架代码。
点击模板,选择代码注入。
跳转到一个代码注入模板窗口,选择默认地址即可。
点击OK
,即可自动生成如下代码,找到关键一行代码。
将代码sub dword ptr [ebx+000004A4],01
改为add dword ptr [ebx+000004A4],02
即可。
然后我们就可以看见地址栏有如下一行脚本。
点击教程中的“打我”按钮,可以看到“下一步”的按钮亮起,即可成功到下一关。
多级指针
这一关可以看作是第六关的加强版,老规矩,我们先找血量地址。右键,点击“找出是什么改写了这个地址”。
回到教程中点击“改变数值”,查看汇编指令的详细信息。
ESI+ 18 =018C0B90
就是血量的地址,偏移地址为18
。也就是说。想找到血量的地址就要找到ESI
,注意看了图中一行字:要查找地址的指针数值可能值是 018C0B78
。
查找一级指针:我们接下来找ESI
,按下图操作找出ESI
地址。
在地址处点击右键,选择“找出是什么访问了这个地址”。
点击教程中的“改变数值”按钮,会发现出现两条指令。
左边一条是关于CPU
的,我们重点关注第二条指令。
这条指令中,我们可以将偏移地址默认为0
。我们发现指针数值上一次提示的一样。CE
默认使用硬件断点的方式,断点只能停在指令执行之后,而这条指令正好是把 ESI原来指向的地址中的值再赋值给 ESI
,所以执行之后 ESI
的值已经是被覆盖掉的值了,而我们想知道的恰恰是执行这条指令之前的 ESI
值,ESI
就是这个我们监视的地址,所以直接搜索这个地址即可。
将得出的新地址,右键选择“找出是什么访问了这个地址”。
二级偏移是 0
,下一个目标是 0169B5E0
。
查找二级指针:接下来使用查找一级指针的方法
三级级偏移是 14
,下一个目标是 0195C1C0
查找三级指针:继续搜索动态地址
查找四级指针,直至找出基地址
这些地址,除基地址外,都是随机变动的。
在CE
中显示绿色的地址是基址,黑色的是动态地址。如果有多个绿色地址,一般情况下我们选择第一个。
我们已经找到了所有地址,串一下就是:006566E0+C+0=14+18
,最后添加指针并测试。
最后锁定数值为5000
,点击“改变指针”按钮,会提示你需要在3
秒内将数值改为5000
。3
秒内将数值改为5000
,即下一步按钮亮起,本关通过。
查找共享代码
首先我们老规矩,找出四个人物的血量地址。
我们可以分别在每个动态地址上面,右键选择“找出是什么改写了这个地址”,会发现这四个地址都指向了同一条汇编代码,这也就说明了使用了共享代码。
我们在每一个任人物对应的地址右键,选择“浏览相关内存区域”,对比四个地址找到规律。
我方队伍:
对手队伍:
上面的四个图片可以看出,名字的开头字母来决定,如果是D
或E
开头,则说明是队友不能让其掉血,否则的话则直接执行扣血代码。或者每个人血量后+C
可以明显分出是敌是友,为1
就是友军,为2
就是敌军。
接下来我们开始注入代码。
模板 -> 代码注入
加入这三行代码:
cmp [ebx+10],2
jne originalcode //不是2,就是友军,正常扣血吧
mov eax,0 //是敌军,直接秒杀
执行以后,点击重启游戏并自动执行,即可看到下一步按钮亮起,即本关通过。
Cheat Enginee(CE)修改器详细教程相关推荐
- 使用Cheat Enginee(CE)修改“植物大战僵尸”子弹类型
使用Cheat Enginee(CE)修改"植物大战僵尸"子弹类型 单击查看内存 右键转到地址,输入4672a5 点击确定 自动汇编该语句,注入CT表框架代码,代码注入,分配到当前 ...
- 【网安】工具篇:CE修改器详细使用指南(必看)
Cheat Enginee(CE)的详细使用指南 文章目录 Cheat Enginee(CE)的详细使用指南 1 下载和安装说明 1.1下载地址 1.2安装教程 1.2.1网站下载 1.2.2解压压缩 ...
- CE修改器使用教程 (基础知识)扫雷逆向复现
Cheat Engine 一般简称CE,是一个开放源代码的游戏修改软件,其功能包括,内存扫描.十六进制编辑器.调试工具,Cheat Engine 自身附带了辅助制作工具,可以用它直接生成窗体工具,CE ...
- CE修改器-CE修改器下载
Cheat Engine又称CE修改器是一款内存修改编辑工具.你可以通过ce修改器(Cheat Engine)软件来修改游戏中的内存数据.人物属性.金币数值等等,功能强大企且操作简单,可以为你带来良好 ...
- Cheat Enginee(CE)的详细使用指南~包含下载安装教程以及核心功能讲解
Cheat Enginee(CE)的详细使用指南 Cheat Enginee(CE)的下载以及安装 首先:搜索并且进入官网,点击DownLoad按钮 选择下载路径:(根据自己计算机的实际情况进行下载) ...
- 内存修改 android免root,真正免root的Cheat Engine修改器详细使用教程
Cheat Engine修改器的功能 开源的内存修改工具 ,它允许你修改游戏或软件内存数据,以达到各种非常规目的,通过ce修改器(Cheat Engine)软件来修改游戏中的内存数据.人物属性.金币数 ...
- ce修改器怎么用 ce修改器使用基础教程
这篇文章是教大家CE修改器的使用方法,教程简单易学,有需要的小伙伴就赶紧和小编一起来学习一下吧. 我们先下载并打开,下载地址:点击前往 然后打开隐藏.隐藏CE修改器 接着进入您玩的游戏 这时我们进游戏 ...
- 【CE入门教程】使用Cheat Engine(CE)修改游戏“植物大战僵尸”之植物篇
目录 1.单卡片无CD 1.1 思路一 1.2 思路二 2.全卡片无CD 3.豌豆射手射速修改(修改植物射速) 4.实现豌豆射手发射"玉米加农炮"(思路) 上一期教程中,我们学习了 ...
- Cheat Enginee(CE)的保姆级详细使用指南~(下载安装与汉化+核心功能介绍)
目录 一.下载与安装说明 1.下载与安装 2.汉化 二.核心功能详细说明 主界面基本介绍 1.扫描并打开进程 2.扫描类型 (1)精确数值扫描 (2)值大于- (3)值小于- (4)值介于-两者之间 ...
- 【CE入门教程】使用Cheat Engine(CE)修改游戏“植物大战僵尸”之僵尸篇
目录 1.寻找僵尸位置基址 2.实现"秒杀"僵尸(修改僵尸血量) 上一期教程中,我们学习了修改植物大战僵尸的单卡片无CD.全卡片无CD.豌豆射手射速修改以及实现豌豆射手发射&quo ...
最新文章
- ajax php加载列表实例,jQuery+PHP+ajax实现加载更多内容列表
- TDI Filter 过滤驱动
- FreeCodeCamp学习之数组查找去重
- vue router-link 添加点击事件
- SpringBoot实现国际化
- 在职场,进行管理的基本思维顺序
- GL中如何让画的点为圆形
- jsp连接sqlServer数据库教程、jsp连接sqlServer数据库报ClassNotFoundException异常
- 什么是基本包装类型?
- 0-50A集成式霍尔电流传感器应用案例分享
- IDEA 代码分屏编辑对比: split vertically
- [BZOJ5109][LOJ #6252][P4061][CodePlus 2017 11月赛]大吉大利,今晚吃鸡!(最短路+拓扑排序+传递闭包+map+bitset(hash+压位))...
- 《21天学通HTML+CSS+JavaScript Web开发(第7版)》——2.8 作业
- Javascript正则表达式表示固定开头和结尾的字符串
- U盘安装 windows server 2012 R2 启动U盘制作
- Win10笔记本用雷电3接口外接显卡加速tensorflow深度学习步骤
- rono在oracle的作用_Ronopterin (VAS203) 在中重度创伤性脑损伤患者中的疗效 (NOSTRA III 期试验): 一项验证性、安慰剂对照、随机、双盲、多中心研究。...
- fiddler https 抓包
- 华为防火墙配置基于源地址的策略路由
- 清除C盘系统垃圾和缓存的批处理bat文件
热门文章
- 基于能量采集的认知无线电功率分配
- access tempvars 宏_Access数据库实用教程(第2版)第7章宏.ppt
- webassembly环境搭建、编译h265解码器、js调用
- 计算机信息技术身边的具体应用案例,信息技术案例分析..doc
- 系统调用 操作系统课程设计 Linux内核编译 centos Ubuntu
- C# 网络爬虫 抓取“北京标准时间“ 网页请求
- 台式计算机找不到无线连接,台式机如何连接wifi_台式机找不到无线网络
- windows 下安装redis
- 蚂蚁算法matlab
- 俄罗斯方块Python