阅读目录
数据分析工具Cheat Engine的准备
发布于:2016-5-17 17:04 | 153677次阅读 作者: 管理员 | 原作者: TP | 来自: 原创
一、工具介绍Cheat Engine,简称CE,是由Eric Heijnen(网名“Dark Byte”)开发的一款开源软件,主要功能包括存储器扫描,十六进制编辑,指令反汇编,内存数据修改等功能,是一款强大的游戏修改器。Cheat Engine是最常见的游戏外挂工具,通过Cheat Engine,用户可以快速查找和修改游戏数据及更改游戏处理逻辑。 二、工具特色最新版本的Cheat Engine支持Windows XP/7/8,玩家可以通过特定的游戏操作,配合Cheat Engine多次查找游戏内存数据,定位游戏中人物基址,血量,金钱,时间,弹药量,杀伤力等数据的内存地址,并修改相关数据,达到作弊的目的。 Cheat Engine 还可以将代码注入到目标进程中,并通过启动远程线程等方式执行恶意代码。 三、工具安装下载Cheat Engine后运行,一直点击next直到安装完成即可,安装程序运行界面如图3-1所示: 图3-1 Cheat Engine安装界面 四、Cheat Engine 查找修改特定值Cheat Engine 运行后,界面如图3-2所示: 图3-2 Cheat Engine运行界面 运行位于Cheat Engine目录下的Tutorial-i386.exe,点击底部的Next按钮,进入整数查找功能,界面如图3-3所示: 图3-3 Tutorial运行界面 我们的目标是改变Health的值为1000,切回到CE,点击CE界面上左上角第一个图标,打开进程列表,选择Tutorial-i386.exe,如图3-4所示: 图3-4 选择目标进程 打开目标进程后,在右边Value框输入Tutorial-i386.exe中显示的100,Scan Type选择Exact Value,点击New Scan,搜索内存中所有保存100的内存地址,搜索结果如图3-5所示,可以看到进程中有很多值为100的地址。 图3-5 搜索值为100的内存地址 现在切回Tutorial-i386.exe的进程界面,点击中间的Hit me按钮,Health的值变成95,如图3-6所示: 图3-6 点击Hit me后Health值变化 现在切换到CE,在Value框输入95,点击Next Scan,可以看到左侧只搜索到一个地址,这个地址就是我们需要修改的Health值,如图3-7所示: 图3-7 点击Next Scan后搜索到的Health值 接下来我们可以修改Health的值,将95改成1000,达到预期的目的。在图3-6左边显示的“00267850”双击,将该地址添加到CE下方的面板中,在下方地址的Value项双击,在弹出的输入框里填入1000并确认。如图3-8所示: 图3-8 修改Health值 此时Turtorial的Next按钮已经是可用状态,修改成功。 五、Cheat Engine 查找修改未知值上例要修改的值是已知的(初始值为100),有时候我们并不知道某个数据的初始值,这个时候要用到CE的未知值查找功能。 重新打开Tutorial-i386.exe,点击右下角的OK按钮,点击Skip进入到Step3,未知初始值修改测试界面。如图3-9所示: 图3-9 未知初始值修改测试界面 切换到CE,点击左上角第一个图标,从进程列表中找到Tutorial-i386.exe并打开,在右边的Scan Type中下拉选择”Value between...”,在Value框中输入0和500,如图3-10所示:
图3-10 CE查找未知数值 点击Turtorial中的Hit me,程序底部显示-9,在CE右边面板Scan Type中下拉选择”Decrease value by...”,Value框中填入9,点击Next Scan,如此反复点击Turtorial的Hit me,然后切回到CE Value框填写减少的值,点击Next Scan,直至左边的地址只剩一个,该地址为目标地址,如图3-11所示: 图3-11 CE查找未知数值
六、Cheat Engine查找浮点数前面查找的数值都是整数,游戏中很多数值以浮点数的形式存在,包括float(单精度浮点数)和double(双精度浮点数两种),打开Tutorial,连续点击Skip跳到Step 4,如图3-12所示: 图3-12 Tutorial 浮点数测试 切换到CE打开Tutorial,Scan Type选择Float,value输入100,点击First Scan,结果如图3-13所示: 图3-13 CE float型浮点数查找 切换到Tutorial,点击Hit me,Health值变成96.83,结果如图3-14所示:
图3-14 Tutorial 浮点数测试 此时CE已经成功识别出float型Health的内存位置,如图3-15所示: 图3-15 CE float型浮点数查找 图3-15中左边地址栏第一项红色地址为要查找的数据地址,我们将之修改即可,double型浮点数的查找与修改与float型类似,不再赘述。 七、Cheat Engine指针查找打开Tutorial,连续点击Skip,跳到Step,如图3-16所示: 图3-16 Tutorial 指针测试 利用3.3.5查找整数的方法,找到该值的地址,如图3-17所示: 图3-17 CE指针测试 在CE下方面板,右击改地址,选择”Find out what writes to this address”,CE将弹出提示框称会附加到Tutorial进行调试,点击确认。点击Tutorial的”Change value”按钮,CE将自动定位到对该数据进行写操作的指令,如图3-18所示: 图3-18 查找对内存地址进行写操作的指令 在图3-18中点击该指令,再点击More Information,CE将显示出执行该指令的详细信息,如图3-19所示,可疑的内存地址值为002F7CE8,也就是寄存器EDX的值。 图3-19 修改内存指令信息 切换到CE,在Value框输入002F7CE8,勾选Hex选项,搜索一下,可以发现CE找到了唯一的一个地址,双击改地址添加到下方的地址栏。如图3-20所示: 图3-20 CE查找指针
从图3-20可以看出地址0x634530的值为0x2F7CE8,地址0x2F7CE8的值为226,翻译成C语言就是int *p = 0x2F7CE8,*p = 226,而指针p本身的地址为0x634530。知道了映射关系,可以在CE中将其设置为指针类型。如图3-21所示: 图3-21 CE设置指针 此时切换到Tutorial,点击Change pointer,然后双击新加的指针Value项,输入5000并确认,Tutorial的Next选项变成可用状态,修改成功。如图3-21所示: 图3-21 CE改指针
八、Cheat Engine 注入代码 运行Tutorial并跳到Step 7,利用前面的方法找到写目标内存地址的指令,如图3-22所示: 图3-21 查找写目标地址的指令 点击图3-21的Show disassembler按钮,在弹出的反汇编窗口点击Tools->Auto Assemble,在新窗口中点击Template->Code injection,在弹出的窗口填写目标地址0x0042521D,也就是”sub dword ptr [ebx+00000478],01”这项指令的地址,如图3-22所示: 图3-22 代码注入窗口 从图3-22可以看出,原始的代码是”sub dword ptr [ebx+00000478],01”,也就是对ebx + 0x478处的地址的内容减一,我们在newmem处写入我们自己的代码”add dword ptr [ebx+00000478],01”,点击Execute按钮并确认,如图3-23所示: 图3-23 注入代码 此时点击Tutorial的Hit me按钮,数值将不再减少,因为我们在原始的减一操作前添加了加一的操作,导致数值不会发生变化。 九、工具下载链接 下载地址:http://www.cheatengine.org/downloads.php |

最新评论
发表评论