WPE|52wpe|我爱WPE

 找回密码
 注册会员
搜索
  • 3332查看
  • 25回复

[转贴] CE入门教程

主题

好友

376

积分

中级会员

发表于 2010-1-25 02:35:17 |显示全部楼层
这贴是我看过鬼瞳的帖子之后到G上搜的!

               这贴的内容我还没怎么看
先就把它拿来给大家学习下!


                  希望对大家有点帮助,,
好坏别怪我,我说了!自己还没怎么看

原贴作者CCB

CHEAT ENGINE(以下简称CE)是我见过的最优秀的游戏作弊工具。它的优点多不胜数,虽然单独从搜索游戏里面的数值来说,它并不比其他同类软件强多少,但它 不仅仅是个游戏修改工具,它还有其他游戏修改软件所没有的一些特点,例如:它有强大的反汇编功能,这个是别的游戏工具中几乎没有的;还有,它本身就自带了 外挂制作工具,可以直接由它生成外挂。而它的界面非常简洁朴素,这也是我喜欢它的原因之一。同类软件中,我觉得TSEARCH可以和它媲美,但 TSEARCH的界面比较混乱,操作过于复杂,所以我个人并不喜欢TSEARCH。

在这个教程里面,你不会看到任何图片,因为我觉得我能用纯文字教你使用CE,如果你觉得没有图片就一定学不会,我想你没必要看下去了,因为我没空做图片,并且我觉得文字已经足够表达,没必要用多余的图片。

好了,废话少说,进入正题吧。

其实,使用CE的基本步骤,可以简单到一句话:

1. 运行CE->2.运行游戏->3.在CE中指定要修改的游戏->4.首次搜索一个数值->5.回游戏中让这个数值增加或减少- >6.回CE按数值增减的情况再次搜索->7.重复5和6直到得到一个或很少的几个结果->8.在这几个结果中判断哪一个是真正的结 果。

而下面的这个教程,就是要对上面说的这些步骤进行详细的解释,然后再用一个具体的例子来让大家真正掌握CE的用法。

当 然,要用一个具体的例子来讲解CE的用法,需要一个游戏,以这个游戏的修改来讲解。不过,如果真正的用一个游戏来做例子,那么大家也得找到我用的游戏,就 算找得到,还有可能要安装,确实比较麻烦。幸好,CE本身带了一个TUTORIAL,就是教程的意思,不过这个TUTORIAL,本身也是一个程序,它是 作者为了让使用的人进行练习而编写的,它不但会一步一步地教你怎么用CE,而且它本身也和游戏差不多,除了没有游戏的画面。如果你能使用CE按这个 TUTORIAL的要求对它进行修改,我想你也应该能用CE对真正的游戏进行修改了。

OK,LET'S GO!

CE操作入门

一,如果你还没安装CE,那么开始这一切之前,当然是把它安装上,CE的安装也和其他的软件一样,很简单,没必要再罗嗦。安装后,在开始菜单上会有CE的程序组,而在桌面上会有CE的快捷方式。

二, 安装好之后,就可以运行CE了,运行后,会看到CE的主界面。其实CE的主界面真的非常非常简单,简单到不能再简单了,以至于我本来想给它做汉化,结果看 到它的主界面上的英语单词少得可怜,根本不需要汉化。如果你连这几个单词都没办法或者不想去弄懂,我想,你的智商应该不足以用来修改游戏,那么赶快把CE 删了吧,这不是你玩的东西。

三,现在我来描述一下CE的主界面,并且解释上面的各个部分的功能和简单的用法介绍,至于使用上的具体细节,请看后面的实例。

在CE主窗口的标题栏下面,左上方有三个按钮。

第 一个按钮,是指定进程的按钮。在刚运行CE,还没指定所要修改的进程时,它的外框会不停地闪动,这个是作者提醒你,使用CE要做的第一件事,就是指定一个 进程(什么叫进程?简单地说,就是你系统当前正在运行的程序)。这样CE才知道你要修改的是正在运行的程序中的哪一个。点击之后,会出来一个新窗口,窗口 的标题是Process List,就是当前在你的系统上运行的所有进程的列表。这个窗口的下方,还有几个按钮,你暂时不用管(一个好的学习方法,就是在接触一个新的东西的时候, 先弄懂那些非知道不可的东西,然后再更细致地学习,当然最后是要什么都知道。就是说要分主次先后来学。如果一开始就去注重很多暂时不需要知道的细节,结果 反而会忽略了最需要先弄懂的东西,这样的学习方法就不好了)。在这里可以找到并选择你要修改的游戏,然后点OK按钮,或者简单地就双击要修改的进程。

