请选择 进入手机版 | 继续访问电脑版
设为首页收藏本站

新模拟器共享论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

1 2

最近看过此主题的会员

查看: 7150|回复: 9

wettuy兄写的三篇Cheat Engine教程

  [复制链接]

签到天数: 3 天

[LV.2]偶尔看看I

评论头像

发表于 2009-12-24 19:26:32 | 显示全部楼层 |阅读模式
本帖最后由 e5200 于 2009-12-24 21:07 编辑


今天我要介绍的是wettuy兄,他也是一个低调帝。是不是技术帝都是低调帝呢?

欢迎转帖,但是出于对wettuy兄的敬意,敬请原文转帖。ENJOY Cheat Engine

      说起来真是缘分,认识wettuy兄也是几个小时前的事情。缘起今天我又去置顶区翻老帖子考古,哈哈哈。无意间点中一条链接飞去了一个博客......这就是wettuy兄的博客。在那里我发现了宝藏哦:那里有三篇wettuy兄所写的CE教程。还发现了一个 真 相 :原来wettuy兄是汉化CE的第一人。
      后来回来论坛里看我自己昨天发的帖子并回复跟帖网友的提问,无意间发现“wettuy”这个用户名怎么在我的帖子上方的帖子出现呢?(那是94940兄的帖子,又是一个技术帝,低调帝,以后我也要介绍的)我赶紧发短信PM这个用户是不是wettuy兄,果然他就是wettuy兄......缘分,就这样妙不可言。
      怀着对技术帝的敬意,在征求得wettuy兄的首肯后,本人诚意把这三篇wettuy兄所写的CE教程分享转帖出来饕餮各位同好。

PS.
Q.如果有人问,网络上不是已经有CBC写的CE的教程了吗?为什么我还要转帖,还要隆重其事?
A.我想说,偏偏这就是我执着的原因:可以把CE教程写得 有 图 有 真 相 的只有wettuy兄的了,可以在言语之间不揶揄别人的智商不足于修改游戏的只有wettuy兄的了。



使用Cheat Engine制作自己的游戏专用修改器

发表于 2008年03月09日

原文在 wettuy's blog (http://www.luoshen.cn/blog/pc/202.html

    Cheat Engine是一款非常强大的游戏修改器,甚至包括了内存的反汇编。不过他使用起来却很简单,即使你完全不懂编程,也可以用他做很多的修改。本文以命令与 征服3 1.09为例,简单的介绍一下CE的强大。所用的修改器是我自己汉化的Cheat Engine 5.3^_^

    首先,开修改器,进游戏开始修改,这太简单了就不细说了。此时我们已经找到了游戏中钱的地址。不过要注意的是,C&C3的主程序是cnc3game.dat,而非你运行的cnc3.exe


    双击搜索到的两个地址中的第一个,他会被自动添加到地址栏中。然后在地址栏中右击他,选择“Find out what writes to this address”(寻找是什么在写入此地址)。然后出现这个对话框

    什么都不改,直接回游戏,建个电厂,然后出来,一般就能找到一个唯一的代码了,如图

    现在我们已经知道是什么代码在让我们掉钱了。点击替换,把它改成nop(当然你也可以改成add,这样他就只增不减了^_^)

    点击更多信息,可以看到这里已经成功修改了

    回到游戏,看到了吗,我们成功了,此时钱已经不会减少了


    不过此时还没有结束,因为我们下一步要开始制作专用修改器。回到CE的主界面,点击最下面的高级选项,这里可以看到我们修改的代码。点击上面的保存按钮


    当然是创建新的修改器了


    在制作修改器的窗口中选择添加,加入刚刚我们修改过的代码


    然后对修改器的其他部分做一些修改,注意一定不要忘记选择进程

    至此,我们的修改器就全部完成了


    怎么样,是不是很简单啊,这里我们完全没有用到任何编程的知识,更没有用到指针,就已经完成了一个专用修改器了,当然这主要是因为C&C3的地址比较容易,如果他每次都会变的话,就需要使用指针才能找到代码了。不过,那就是下次的事情了^_^



Cheat Engine 高级应用——指针修改

发表于 2008年12月13日

