CheatEngine基本操作

第1关

打开进程即可。

第2关:精确值扫描

初始血量为100,数值查找100,扫描类型选择精确数值,数值类型最好为4字节或2字节,点击“首次扫描”,左侧出现若干地址及数值。点击目标进程的“打我”后血量变95,将右侧100改为95,点击“再次扫描”,左侧只剩下一个地址,双击移动到下侧,再在下侧双击或选中回车改变为1000,“下一步”按钮激活。

第3关:未知初始值&减少的数值

点击“新的扫描”。本关只知道血条,不知道具体数值。

第一次扫描时扫描类型选择“未知的初始值”,然后“首次扫描”。点击“打我”,扫描类型选择“减少的数值”,然后“再次扫描”,左侧筛选出一些地址,重复这个操作,直到左侧数量不再减少。从左侧列表找一个看起来正常的值,修改为5000即可。

第4关:单/双精度

“健康”和“弹药”值分别为单浮点和双浮点,都要求改为5000。

对于“健康”,数值类型选择“单浮点”,对于“弹药”,数值类型选择“双浮点”。扫描类型都选“精确数值”。

第5关:代码查找

下方数值的保存地址一直在变,无法正常锁定该地址。首先先第一次锁定该地址,然后F6右键“找出是什么改写了这个地址”,再点击“改变数值”,窗口会弹出一条汇编指令,右键或“替换”替换为nop,点击“停止”来停止代码修改。

第6关:指针

先利用“改变数值”搜索地址,F6后查看“详细信息”,代码如下:

1
mov [edx],eax

复制edx寄存器所保存的地址,主页选中“十六进制”后扫描该地址值,找到地址为“Tutorial-i386.exe+2566B0”。主页选择“手动添加地址”,“Address”填edx的值,指针第二个输入框填“Tutorial-i386.exe+2566B0”,“确定”后“激活”该地址,然后“改变数值”、“改变指针”即可。

第7关:代码注入

搜索地址并F6,再“打我”后“显示反汇编程序”,看到eip指向代码:

1
sub dword ptr [rsi+00000780],01

Ctrl+A启动“自动汇编”后,Ctrl+I进行代码注入,在originalcode段后添加:

1
add dword ptr [rsi+00000780],03

“执行”后做到按一次按钮加2。

第8关:多级指针

题目说了一共4级。

先搜索数值,找到第一层地址。F6记录汇编指令后找到猜测的指针地址,并搜索,找到第二层地址。第二层地址F5找到汇编指令和猜测的指针地址,发现第二层并未变化,就直接搜第二层的地址,找到第三层地址。F5找汇编指令,找猜测的指针地址并搜索,找到第四层指针。第四层指针也经过同样的操作,发现来自固定地址,该地址即为基址。主页“手动添加地址”,选择指针,填基址,自下而上偏移分别填C、14、0、18。

调用链如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
01902948
004286FE - 89 46 18 - mov [esi+18],eax

018D7A98
004286C0 - 8B 36 - mov esi,[esi]

01902624
0042867C - 8B 76 14 - mov esi,[esi+14]

01902610
00428638 - 8B 76 0C - mov esi,[esi+0C]

0198D898->006566E0

第9关:注入++

挖坑待填。