左上方另外的两个按钮,图标就象其他的软件一样,一个是打开的文件夹,这个是用来打开以前保存的CE的地址列表(*.CT)的打开按钮,另一个是一张软盘的图标,这个是把地址列表保存下来的。

在 这三个按钮的右边,上面是一行英文,下面是一个进度条,上面的英文,当CE还没选择要修改的进程时,它会显示“No Process Selected”,表示你还没选择进程,如果已经选择了一个进程,那么它会显示你选择的进程的ID和进程名,进程ID是一个由8个十六进制代码组成的标 识号,后面的进程名就是你所选择的程序,即游戏的名称。而下面进度条,是当你在进行扫描的时候,显示当前的进度。

然后,在左上角三个按钮的下方,有个英文FOUND后面有个数字,这个是表示找到的结果的数目,当还没开始扫描或最后的扫描结果是0时,显示FOUND:0。如果某次扫描时,找到的结果很多,也暂时不会显示,但在这里可以看到目前为止找到的结果数量是多少。

在 主窗口中间的左边,是一个扫描结果的地址列表,一般找到的结果少于某个数(默认的设置是少于50个)时,找到的结果会全部显示在这个列表中,而如果目前找 到的结果多于设置的数量时就暂时不显示。这个列表有两个栏,Address是内存地址,而Value是该地址当前的数值。地址当然是十六进制表示的,而数 值是十进制的。

在 主窗口中间的右边,是CE的扫描部分,上面是三个按钮,First Scan,Next Scan和Undo Scan。下面是一个输入数值的地方Value,再下来,是选择扫描方式的Scan Type,选择数据类型的Value Type,再下面是设置内存扫描选项的Memory Scan Options,这里一般不需要修改,暂时不用管它。还有右边有个Enable Speedhack的选项,这个也先不管。第一次扫描时选择好扫描类型,输入好数值后点First Scan,这是开始一个全新的扫描,当数值变化之后输入新的数值再点Next Scan直到找到正确的内存地址。扫描后First Scan会变成New Scan,如果想开始一个新的扫描,点New Scan之后会清除以前扫描的结果,并且释放上次扫描所占用的内存,这样你就能重新开始。而有时当你在扫描中间选错了而影响了结果,可以点Undo Scan,这样会清除掉最后一次你做的选择,并把结果恢复到前一次扫描时的状态。

在 主窗口的下方,又是一个地址列表,这个和上面那个不一样,上面那个是CE扫描的临时结果,而下方的这个,是你选择了的地址。它有五个栏,Frozen是对 地址进行锁定用的,Description是对该地址的注释,Address是地址,Type是数值的类型,Value是该地址的数值。

在主窗口的中间,有一个斜向右下的红箭头的按钮,这个用于从左边的地址列表中把地址移到下方的地址列表的。你可以在左边列表中选择一个或多个地址,然后按这个按钮把它们移到下方的地址列表中。当然,你双击左边的地址列表,也能把它移动到下方的列表中。

在中间还有另一个红色停止符号的按钮,这个是清除下方地址列表中所有的地址的。

最 后,在下方地址列表的左上和右上,各有一个按钮。左边的一个是Memory View,这个是CE最有用的按钮之一,它是用来查看和修改内存的,而它的功能还不仅仅是查看和修改内存,CE的最有用的一个功能——反汇编,也是在这个 里面,不过暂时不想详细介绍这个按钮里面的功能,你知道它是做什么的就行了。右边的一个Add address manually,这个是用于手工向下方的地址列表添加地址的,如果你以前找到过某个地址,知道具体的地址,可以不用扫描,手工把地址加上。

CE的主界面基本就是这些,其实你用一秒钟就能看清楚,我却要打字打了半天:)
其实到现在为止,你还没真正掌握CE的使用,当然了,如果你会了,我就不用再继续写下去了,我早就去睡觉了。不要紧,下面结合实例来说明,你会真正掌握CE的使用的。

