一.基础知识
1.计算机时如何运行游戏的
(1)CPU的本质
CPU ——> 逻辑电路 ——> 逻辑运算 ——> 只能做简单的事情
(2) CPU的工作方式
(3)数据和指令编码
数据的编码:1101= 1x8 + 1x4 + 0x2 + 1x1=13
指令的编码:11 01 00 0110 = add A B 存储到C
如何区分数据和指令:靠上下文信息判断编码含义
二.CheatEngine通关
1.选择进程
通过点击一个类似于电脑显示屏的按钮来选择自己调试的程序(xxx.exe).
2.精确值扫描(已知初始值)
(1)将当前生命值输入到数值中
(2)扫描类型=精确扫描
数值类型=4字节
(3)点击首次扫描,会发现很多地址
(4)然后改变生命值,将改变后的生命值输入到数值中,点击再次扫描
(5)重复上一步,直到只剩下一个地址,这个地址就是生命值的地址
3.未知的初始值与减少的数值
从上一次扫描中退出要点新的扫描
(1)扫描类型=未知初始值
(2)点击首次扫描,会发现很多地址
(3)然后减少生命值,扫描类型=减少的数值,点击再次扫描
(4)重复上一步,直到只剩下一个地址
4.单精度与双精度
这么做是为了给菜鸟制造一些麻烦,让他们没那么容易修改游戏
(1)选择精确扫描或者未知初始值
(2)数据类型=单浮点/双浮点
(3)然后减少生命值,扫描类型=减少的数值,点击再次扫描
(4)重复上一步,直到只剩下一个地址
5.代码查找
某些游戏开始的时候,数据会存储在与上次不同的地方,甚至游戏过程中数据的位置也会改变
(1)首先要找到这个数值当前的存储地址
(2)右键地址,点击找出是什么改写了这个地址
(3)改变数值,然后窗口内会弹出一些汇编代码
(4)选中代码,点击replace,替换为什么也不做的代码(nop)
(5)这样当程序读到它的时候,将什么也不做
6.指针
(1)找到数值的存储地址,点击找出是什么改写了这个地址
(2)改变数值,就可以看到汇编代码,点击详情信息会告诉你指令运行发生了什么,rdx就是取地址里的内容
(3)使用十六进制去搜索该数值的存储地址,发现有变绿色的,点击手动添加地址,将激活打X就是锁定,该指针锁定的话,数值和指针都不会改变
7.代码注入
将代码注入到目标进程中并执行它的技巧
(1)首先找到数值的存储地址,点击找出是什么改写了这个地址
(2)改变数值,找到改变数值的那条汇编代码,选择反汇编程序
(3)sub是减少的操作码,所以减少生命值的命令就在这里
(4)工具->Auto Assemble->Template,然后添加add的汇编指令即可
8.多级指针
在6中,你已经清楚1级指针的概念和用途,并可以利用数值的首个地址来找到存放数据真正的基址。在本关中,你将看到4级指针,它由一个第一个指针指向第二个指针,再由第二个指针指向第三个指针,由第三个指针指向第四个指针,最终指向健康值的真正地址。
9.注入++之共享代码
解释如何处理游戏中的共用代码, 这种代码是通用在除了自己以外的其他同类型对象上
(1)在改变数值进行精确搜索,但没有结果,可能是因为数值类型并不是默认的"4字节",而是浮点型