原文在 wettuy's blog (http://www.luoshen.cn/blog/pc/580.html

    早就打算写个关于指针修改的文章了,只是一直没找到合适的范例游戏。前段时间不小心修改了下红警3,发现这个游戏确实太适合拿来用做修改的演示了,呵呵。
    说起来,指针确实是一个非常恐怖的东西。首先,到底什么是指针呢?以下是引用自维基百科的解释:在信息工程中指针是一个用来指示一个内存地址的计算机语言的变量或中央处理器(CPU)中的寄存器(Register)。指针一般出现在比较近机器语言的语言,如汇编语言或C语言。面向对象语言如Java一般避免用指针,而是引用。指针一般指向一个函数或一个变量。在使用一个指针时,一个程序既可以直接使用这个指针所储存的内存地址,又可以使用这个地址里储存的变量或函数的值。
    提起指针,就不得不让人想到了CE的教程里那个十分可怕的最终章里,那个指向指针的指针的指针的指针,也就是传说中的4级指针,*****无比。不过好在一般游戏中几乎是不会看到这么过分的东西出现的。说起来,CE的那个教程Cheat Engine Tutorial是十分棒的东西,如果你对于修改还有什么不明白的地方的话,建议先去试试那个东西,会很有帮助的。
    那么,现在就让我们来看看指针修改在实际游戏中的具体应用吧。就以红警3为例。

    首先当然是祭出我们的CE大神了。嘛,虽然我自己有做过汉化的版本,不过实际上一般修改仍然喜欢使用英文版的,嘿嘿。

    进游戏

    很容易就找到了钱的地址。请注意,红警3可能会找出很多个不同的地址,其中有些地址是无效的,如果你最终出现了什么问题,有可能就是这里选择错了地址。没有什么特别好的办法,只能一个一个试。现在我们添加钱的地址,然后老办法选择Find out what writes to this address,查找是什么在写入该地址,然后回游戏接着造点东西。

    同样是很同意就找到了唯一的一个操作码,双击该操作码打开扩展信息窗口。这个窗口中的信息十分有用,请注意红字标出来的操作码,mov [esi+04], eax。这就是该我们钱的操作码,而 [  ] 中的就是指针,也就是真正的钱所在的地方。
    现在我们就开始寻找这个指针。在这个窗口下面找到ESI的值:056951D8,然后回主窗口(扩展信息窗口可以先不关闭),点开一个新的搜索,勾上HEX,然后搜索这个ESI的值,一般就能找到一个唯一的地址。

    找到以后不要着急双击。点击地址列表上面的“手动添加地址”,然后在弹出的窗口中勾上“Pointer”也就是指针。现在可以在地址栏里填入刚才扫描出来的地址了,05065c38。注意,还记得刚才的扩展信息窗口吗,里面指针的地址实际上是esi+04,也就是说,我们还需要在地址后面加上+04的偏移量。

    添加以后,看到数值了吗?指针的值和我们刚才搜索到的钱的值是一样的,这就对了。

    现在你可以随便对他下手了。

    至此修改完成。



CE教程之自动汇编

发表于 2009年06月23日

原文在 wettuy's blog (http://www.luoshen.cn/blog/games/868.html#more-868

    Cheat Engine最强大的地方,莫过于他的内存反汇编功能了,这给我们提供了无限的可能。那么,什么是汇编呢?引用来自互动百科的内容——汇编程序把汇编语言翻译成机器语言的过程称为汇编。汇编语合中用助记符(Memoni)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。于是汇编语言亦称为符号语言。用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理的系统软件。
    简单来解释就是,在不考虑组译器的情况下(实际上修改游戏的话也不需要关注这个),可以理解为,我们的CPU在处理程序时所用的低级机器语言就是汇编。
    很不幸的是,汇编不愧为低级语言,学习起来极其复杂,我周围连能够看懂汇编的人都寥寥无几,更不要说会用的人了。还好我们并不需要用汇编来写程序,只需要把最常用的几个命令了解即可。所以我的汇编水平也是非常之烂,恐怕还有无数的错误,只能勉强应付一下常用的反汇编修改了。那么我就现学现卖一次好了^_^。
    这一次,我们的目标是最近很火热的小游戏《植物大战僵尸》。

    进入开始游戏,准备开始修改。

    召唤出我们的CE。改钱的步骤太简单了,就不再浪费时间。现在我们已经找到了太阳币的地址,点右键,选择寻找写入这个地址的地址。

    回游戏,点个太阳加点钱,然后回来,果然他已经找到了操作码。双击打开额外信息对话框,这里实际上我们可以看到非常多有用的内容,比如说关于太阳币的指针是[eax+00005560]。关于指针修改的内容之前已经讲过了,所以这里不再重复。