CE使用实例:

现在,我们来开始一步一步学习CE的使用吧,通过完成CE带的那个TUTORIAL,按它的要求一步一步做完,如果你做得到,你就基本上算是掌握了CE的用法了。

CE带的TUTORIAL,是英文的,不过没关系,我在教你使用CE来完成这个TUTORIAL的同时,会把TUTORIAL上面的所有英文都翻译出来让你看明白,所以不用怕。

CE 带的这个TUTORIAL,是CE作者做的用来让你练习的一个程序,它里面也和游戏一样,在每一个步骤都会有一些类似血(HEALTH)或子弹数量的东 西,并且你点了上面某个按钮之后,这些数值也会象游戏中一样减少,这样让你象是修改游戏一样,去找到它的地址,并按TUTORIAL上面的要求修改,当你 按它的要求做到了,才让你做下一步。而在第一步时那个输入密码的地方,不是说这个TUTORIAL要输入密码才能运行,而是有时你需要从中间某一步开始 时,输入相应的密码会直接从某一步开始,而不用每一次都从第一步开始的。而你每完成一步之后,它也会给你相应的密码。

好了,也许你等不及了,那么我们现在就开始吧。

主题

好友

376

积分

中级会员

发表于 2010-1-25 02:36:38 |显示全部楼层
第一步:

先 在开始菜单上找到CE的程序组,找里面的“Cheat Engine Tutorial”(以下简称TUT),点击运行。这个时候就出来这个TUT的对话框,上面一大段英文,而Next这个按钮是灰的,为什么呢?让我翻译一 下上面的英文吧,你就明白。TUT上面的英文的译文,我会用【】号把它们括起来。

【欢迎你来到CE的教程(V2.4)
这个教程试图解释在游戏中作弊的基本步骤,并让你更熟悉CE的使用。

首先运行CE,如果你还没运行的话(CCB:因为还没运行,所以Next按钮才是灰色的:)。
然后点击"open process"按钮(在左上角那个有电脑图标的那个)

当进程列表窗口打开后,找到这个教程,进程的名字应该是“tutorial.exe”,除非你把它改名了。选择它,并点击OK。现在先不要管其他所有的按钮,如果你喜欢,以后再研究它们。

当这一切都做对了之后,进程选择窗口将会消失并且在CE上方会显示进程名。

现在,点击NEXT按钮继续到下一个步骤(或者输入密码而进到你想去的其他步骤)。


好了,上面的这些英文,我翻译过来了,所以这一步应该不需要我再补充什么,看这些译文应该能明白怎么做,就是开TUT,开CE(哪个先开都没关系),然后点击CE左上的那个选择进程的按钮,选择这个TUT的进程,这样就可以点NEXT进到下一步了。

第二步:

【第二步:精确数值扫描(密码:090453)
现在你已经在CE中打开了TUT,让我们进入到下一步吧。

你看到在这个窗口的下方的文字Health:XXX
每次你点击"Hit me"(打我)时,你的Health(血)会减少。

要进到下一个步骤,你必须找到这个数值并把它改为1000

要找到这个数值,有几个不同的方法,但我会告诉你一个最简单的,'Exact Value(精确数值扫描)':
首 先确认数值类型设置为2字节或4字节,1字节也可以的,但当你最后在修改它时你会遇到麻烦(虽然很容易解决)(CCB:大家不会忘了吧?1字节表示的最大 数值是255,而这里要你改为1000,所以虽然用1字节能找到,但要改却要连前一字节一起改,所以有点麻烦,不过不是大麻烦)。8字节可能也可以,如果 这个地址后面是0的话,不过我不敢打赌。Single, Double, 以及其他的扫描方式不行,因为它们储存数值的方式不同。

当数值类型设置正确后,确认扫描方式设置在'Exact Value'
把血的数值填在数值输入框上,并点击'First Scan(首次扫描)'
过一会儿(如果你有一个非常慢的电脑的话)扫描完成并且扫描的结果会显示在左边(如果找到的地址的数量少于设置的数值的话)。

