文章目录

  • 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没告诉我减少了多少或者我们根本没看清,这时应该怎么办呢?

  1. 扫描减少的数值: 下拉框,选择减少了的数值,按再次扫描【此时血量减少了】
  2. 扫描不变的数值: 拉框,然后选择未变动的数值【此时血量没有变化】

  1. 反复操作: 再回到Tutorial ,点击 打我 => 扫描减少了的数值 => 扫描没变动的数值 反复操作,最后就会只剩4个地址
  2. 判断: 简单判断下(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。这条指令的作用是,将血量地址中的数据减1sub为减法的汇编格式。

我们接下来的操作需要将减一改为加二。选择反汇编程序,如下步骤。


点击工具,选择自动汇编。

点击模板,选择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秒内将数值改为50003秒内将数值改为5000,即下一步按钮亮起,本关通过。

查找共享代码

首先我们老规矩,找出四个人物的血量地址。


我们可以分别在每个动态地址上面,右键选择“找出是什么改写了这个地址”,会发现这四个地址都指向了同一条汇编代码,这也就说明了使用了共享代码。


我们在每一个任人物对应的地址右键,选择“浏览相关内存区域”,对比四个地址找到规律。
我方队伍:


对手队伍:


上面的四个图片可以看出,名字的开头字母来决定,如果是DE开头,则说明是队友不能让其掉血,否则的话则直接执行扣血代码。或者每个人血量后+C可以明显分出是敌是友,为1就是友军,为2就是敌军。
接下来我们开始注入代码。


模板 -> 代码注入


加入这三行代码:

cmp [ebx+10],2
jne originalcode  //不是2,就是友军,正常扣血吧
mov eax,0 //是敌军,直接秒杀


执行以后,点击重启游戏并自动执行,即可看到下一步按钮亮起,即本关通过。

Cheat Enginee(CE)修改器详细教程相关推荐

  1. 使用Cheat Enginee(CE)修改“植物大战僵尸”子弹类型

    使用Cheat Enginee(CE)修改"植物大战僵尸"子弹类型 单击查看内存 右键转到地址,输入4672a5 点击确定 自动汇编该语句,注入CT表框架代码,代码注入,分配到当前 ...

  2. 【网安】工具篇:CE修改器详细使用指南(必看)

    Cheat Enginee(CE)的详细使用指南 文章目录 Cheat Enginee(CE)的详细使用指南 1 下载和安装说明 1.1下载地址 1.2安装教程 1.2.1网站下载 1.2.2解压压缩 ...

  3. CE修改器使用教程 (基础知识)扫雷逆向复现

    Cheat Engine 一般简称CE,是一个开放源代码的游戏修改软件,其功能包括,内存扫描.十六进制编辑器.调试工具,Cheat Engine 自身附带了辅助制作工具,可以用它直接生成窗体工具,CE ...

  4. CE修改器-CE修改器下载

    Cheat Engine又称CE修改器是一款内存修改编辑工具.你可以通过ce修改器(Cheat Engine)软件来修改游戏中的内存数据.人物属性.金币数值等等,功能强大企且操作简单,可以为你带来良好 ...

  5. Cheat Enginee(CE)的详细使用指南~包含下载安装教程以及核心功能讲解

    Cheat Enginee(CE)的详细使用指南 Cheat Enginee(CE)的下载以及安装 首先:搜索并且进入官网,点击DownLoad按钮 选择下载路径:(根据自己计算机的实际情况进行下载) ...

  6. 内存修改 android免root,真正免root的Cheat Engine修改器详细使用教程

    Cheat Engine修改器的功能 开源的内存修改工具 ,它允许你修改游戏或软件内存数据,以达到各种非常规目的,通过ce修改器(Cheat Engine)软件来修改游戏中的内存数据.人物属性.金币数 ...

  7. ce修改器怎么用 ce修改器使用基础教程

    这篇文章是教大家CE修改器的使用方法,教程简单易学,有需要的小伙伴就赶紧和小编一起来学习一下吧. 我们先下载并打开,下载地址:点击前往 然后打开隐藏.隐藏CE修改器 接着进入您玩的游戏 这时我们进游戏 ...

  8. 【CE入门教程】使用Cheat Engine(CE)修改游戏“植物大战僵尸”之植物篇

    目录 1.单卡片无CD 1.1 思路一 1.2 思路二 2.全卡片无CD 3.豌豆射手射速修改(修改植物射速) 4.实现豌豆射手发射"玉米加农炮"(思路) 上一期教程中,我们学习了 ...

  9. Cheat Enginee(CE)的保姆级详细使用指南~(下载安装与汉化+核心功能介绍)

    目录 一.下载与安装说明 1.下载与安装 2.汉化 二.核心功能详细说明 主界面基本介绍 1.扫描并打开进程 2.扫描类型 (1)精确数值扫描 (2)值大于- (3)值小于- (4)值介于-两者之间 ...

  10. 【CE入门教程】使用Cheat Engine(CE)修改游戏“植物大战僵尸”之僵尸篇

    目录 1.寻找僵尸位置基址 2.实现"秒杀"僵尸(修改僵尸血量) 上一期教程中,我们学习了修改植物大战僵尸的单卡片无CD.全卡片无CD.豌豆射手射速修改以及实现豌豆射手发射&quo ...

最新文章

  1. ajax php加载列表实例,jQuery+PHP+ajax实现加载更多内容列表
  2. TDI Filter 过滤驱动
  3. FreeCodeCamp学习之数组查找去重
  4. vue router-link 添加点击事件
  5. SpringBoot实现国际化
  6. 在职场,进行管理的基本思维顺序
  7. GL中如何让画的点为圆形
  8. jsp连接sqlServer数据库教程、jsp连接sqlServer数据库报ClassNotFoundException异常
  9. 什么是基本包装类型?
  10. 0-50A集成式霍尔电流传感器应用案例分享
  11. IDEA 代码分屏编辑对比: split vertically
  12. [BZOJ5109][LOJ #6252][P4061][CodePlus 2017 11月赛]大吉大利,今晚吃鸡!(最短路+拓扑排序+传递闭包+map+bitset(hash+压位))...
  13. 《21天学通HTML+CSS+JavaScript Web开发(第7版)》——2.8 作业
  14. Javascript正则表达式表示固定开头和结尾的字符串
  15. U盘安装 windows server 2012 R2 启动U盘制作
  16. Win10笔记本用雷电3接口外接显卡加速tensorflow深度学习步骤
  17. rono在oracle的作用_Ronopterin (VAS203) 在中重度创伤性脑损伤患者中的疗效 (NOSTRA III 期试验): 一项验证性、安慰剂对照、随机、双盲、多中心研究。...
  18. fiddler https 抓包
  19. 华为防火墙配置基于源地址的策略路由
  20. 清除C盘系统垃圾和缓存的批处理bat文件

热门文章

  1. 基于能量采集的认知无线电功率分配
  2. access tempvars 宏_Access数据库实用教程(第2版)第7章宏.ppt
  3. webassembly环境搭建、编译h265解码器、js调用
  4. 计算机信息技术身边的具体应用案例,信息技术案例分析..doc
  5. 系统调用 操作系统课程设计 Linux内核编译 centos Ubuntu
  6. C# 网络爬虫 抓取“北京标准时间“ 网页请求
  7. 台式计算机找不到无线连接,台式机如何连接wifi_台式机找不到无线网络
  8. windows 下安装redis
  9. 蚂蚁算法matlab
  10. 俄罗斯方块Python