不过要注意的话,直接搜索eax的数值,会出来很多个地址,令人难以确定。所以我们可以稍微往上看一行,“mov eax, [esi+04]”这一段操作码,可以看到实际上esi里的地址就是真正的eax,添加指针的时候只要输入10455E40+5560即可。

    好了,回正题。

    我们右键打开详细的内存区域,来看一下之前找到的那段操作码。好,现在开始准备对他进行自动汇编。点击菜单栏的工具-自动汇编(或者按快捷键Ctrl+A)。


    在弹出的对话框中点击模板-脚本注入。现在就会生成图中的内容。add [eax+00005560],ecx就是我刚才点击了一个太阳加钱时的操作码,意思是,给指针[eax+00005560]增加数值ecx。

    现在我们简单的修改一下,改成 add [eax+00005560],500。点击执行,提示注入成功。
    要注意的是,在这里所有的数值都是16进制的,也就是说500h换算为十进制,实际上是1280。

    现在再回游戏点一下太阳,怎么样,钱不是增加了1280。
    当然,自动汇编还可以有很多好玩的用处,比如说每造一个向日葵就自动增加50个太阳币之类,只要再原来的地址下面新增一行即可。我懒得继续写下去了,有兴趣可以自行尝试。

评分

1

查看全部评分

回复

使用道具 举报

签到天数: 3 天

[LV.2]偶尔看看I

评论头像

发表于 2009-12-24 19:27:07 | 显示全部楼层

此帖禁止灌水,杀无赦!
回复 支持 反对

使用道具 举报

签到天数: 3 天

[LV.2]偶尔看看I

评论头像

发表于 2009-12-25 01:21:38 | 显示全部楼层
回复 2# e5200





今天圣诞节,我从昨天CRACK到今天,刚发现CE有圣诞节快乐祝福彩蛋哦,真让人心里舒服。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

签到天数: 1053 天

[LV.10]以坛为家III

评论头像

发表于 2009-12-25 13:46:35 | 显示全部楼层
別美化我,我只是一個只懂點皮毛的小菜鳥。
回复 支持 反对

使用道具 举报

签到天数: 3 天

[LV.2]偶尔看看I

评论头像

发表于 2009-12-25 14:35:45 | 显示全部楼层
94940兄是小菜鸟,我是羽毛级的了。
回复 支持 反对

使用道具 举报

签到天数: 4 天

[LV.2]偶尔看看I

评论头像

发表于 2009-12-27 20:32:27 | 显示全部楼层
小月,厉害厉害啊。呵呵!
回复 支持 反对

使用道具 举报

该用户从未签到

评论头像

发表于 2010-1-16 23:56:02 | 显示全部楼层
我有一个问题。对于隐藏了的数据。如:分数显示的是2000.可内存里存的不一定是2000这个数值。可能是200显示的时候再乘以10.那应该怎么去找勒????
回复 支持 反对

使用道具 举报

签到天数: 3 天

[LV.2]偶尔看看I

评论头像

发表于 2010-1-17 00:52:34 | 显示全部楼层
不知道。
回复 支持 反对

使用道具 举报

该用户从未签到

评论头像

发表于 2010-1-17 16:21:32 | 显示全部楼层
不知道。
e5200 发表于 2010-1-17 00:52



我惆怅呀.....真没办法找么
回复 支持 反对

使用道具 举报

该用户从未签到

评论头像

发表于 2010-2-23 00:04:26 | 显示全部楼层
不错,希望本站越办越好
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

新模拟器共享论坛X

翻译WIKI大量成长力和金钱奖励!

访问http://wiki.nesbbs.com,翻译词条到论坛指定区,每一个完成翻译并有采纳的,有成长力等奖励哟...

点击查看详情 

QQ|申请友链|小黑屋|手机版|Archiver|新模拟器共享网 ( 辽ICP备09001055号|繁體中文   

GMT+8, 2020-8-10 00:27 , Processed in 0.093600 second(s), 49 queries , XCache On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表