如果你找到多于一个地址而你不知道哪一个是正确的地址的话,点击TUT上的'Hit me',并把新的血的数值填到数值输入框,并点'Next Scan(再次扫描)'
重复这些步骤直到你确认你已经找到它的地址了(在地址列表上只有一个地址)

现在双击左边列表上的地址,这样会让这个地址移动到下方的列表上并显示它的当前数值。
双击(下方列表的)数值栏(或者选择它,并按回车),并把它修改为1000。

如果一切都OK,NEXT按钮将会变成可点击的了,你就准备好了进入下一步了。】

这 一步,也不用我再补充什么了,这个TUT已经说得很清楚,这是使用CE的最基本功能,即找到数值,如果扫描结果太多,试图改变数值然后再次扫描,直到结果 剩下很少或者1个为止,这样你就找到了要修改的数值的地址,并且也就能修改它了。到这一步,你已经能对付很简单的游戏了,不过现在的大多数游戏都没这么简 单,但至少你已经学到最基本的一步,就是精确数值的扫描和修改了。现在就点击NEXT进入下一步吧!
第三步:

【第三步:未知初始数值(密码:419482)
OK,看来你已经理解了怎样使用精确数值扫描找到一个数值了,让我们进入下一步吧。

在上一步中我们知道初始数值所以我们进行了精确数值扫描,但现在我们有一个进度条,我们不知道它开始时的数值。
我们只知道这个数值是在0到500之间,并且每次你点'Hit me'之后你会减一些血,每次减的血量会显示在进度条的上方。

同样的有好几个方式找这个数值,(例如使用“减少了什么数值”的扫描方式),但我只解释最简单的方式,“Unknown initial value”(未知初始数值)和“Descreased value(减少了的数值)”。
因为你不知道现在它的数值是多少,所以使用精确数值不行了,所以选择扫描方式为"Unknown initial value",同样的,数值类型选择4字节,(大多数WINDOWS应用程序使用4字节数据)
点击'First scan'并等它扫描完成。

当扫描完成后点击'Hit me',你会掉一些血(掉的血量多少会在血条上方显示几秒然后消失,但你不需要这个数值)
现在回到CE,并选择'Decreased Value'(减少了的数值),并点击“Next Scan”
当扫描完成后,再次点击'Hit me',并重复上面的步骤,直到你找到了若干地址。

我们知道这个数值是在0到500之间,所以选择比较象我们要的那个地址是,并把它加到下边的列表。
现在,把它改为5000,才能进到下一步。


这 一步,稍为复杂一点了,这是对那些血条之类的东西的扫描。作者说知道数值是0到500之间,但没说是怎么知道的。我的看法是,这东西一方面靠猜,另一方面 靠试。你也许会说,比如血条或蓝条,上面或下面不是有数字吗?是的,有些有,有些没有,但有时,血条上面有个表示血的数字,说血是548,但你就知道它是 真的按这个值存在内存的吗?不一定的哦,很多游戏的开发者,可能会用某一个方式存真正的血的数值,而用另一个方式显示,例如,最简单的就是,真正的血是你 看到的数值的3倍,例如上面说的548,其实在内存可能是1644,而当它要显示的时候才把1644除以3然后显示出来,所以如果你受这个显示数字的误 导,结果就有可能找不到真正的地址。所以关于那些以长度表示的数值,一般还是靠猜,然后根据猜测来找。还有,CCB友情提醒一下,其实有时在找到的数值比 较多的时候,试试在扫描的过程中,确认数值确实没改变的情况下,多加几次"Unchange"(无变化)扫描,这样可以再减掉一些无关的结果。另外,其实 在这一步,如果你够聪明,每次点了Hit me之后记住血条上面显示的减少的数字,再在CE中输入刚才的数字(负号不要,负号只是表示它是减少的),并选择'Decreased value by',即“减少了什么数值”,这样也能更快地找到准确的地址,但这种方式是在要知道减少了多少这个具体数值才有用。好了,继续下一步吧。

第四步:

【第四步:浮点数(密码:890124)
在前面的教程中,我们使用字节来扫描,但有些游戏使用了叫做“浮点数”的记数方法。
(可能是为了防止简单的内存扫描)
浮点数是带有小数点的一些数字(如5.12或11321.1)

