前言
CE有个自带的教程,包括精确扫描、未知初始值、浮点数、代码查找、指针、代码注入、多级指针、共享代码,本篇记录下
一、简介
Cheat Engine ,简称CE,是逆向工程师常用的几大神器之一,也是游戏汉化、破解以及外挂编写中常用的工具,其功能包括:
- 内存扫描
- 十六进制编辑器
- 调试工具
- 可以进行反汇编调试、断点跟踪、代码注入等诸多高级功能
- 支持 lua 语言,可以实现自己定义的逻辑功能,而不仅仅是简单的锁定数据。也可以在代码注入的同时注入 lua 插件,使游戏进程与 CE 进程进行交互。 CE 的大部分功能都可以通过 lua 来操作
- 它还支持 D3D Hook 功能,可以在游戏中显示十字准星,也可以绘制功能菜单,同时也可以对 D3D 的调用栈进行跟踪调试
- 自带变速功能,通过 Hook 游戏相关函数改变游戏速度
- 自带了一个 Trainer 的功能,可以将自己在 CE 中实现的功能单独生成一个 exe 文件,并可以使用 lua 创建比默认样式更加复杂的窗体或功能
下载:建议到吾爱破解下
二、教程
开始教程

打开进程

1、精确值扫描

简单流程:
- 精确扫描100
- “打我”
- 精确扫描新的数值
- 重复直到只有一个地址并修改值为1000


2、未知初始值

流程:
- 未知搜索
- “打我”
- “减少的数值”
- 重复直到只有一个地址并修改值为5000





3、浮点数

流程:类似精确值扫描,改为浮点数即可



4、代码查找

流程:
- 用上面的办法找到地址
- 右键“找出是什么改写了这个地址”
- 指令改为空


替换为空即可
5、指针

流程:
- 找到地址
- 查看“是什么改写了地址”
- 查看“详细信息”
- 搜索指针地址并修改值为5000






6、代码注入

流程:
- 找到地址
- 找到代码
- 反汇编
- 根据要求修改




几个解释
alloc(newmem,2048) // 申请 2048 字节的内存,newmem 就是这个内存地址
label(returnhere) // 定义用于跳转的标签 returnhere
label(originalcode) // 定义用于跳转的标签 originalcode
label(exit) // 定义用于跳转的标签 exit
修改如下:

7、多级指针

流程:
- 找到地址
- 找到指针
- 不断找指针
- 修改值


注意这里有个偏移量18

然后“是什么访问了地址”


这里提示的地址和上一次提示的地址是一样的
研究下:
mov esi,[esi]这条指令访问了这个地址- 那么
[esi]原来是啥?原来的esi不就是这个我们监视的地址





找到基址了!!
此时,真正的内存地址是
[[[["Tutorial-i386.exe"+2566E0]+0C]+14]+00]+18


到此即可
其实CE自身是有搜索指针的功能的,就不用上面这样一步一步来
8、共享代码

流程:
- 找出4个血量地址
- 查找代码
- 区分敌我
- 修改代码

浏览内存




发现有个队伍编号1和2
区分出敌我,那就简单了
进行代码注入

分析:
- 原始代码是
mov [ebx+04],eax,意思就是,血量处于ebx+04的位置 - 再看 Dave 的血量地址和队伍编号地址,两者做个差值(16进制减法,可以用计算器算),应该是
0C,如果血量是ebx+04,那么队伍编号就应该是ebx+04+0C就是ebx+10了 - 我们需要在运行原来代码之前判断一下 [ebx+10] 是否等于 1
修改如下:


完结撒花!
结语
学会使用CE的基本功能
本文详细介绍了CheatEngine的使用教程,包括精确值扫描、未知初始值搜索、浮点数处理、代码查找与注入、指针操作、多级指针以及共享代码的运用。通过实例演示,帮助读者掌握逆向工程和游戏调试的核心技巧。
2万+

被折叠的 条评论
为什么被折叠?



