热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CE游戏修改器制作游戏修改器傻瓜教程

CE游戏修改器制作游戏修改器图解教程傻瓜教程目标是:注重操作,不求深入,主要是为了培养各位的兴趣和带你迅速入门。先简单介绍下什么叫CE,CE的全称是CheatEngine,最新的版本是5.6.1(作

CE游戏修改器制作游戏修改器图解教程

傻瓜教程目标是:注重操作,不求深入,主要是为了培养各位的兴趣和带你迅速入门。

先简单介绍下什么叫CE,CE的全称是Cheat Engine,最新的版本是5.6.1(作者是 Dark Byte)

CE是目前最优秀的游戏修改器,不是之一,这个工具绝对值得你去学习(只要花一点时间就够了)。

忘记金山游侠,GM8,FPE之类的修改工具的吧,CE会让你爱不释手。

一、先下载CE 5.6.1,这个汉化版相当不错哦(不需要安装),推荐各位下载使用。

下载地址:http://www.9upk.com/soft/15796.html

二、打开CE目录下的2个文件:



三、附加进程(图示):




操作到此就结束了。这个教程就是如此简单,下一关同样如此。

(就像玩游戏一样,完全是闯关试的操作,请各位按照顺序,一关一关的走)



按下一步进入教程第二关,需要扫描的精确数值是100


现在开始搜索精确数值 100 数值中输入 100 点击 首次扫描 按钮


一般游戏就是4字节,这里不需要改动,默认就好。
这次扫描我们得到 59 个结果,里面肯定有我们要找的那个血值,不过好像太多了。


关键一步:回到 Tutorial 点击 打我 按钮,此时血值已有变化了:


我们再输入 96 点击 再次扫描 按钮 结果只剩1个(这就是我们要找的),我们双击此地址将其添加到地址栏:


只有1个结果了,这个就是我们要找的内存地址,双击将其加入到地址栏


图示操作:


把 95 改成 1000 点击 确定 按钮


此时教程的 下一步 按钮变成可用


闯关成功。

操作虽然简单,但是大家需要明白这其实是一个筛选的过程,这样操作就能把地址找出来。

本关的小技巧:

1、双击下图对应位置可快速更改数值。



2、双击地址可快速将其加入到地址栏


第3关的密码是 419482
这一关很重要,因为某些游戏中血显示的不是数字而是血条,这样的话教程2中的方法就失效了。
本关就你要教会你如何修改这些讨厌的未知数


此时点击 新扫描 然后选择 未知初始数值


点击 首次扫描 然后出现了肯定是N多的结果,因为太多了,CE没有显示出来。
老办法,回到 Tutorial ,点击打我  ,CE会告诉你血量减了多少,比如-1
这里面我们换个思路,假设CE没告诉我减少了多少或者我根本没看清,这时应该怎么办呢?注意看下面的操作

一、扫描减少的数值

下拉框,选择减少了的数值,按再次扫描(此时血量减少了)



二、扫描不变的数值

然后选择 没变动的数值(此时血量没有变化)



三、反复操作

再回到Tutorial ,点击 打我 => 扫描减少了的数值 => 扫描没变动的数值 反复操作,最后就会只剩14个地址

四、简单判断

简单判断下(Tutorial中告诉你了这个数值是小于500的),很容易就找到了最终的地址。



双击把地址加到地址栏,然后更改数值为5000,就可以过关了(前面教程有说过,这里就不再重复了)闯关成功。

大家一定要明白这样操作的思路:

血量减少=>CE搜索减少的数值
血量不变=>CE搜索不变的数值
血量增加=>CE搜索增加的数值


这样反复筛减,就能很容易找到最终的结果。




第4关的密码是 890124
这一关的操作和前面和基本相同,主要是介绍一下什么浮点数:
浮点数就是带小数点的数字

如何扫描呢:
1、首先将数值类型改成 浮点数。
2、浮点数扫描时不必输入后的小数 94.444 扫描时输入94就可以了
其它的操作和前面的基本相同。



大家也注意到了(上图),浮点数也分为2种:
1、浮点数 也叫单精度浮点数 英文是Single Float
2、双浮点数 也叫双精度浮点数 英文是Double Float

这里面要强调的是:
浮点数的长度是4字节,使用4字节也可搜索到浮点数,但需要使用模糊搜索。
下图:


双浮点数的长度是8字节,使用8字节也可搜索到浮点数,但需要使用模糊搜索

小技巧:
1、双击图中红圈处可快速更改数值类型。


2、浮点数在4字节中大多以11开头。


现在好多游戏都采用浮点数来处理,比如疯狂农场中的时间。例如您在扫描游戏时发现一个数值是 1120403456 这时候您就要想到它是浮点数。
4字节的 1120403456 = 浮点数的 100
目前的游戏大多以4字节(含浮点数)为主,双浮点数大家知道就行了。

将 血 和 子弹 都改成 5000 就可进入下一关,操作和第二关基本相同。
 

前面的教程已经教会你内存的基本搜索方法。本关有点特别:

本关的目的就是要让改变数值的按钮失效,很神奇,但是有什么用呢?

1、在游戏中我们可以利用此功能使金钱数量不会发生变化。
2、可以利用此功能让怪物攻击失效,从而实现无敌的效果。
3、让弹药不会减少,从而实现无限弹药的效果

好处太多了,本关的方法就可以轻松实现上面的功能。

先找到血量的内存地址,不会找的先去看前面几关,这里就不重复了,然后 在地址上 右键=>找出是什么改写了这个地址:


点击确定


弹出一个小窗口


然后点击教程中的 改变数值 按钮


小窗口中会出现一行代码,选中代码,然后点击替换


最后一步:直接按确定就可以


然后回到 按改变数值的按钮,你会发现按钮已经没有用了。本关操作已经结束了

操作非常简单,但是为什么这样就会使按钮的功能失效:


改变数值按钮其实是通过 代码 0045aecb - 89 10 - mov [eax],edx 来实现数值改变的。
我们在的最后一步操作就是要把这行代码替换成什么也不做(英文是 Nop),这样就会让按钮的功能失效。


大家可以找一些小的游戏改一改,试试这种方法究竟好不好使。
 

这一关是相当重要的一关,请各位务必要学会找指针的方法。

为什么要找指针,在前面的教程中,如果各位细心观察的话就会发现 在我截图中的出现地址和你的地址并不相同。
也就是说,这些地址是一直在变化的,我们把它叫做动态地址

问题:电脑是如何每次都知道这个动态地址究竟是多少的?

其实并不是所有的地址都会变化的,不会变化的地址,我们把它叫做基址

实现思路:用不变的地址定位会变化的地址,即用基址定位动态地址。

上面介绍了2个简单的概念,现在开始我们的具体操作 

首先找到血量的地址,加入到地址栏,然后在地址上按 右键=>找出是什么改写了这个地址,然后点击 改变数值 按钮,出现一行代码(见第五关),双击那行代码(或者点击详细信息)



然后出现一个信息框,具体的代码是什么意思就不解释了,CE会告诉你下一步该做什么,图:



CE让我们下一步找 01da6d48(在你电脑显示可能不是这个地址,因为它是动态地址),继续操作:

回到CE,点击新扫描,先勾上HEX,点击首次扫描



一定要勾上HEX,否则CE在搜索16进制字母时会报错。

搜索结果出来了:



这个地址 460c34 显示的是 绿色 的,你的电脑上也应该是这个地址,因为它就是基址。

记住:在CE中显示绿色的地址是基址,黑色的地址是动态地址

添加指针:


点击 手动添加地址



图示操作,输入 460c34 然后点击确定



注意看:指针在地址栏显示的是 p-> 地址 这种类型的



我们将数值改成5000,再点击前面的锁定



然后点击 Tutorial 中的 改变指针 按钮,这关就可以过了。



注意

前面一个概念没有说明,添加指针的时候出现,就是偏移,这个指针的偏移就是 0。



也有不是0的情况,大家可以对着教程实战一下:

1、查找红警的金钱:http://bbs.52miji.com/thread-1456-1-1.html
2、植物大战僵尸阳光的查找:http://bbs.52miji.com/thread-1210-1-1.html

这一关相当重要,大家一定要多多练习(学会前六关,你已经可以修改大部分的游戏了)

小说明:

1、并不是所有的游戏都要找基址然后做指针,有的游戏直接就是基址,比如这个教程:http://bbs.52miji.com/thread-2622-1-1.html

2、基址是绿色的,如果找到最后有多个绿色地址,在一般情况下选择第1个。

最后介绍下CE中的模块地址:

双击基址



您会发现显示的竟然是 Tutorial.exe+60C34 而不是 00460c34 这是为什么呢?



其实 Tutorial.exe+60C34 就等于 00460c34 

一般来说游戏在电脑中申请的地址是从00400000开始的,Tutorial.exe代表的就是 00400000 然后加上 60c34 自然就等于 00460c34。

但是在某些情况下游戏的起始地址并不是从00400000开始的,或者说每次启动申请的地址都不相同;那么就不能用 00460c34 来添加指针了,真正科学添加指针的方法是:

从本关开始,各位会初步接触到CE的反汇编功能,这也是CE最强大的功能之一。在第6关的时候我们说到指针的找法,用基址定位动态地址。但这一关不用指针也可以进行修改,即使对方是动态地址,且功能更加强大。

看看教程让我们做什么:原来每按一次按钮减少1点血,改成每按一次按钮增加2点血。
还记得第5关的不伤血的修改方法吗?这一关就是第5关的加强版。

查找血量的地址,然后再地址上 右键=> 查找写入的地址



然后按一下打我按钮,会出现一行汇编代码 0045a063 - ff 8b 10 03 00 00 - dec [ebx+00000310]



双击那行代码,看下详细信息:



这行代码什么意思呢?dec 大家都知道是英文减少的意思

图示红框处:EBX=01e0ee18

我们用计算器算一下(注意是16进制的)

01e0ee18 + 310 = 01E0F128 正好是血量的地址。

dec [ebx+00000310] = dec [01E0F128] 够清楚了吧,这就是让血量减1的代码(1省略了),其实CE中也有提示 Decrement by 1 。

明白了这行代码的意思,我们回去看看Tutorial的要求:把减1改成加2。

继续操作。选择反汇编程序



点击工具,选择自动汇编



第一步选择作弊框架代码



第二步选择代码注入



对应的地址不要搞错了,是0045A063



然后按确定,会自动生成汇编代码,这些代码是什么意思,我们先不管,找到关键的一行:dec [ebx+00000310]


把代码注释掉(删除也行),改成 add [ebx+00000310],2



保存即可,然后在地址栏就可以看到这个脚本了,点击前面的 单选框 执行,然后点击Tutorial中的打我,这关就可以过了。



你感觉到他的神奇了吗?逆天级的修改:

1、怪物每次打我从伤血变成加血。
2、子弹越打越多。
3、钱越花越多。

如果你学会了这一关,你已经脱离菜鸟的行列了,不要再提金山游侠,FPE,GM8之类的修改工具了,告诉你们的朋友快来学习CE吧。

最后,再强调一下CE中的模块地址:

在第6关的后面有提到过CE的模块地址,我说过这是科学的添加方法。这一关也同样适用,就是在代码注入的时候。


0045A063 变成了 Tutorial.exe+5A063 


注入的时候也应该是



小技巧:

这种方法并不是百试百灵的,对于某些变态的游戏可能并不好使。如何判断这种方法是否有效呢?很简单:
在上面选中 显示模块地址 后,如果 0045A063 变成了 Tutorial.exe+5A063 说明这种方法好使。反之如果 0045A063 还是 0045A063 则说明这种方法失效了。至于为什么,你以后会明白。

当然CE也有解决的方法,有兴趣的话,大家可以学习下大象教程4中的 Aobscan。

学会此关,您已经可以对付绝大部分的游戏了。但这仅仅开始,CE比您想像中的还要强大。
 

这关是第6关的加强版,CE 5.6.1教程中的4级指针比5.4的要简单些。

多级指针就像玩解谜游戏一样,谜团不只一个,盒子中还有盒子。这里面是4级指针,游戏中也有比如8级指针,12级指针等等,思路都是一样的。

查找一级指针:

找到血量地址 01E13B3C (动态地址),然后右键 => 查找写入


然后点击改变 数值按钮 



出现代码的详细信息。


这个该怎么看呢?EBX = 01E13B24 

EBX + 18 = 01E13B3C 就是血量的地址,也就是说。想找到血量的地址就要找到EBX(01E13B24 ),注意看了图中一行字:

要查找地址的指针的可能值是 01E13B24 

如果您觉得分析太麻烦,就按CE的建议来,这里面要提醒各位注意 可能 这个词,也就是说不一定全对。

第6关也提到过偏移的概念。这里面的一级偏移是 18

查找二级指针:


下面找EBX,勾上HEX(16进制),输入 01E13B24 新扫描。

然后把新地址 01E136D4 添加到地址栏,在地址上右键=>选择 查找访问的地址。

一定要注意:这里面和上面的操作不同,第一次是查找写入的地址,这次选择的是查找访问的地址。


如果没有出现代码信息。我们就到 Tutorial 中点击一下 改变数值 按钮



这里分析和上面一样的,直接看CE的建议就好了。二级偏移是 0

查找三级指针:


再搜索 01E136D4 得到 01E12414

在地址01E12414上 右键=>选择 查找访问的地址

如果没有出现代码信息。我们就到 Tutorial 中点击一下 改变数值 按钮


三级偏移是 14 

查找四级指针:


重复操作(和前面一样,该找什么CE会告诉你的)


4级偏移是 c

再查找 1e12f64 得到一个绿色地址,这就是最终结果了。



一定要记住:在CE中显示绿色的地址是基址,黑色的是动态地址。如果有多个绿色地址,一般情况下我们选择第一个。

最后添加指针


点击手动添加地址 


如下操作


输入基址和偏移:


这样输入才完全对(第6关和第7关有提到模块地址的概念):


然后把数值改成5000,点击前面的锁定,再点击 Tutorial 改变指针按钮,这关就可以过了。

多级指针要注意的地方:

1、1级指针是 查找写入,其余全是 查找访问。

2、绿色的地址是基址,黑色是动态地址。


3、添加指针时注意用模块地址。

指针是由基址在偏移组成的,所以在教程中我们只要找到4个偏移和1个基址就可以了。
 

上一教程中我们找到红警金钱的基址是 A35DB4 偏移是 24C

图标,选择 高级选项


图示选择



默认即可



图示:


选择添加



按图示操作


增加热键



改图标 + 生成修改器




最终生成的修改器

 


推荐阅读
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • 本文分析了Wince程序内存和存储内存的分布及作用。Wince内存包括系统内存、对象存储和程序内存,其中系统内存占用了一部分SDRAM,而剩下的30M为程序内存和存储内存。对象存储是嵌入式wince操作系统中的一个新概念,常用于消费电子设备中。此外,文章还介绍了主电源和后备电池在操作系统中的作用。 ... [详细]
  • Monkey《大话移动——Android与iOS应用测试指南》的预购信息发布啦!
    Monkey《大话移动——Android与iOS应用测试指南》的预购信息已经发布,可以在京东和当当网进行预购。感谢几位大牛给出的书评,并呼吁大家的支持。明天京东的链接也将发布。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • WebSocket与Socket.io的理解
    WebSocketprotocol是HTML5一种新的协议。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送 ... [详细]
  • 怎么在PHP项目中实现一个HTTP断点续传功能发布时间:2021-01-1916:26:06来源:亿速云阅读:96作者:Le ... [详细]
  • Java中包装类的设计原因以及操作方法
    本文主要介绍了Java中设计包装类的原因以及操作方法。在Java中,除了对象类型,还有八大基本类型,为了将基本类型转换成对象,Java引入了包装类。文章通过介绍包装类的定义和实现,解答了为什么需要包装类的问题,并提供了简单易用的操作方法。通过本文的学习,读者可以更好地理解和应用Java中的包装类。 ... [详细]
  • 图像因存在错误而无法显示 ... [详细]
  • 本文介绍了互联网思维中的三个段子,涵盖了餐饮行业、淘品牌和创业企业的案例。通过这些案例,探讨了互联网思维的九大分类和十九条法则。其中包括雕爷牛腩餐厅的成功经验,三只松鼠淘品牌的包装策略以及一家创业企业的销售额增长情况。这些案例展示了互联网思维在不同领域的应用和成功之道。 ... [详细]
  • Spring框架《一》简介
    Spring框架《一》1.Spring概述1.1简介1.2Spring模板二、IOC容器和Bean1.IOC和DI简介2.三种通过类型获取bean3.给bean的属性赋值3.1依赖 ... [详细]
author-avatar
ian
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有