如 下边你看到你的血(Health)和子弹(Ammo)。两者都以浮点数储存,但血是储存为float(浮点数)而子弹是储存为double(双精度浮点 数)(CCB:这是数据类型的术语,float和double都是浮点数,但float为单精度数,而double为双精度数,它们在电脑里面占用的字节 数长度不同,而所能表示的精度也不同,看不懂不要紧,反正知道这是两种不同的浮点数就行)。
点击Hit me可以减少一些血,而点击shoot(CCB:其实是Fire)可以用掉0.5的子弹。

你得把这两者都修改到5000或者更多才能进下一步。

精确数值扫描方式在这一步能工作得很好,但也许你想试试其他的扫描方式。(CCB友情提示:扫描子弹的时候试试'Decreased value by'方式就不错,数值填入0.5,很快就能找到)


这 一步,其实也没什么,只是让你熟悉不同数据类型的扫描。再次提醒一下,其实有时游戏的开发者为了不让你太容易扫描到数值的地址,所以有时故意颠倒黑白,例 如你看到有小数的地方,有时在内存却是用整数来保存,而你明明看到是显示为整数的数值,却有可能在内存中是用小数来保存,所以有时不要轻易地被你看到的东 西误导,特别是在多次搜索不到结果的时候,有时要换换别的方式,不要让狡猾的游戏开发者骗了:)。
第五步:

【代码寻找(密码:888899)
有时一些东西的保存位置在你重新开始游戏时会改变,甚至是在你玩的时候也会变,在这种情况下,你用二件事仍然能做出可以用的内存列表。
在这一步我会描述怎样用寻找代码功能。

下面的数值每次你开始这个TUT的时候会存放在不同的位置,所以一个普通的内存地址列表将会不适用。
首先找到这个数值的内存地址(你能进到这一步,我假设你已经知道怎么做了)
当你找到地址后,右击CE中的这个地址,并选择“Find out what writes to this address”(找到是什么改写这个地址),一个窗口将会出现,上面会有一个空的列表。
然后,点击这个TUT上的'Change value'(改变数值)按钮,回到CE,如果一切都做得对,会看到一个地址和一些汇编代码。
点击这个地址并选择Replace(替换)选项把它替换成什么也不做的代码,这样还会将代码地址加到高级选项窗口上的代码列表(它将会一起保存,如果你保存地址表的话)。

点击Stop,这样游戏(CCB:指这个TUT)将会再次正常地运行下去,并点Close关闭这个窗口。
现在,点击这个TUT上的Change value按钮,如果一切都做对,NEXT按钮将会变成可点击的了。

注:如果你以足够快的速度锁定这个地址,这个NEXT按钮也会变成可见的。
]】

越来越精彩了,现在不但教你找地址,还教你找那条修改这个地址的指令了,虽然,你还不太清楚怎样手工修改找到的地址,但至少也比单纯地找数值的地址并修改和锁定要好一些了,不是吗?别急,更精彩的还在后面呢。
回复

使用道具 举报

主题

好友

376

积分

中级会员

发表于 2010-1-25 02:37:40 |显示全部楼层
第7步 密码=013370

代码注入是一个将一小段代码注入到目标进程中的技巧,然后使这个进程执行你写入的自己的代码。

在这一步教程中,你将有一个生命值和一个按钮,这个按钮每按一次将减少1点生命值。你的任务是使用代码注入来增加这个生命值,使得每按一次按钮增加2点生命值。

开始查找这个地址然后进入“找到写这个地址的东西”。
然后减小生命值,当你已经找到地址后,显示反汇编程序(Show disassembler), 并找到这个地址,然后打开自动汇编窗口(Tools菜单->Auto Assemble)(Ctrl+a)
在tmplate上点击然后再点击Code Injection,并给出减少生命值的地址(如果程序没有正确填写的话)

那样,将产生一个基本的自动汇编程序窗口你可以用于你的代码.

注意alloc, 那将用于为你的代码分配一块内存, 而在Win2000系统之前, 这种行为存在安全隐患,是不安全的(HZH:在Win200以前,对系统内存进行分配及代码查找之类的操作,可能会导致系统崩溃),幸运的是这种情况在win200以后的版本得到改善.

同样,也要注意line newmem语句及原始代码,以及文本"Place your code here",正如你猜测的那样,在这儿写下你每次增加2点生命值的代码.
在这种情况下,一个有用的汇编指令是"ADD".
下面是一些示例:
"ADD [00901234],9" 使[00901234]地址的值增加9
"ADD [ESP+4],9" 使地址指针[ESP+4]的值增加9

注意:
推荐你从原始生成代码中删除减少你生命值的那行代码, 否则你将不得不增加3点生命值(你增加3点,而原始代码减少1点,那样最终结果是增加2点),这样可能会造成混乱.

注意2:
在一些游戏中,原始代码可能存在在多指令之外,并且某些时候(并非一直如此),这可能会发生在其他地方跳转到你的跳转指令结束,那样将引起未知的行为.如果这种情况发生的话,你通常应该查看附近的指令,查看跳转情况并进行修改,或者选择使用一个不同的代码注入开始地址.

最后,点击 Write code.

第八步: 多级指针 (密码=525927)
Step 8: Multilevel pointers: (PW=525927)
................................
这个窗口的下方的数值2025 还有Change value和Change pointer两个按钮。

开始指针扫描,选择CE输入扫描数值,如有看到New Scan先点击它后才输入数值。

Value :2025
Scan type :Exact Value
Value type:4 Bytes

点击First Scan →Found:1 →选择TUT并点击Change value →双击列表上找到的地址将它加入
下方的列表并右击地址,即Address下面(不是数值哦)。在右键菜单选择
“Find out what writes to this address”,这会弹出“The following opcodes ch...."
一个空的列表窗口。选择TUT点击ChangeValue这就会将改变的地址加入空列表中并选择它后点击
Show Disassembler按钮,这会弹出“Memory Viewer”窗口。在窗口列表选择最上面的地址并记住它,
然后点击列表右边滚动条上面的箭头,将地址滚向下面要记住刚才的地址哦,

列如:
5. :00456153 - a1 18 c.. - mov eax,[0045cc18] 这记下0045cc18
4. :00456158 - 8b 40 0c - mov eax,[eax+0c]
3. :0045615B - 8b 40 14 - mov eax,[eax+14]
2. :0045615E - 89 00 - mov eax,[eax]
1. 是最上面的地址 :00456160 - 89 70 18 - mov [eax+18],esi 向下滚动后到这里,
现在要写下这以上的4个地址的数值,这要从下向上数。我将倒数的地如下:
1. :00456160 - 89 70 18 - mov [eax+18],esi 这记下 18
2. :0045615E - 89 00 - mov eax,[eax] 没有+号这记下 0
3. :0045615B - 8b 40 14 - mov eax,[eax+14] 这记下 14
4. :00456158 - 8b 40 0c - mov eax,[eax+0c] 不要0这记下 c

记下了就选择CE然后点击“Add address manually”,这会弹出Add address对话板,
将Pointer旁边的小方格打勾,点击3次Add pointer按钮,这样就有4个Address of pointer,
然后将数值填入
Address of pointer:不填 Offset (Hex):18
Address of pointer:不填 Offset (Hex):0
Address of pointer:不填 Offset (Hex):14
Address of pointer: 0045cc18 Offset (Hex):c

然后点击OK键。现在双击CE下方列表地址前面带有P->00D722E8地址的数值(Value),这会弹出
Value对话板,将数值修改为5000,先不要点OK键并将Value对话板移到TUT的Change pointer
按钮的下方,既是当我选择了TUT的时候也能看得见Value对话板的OK键,这样我就可以在点了
TUT的Change pointer按钮后能快速的点击得到Value对话板的OK键(3秒钟内)。
我哈哈!!点到了。

选择TUT点击Next进入.......Tutorial End。噢!完成了第八步骤。嘻嘻嘻!

学CE自己做CT表!

首先,下载CE(也可以用ME,ME与CE原理相同)
然后开始教程
CHEAT ENGINE 这是老外编的内存修改工具,我在网上找了很久才找到这个教程.现把它放这里,主要是怕它失传了.内容比较乱,不过这也是网上唯一一篇教材了.
---------------------------------------------------------------------
CHEAT ENGINE(以下简称CE)是我见过的最优秀的游戏作弊工具。它的优点多不胜数,虽然单独从搜索游戏里面的数值来说,它并不比其他同类软件强多少,但它不仅仅是个游戏修改工具,它还有其他游戏修改软件所没有的一些特点,例如:它有强大的反汇编功能,这个是别的游戏工具中几乎没有的;还有,它本身就自带了外挂制作工具,可以直接由它生成外挂。而它的界面非常简洁朴素,这也是我喜欢它的原因之一。同类软件中,我觉得TSEARCH可以和它媲美,但TSEARCH的界面比较混乱,操作过于复杂,所以我个人并不喜欢TSEARCH。

在这个教程里面,你不会看到任何图片,因为我觉得我能用纯文字教你使用CE,如果你觉得没有图片就一定学不会,我想你没必要看下去了,因为我没空做图片,并且我觉得文字已经足够表达,没必要用多余的图片。

还有如果你喜欢这个入门教程,你可以把它转载到任何地方,但在转载之前,请你征得本人的同意,并且在转载时注明作者为CCB。

好了,废话少说,进入正题吧。

其实,使用CE的基本步骤,可以简单到一句话:

1.运行CE->2.运行游戏->3.在CE中指定要修改的游戏->4.首次搜索一个数值->5.回游戏中让这个数值增加或减少 ->6.回CE按数值增减的情况再次搜索->7.重复5和6直到得到一个或很少的几个结果->8.在这几个结果中判断哪一个是真正的结 果。

而下面的这个教程,就是要对上面说的这些步骤进行详细的解释,然后再用一个具体的例子来让大家真正掌握CE的用法。

当然,要用一个具体的例子来讲解CE的用法,需要一个游戏,以这个游戏的修改来讲解。不过,如果真正的用一个游戏来做例子,那么大家也得找到我用的游戏, 就算找得到,还有可能要安装,确实比较麻烦。幸好,CE本身带了一个TUTORIAL,就是教程的意思,不过这个TUTORIAL,本身也是一个程序,它 是作者为了让使用的人进行练习而编写的,它不但会一步一步地教你怎么用CE,而且它本身也和游戏差不多,除了没有游戏的画面。如果你能使用CE按这个 TUTORIAL的要求对它进行修改,我想你也应该能用CE对真正的游戏进行修改了。

OK,LET'S GO!

第九步:注入++(密码:31337157)


在这个步骤中,我们会尽基本上与在第7步相同,但现在一点点变得更加困难。

现在你要编辑代码实现当生命值大于等于30,把生命值改为1000,如果小于30则改为2000

这使用auto assembler脚本API CALL调用一些例程,以获取当前时间,但这里使用C-Script注入会更容易些

找到生命值的地址,打开Script engine(在Memory view中按CTRL+ALT+A或者菜单项Tools->Script engine)

具体步骤如下:

1.搜索生命值

2.将找到的地址加入列表(我找出来的地址是D629F8)

3.在地址上点右键“Find out what writes to this address”,然后“Hit me”

4.在"the following opcodes changed the...."窗口中得到汇编代码,点击"More information"

6.在"Extra info"窗口中得到代码:0045dea - dec[ebx+310]

7.在"the following opcodes changed the...."窗口中点击Show disassembler出现"Memory Viewer"窗口

8.Ctral+Alt+A出现"Script engine"窗口

9.填入下列代码

#include <time.h>

struct tm *timep;
time_t c;
c=time(0);

timep=localtime(&c);

if (timep->tm_sec>=30)
  *(int *)0x00D629F8=1000;//第二步中得到的地址
else
  *(int *)0x00D629F8=2000;//第二步中得到的地址

10.点击菜单"Inject->Inject into current process"

11.出现"Auto assemble"窗口,出现的代码中有一句"Call 010A0105"

12."Template->Code injection" 填入0045dea(第六步中得到的地址)
13.得到如下代码:
//Call this code to execute the script from assembler
call 011E0103  //(该值可能不同)

//eax==0 when successfully executed
//'call underc_geterror' to get a pointer to the last generated error buffer
alloc(newmem,2048) //2kb should be enough
label(returnhere)
label(originalcode)
label(exit)

00455dea:
jmp newmem
nop
returnhere:

newmem: //this is allocated memory, you have read,write,execute access
//place your code here


originalcode:
dec [ebx+00000310]

exit:
jmp returnhere

14.修改成如下代码:
alloc(newmem,2048) //2kb should be enough
label(returnhere)
label(originalcode)
label(exit)

00455dea:
jmp newmem
nop
returnhere:

newmem: //this is allocated memory, you have read,write,execute access
//place your code here


originalcode:
call 011E0103  //(该值可能不同)

exit:
jmp returnhere

15.点击Execute

16.回到"Cheat Engine Tutorial",点击"Hit me",这时"Next"就变得Enable


终于做完第九步了!大家主要注意这里*(int *)0x00D629F8=1000;//第二步中得到的地址
else
  *(int *)0x00D629F8=2000;//第二步中得到的地址
回复

使用道具 举报

主题

好友

376

积分

中级会员

发表于 2010-1-25 02:41:11 |显示全部楼层
...呵呵!
   我在这发这个贴只是为了让大家可以学到点东西!
绝对没有有意还鬼瞳争的
  呵呵!他的是原创,我的是转贴,跟当然没办法比!
呵呵!
   我只是在鬼瞳的基础上帮大家搜点有用的东西!
\呵呵!希望鬼瞳谅解
回复

使用道具 举报

主题

好友

312

积分

中级会员

发表于 2010-1-25 02:55:28 |显示全部楼层
= =   我有什么好谅不谅解的。。。。支持研究内存。。。。有问题发帖交流。。。
回复

使用道具 举报

主题

好友

1182

积分

金牌会员

发表于 2010-1-25 10:56:08 |显示全部楼层
嗯 转贴的 不过也支持一下LZ!!
回复

使用道具 举报

主题

好友

796

积分

高级会员

发表于 2010-1-25 11:07:14 |显示全部楼层
支持研究内存
回复

使用道具 举报

主题

好友

248

积分

中级会员

发表于 2010-1-25 11:08:04 |显示全部楼层
绝对顶起啊
回复

使用道具 举报

主题

好友

1266

积分

金牌会员

发表于 2010-1-25 11:12:57 |显示全部楼层
强贴留名~!!
回复

使用道具 举报

主题

好友

518

积分

高级会员

发表于 2010-1-25 19:09:39 |显示全部楼层
支持下。 有思路就是好的。
回复

使用道具 举报

主题

好友

1228

积分

金牌会员

发表于 2010-1-25 19:10:47 |显示全部楼层
感谢楼主分享!!!!
回复

使用道具 举报

主题

好友

3434

积分

论坛元老

发表于 2010-1-25 19:14:49 |显示全部楼层
1# 丨三丶尐


努力学习中
回复

使用道具 举报

主题

好友

4902

积分

论坛元老

发表于 2010-1-25 19:27:01 |显示全部楼层
不是原创了 楼主
回复

使用道具 举报

主题

好友

154

积分

注册会员

发表于 2010-1-25 20:10:37 |显示全部楼层
很好 、 很强大
回复

使用道具 举报

主题

好友

138

积分

注册会员

发表于 2010-1-25 20:14:49 |显示全部楼层
LZ转得也挺辛苦的.
顶你下!
回复

使用道具 举报

主题

好友

3462

积分

论坛元老

发表于 2010-1-25 21:45:46 |显示全部楼层
看的头晕。。。
回复

使用道具 举报

主题

好友

1168

积分

金牌会员

发表于 2010-1-26 03:54:49 |显示全部楼层
好长啊,.米有图例
回复

使用道具 举报

主题

好友

1340

积分

金牌会员

发表于 2010-1-26 03:59:16 |显示全部楼层
看看 支持一下
回复

使用道具 举报

主题

好友

1030

积分

金牌会员

发表于 2010-2-3 03:31:54 |显示全部楼层
支持!学习
回复

使用道具 举报

主题

好友

640

积分

高级会员

发表于 2010-2-10 19:18:43 |显示全部楼层
下。 有思路就是好的
回复

使用道具 举报

快速发帖

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

手机版|Archiver|WPE|52wpe|我爱WPE ( 闽ICP备15009081号 )

GMT+8, 2024-4-18 17:53 , Processed in 0.064570 second(s), 16 queries .

返回顶部