加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

破解CE(Cheat Engine)迷题

(2014-01-07 16:19:44)
标签:

it

ce

cheatengine

game

crack

分类: 学习
Cheat Engine, 作弊引擎,瞧这名字起得叫一实诚的,比较出名的一款开源免费的游戏修改工具,用于修改游戏血量,装备啥的。它有一个自带的教程,有9关迷题,把这9关解了,CE的用法基本也就会了。

话不多说,到http://cheatengine.org/ 下了个最新版的verion 6.3, 下面写一下玩的过程。

下完安装后如下图,打开Cheat Engine和Tutorial,有些绿色版的,在解压的目录中也有Tutorial程序,双击运行即可。
http://s8/mw690/001p2jZhgy6FAYYWcAL07&690Engine)迷题" TITLE="破解CE(Cheat Engine)迷题" />

另外,菜单可以汉化,主页下个汉化包,然后在languages\language.ini中写入一个zh_CN值重启CE就OK:
PreferedLanguage=zh_CN

但可惜Tutorial没有汉化包,为了操作的一致性,就保持EN界面了。原文每关说明大段大段的英语就不贴了,每关都有一个Next按钮,过关的标准就是这个按钮被激活,就可以进下一关,玩法就是这样。

第1关是Welcome,略过

第2关,查找精确的值。
把初始血量100输入后,点New Scan开始检索,查到一堆
http://s7/mw690/001p2jZhgy6FAYYZy9Eb6&690Engine)迷题" TITLE="破解CE(Cheat Engine)迷题" />

然后点Hit me改变血量,发现变成了95,把这个值输入后点Next Scan,就在刚才的列表中继续检索变成95的值(其实不用检索,左列Found这一列变化的值会自动标红),于是找到的这个Address就是存放血量的
http://s15/mw690/001p2jZhgy6FAYZ1kKi4e&690Engine)迷题" TITLE="破解CE(Cheat Engine)迷题" />

按下箭头把这个Address加到下边的操作栏,然后回车,按原题意把血量改为1000,Next按钮激活--过关!
http://s14/mw690/001p2jZhgy6FAYZ3Vb74d&690Engine)迷题" TITLE="破解CE(Cheat Engine)迷题" />

第3关,未知初始值的查找。
比如像街霸这种只标血量条不标数值的。先点一下New Scan释放上次的搜索,然后扫描类型选Unknown initial value,再点First Scan
http://s11/mw690/001p2jZhgy6FAYZ6rcC1a&690Engine)迷题" TITLE="破解CE(Cheat Engine)迷题" />

左列搜索到了48万个结果,估计是超出显示范围不给显示了。我们继续点Hit me触发血量修改,原题说每点一次会少血,所以接下来选Decreased value类型,然后点Next Scan
http://s2/mw690/001p2jZhgy6FAZ4bVsJa1&690Engine)迷题" TITLE="破解CE(Cheat Engine)迷题" />

出了866项,按上边重复操作,点Hit me,再Next Scan几次,搜索结果会一直减少
http://s3/mw690/001p2jZhgy6FAZ4emwGf2&690Engine)迷题" TITLE="破解CE(Cheat Engine)迷题" />

直到10项左右了,一点值会给标红的项(要的结果往往会出现在列表的第1个),加入操作,回车输入血量5000,过关!
http://s16/mw690/001p2jZhgy6FAZ4hC4D4f&690Engine)迷题" TITLE="破解CE(Cheat Engine)迷题" />


第4关,浮点值查找
这回血量是个浮点数,弹药是个双精度浮点数。方法跟第3关差不多,只是在搜索的时候如下图选对类型,另外在Value框里不需要输入Hit me后显示的浮点数来搜,比如96.3,只要输整形96就行了,发现如果输浮点数值搜索,反倒会搜不出来:(
http://s10/mw690/001p2jZhgy6FAZ4jX0l89&690Engine)迷题" TITLE="破解CE(Cheat Engine)迷题" />

在搜索Double类型时,原题的意思是建议去掉Fast Scan项的。
http://s7/mw690/001p2jZhgy6FAZ4nlEWa6&690Engine)迷题" TITLE="破解CE(Cheat Engine)迷题" />

第5关,代码查找。
原题大概是说程序在重启的时候,每次存储血量的地址都会变化,这一关就是要找到改变地址的这段代码并改掉它。首先像前边关那样找到这个地址值,并加入操作列表,然后在地址列上点击MOUSE右键,选择Find out what writes to this address,看看写入这个地址的代码
http://s10/mw690/001p2jZhgy6FAZ8Z3Sxb9&690Engine)迷题" TITLE="破解CE(Cheat Engine)迷题" />

会看到一个空白界面,点击Change value触发捕获到这句代码,选中代码,点“Replace”,然后输入汇编代码nop替换它,程序执行到此就啥都不做,即不会去改血量的那个地址了。点击stop返回程序
http://s5/mw690/001p2jZhgy6FAZ90PGI94&690Engine)迷题" TITLE="破解CE(Cheat Engine)迷题" />

再点一次Change value,过关!
http://s16/mw690/001p2jZhgy6FAZ93lbF7f&690Engine)迷题" TITLE="破解CE(Cheat Engine)迷题" />

第6关,指针查找
这一关血量由指针变量决定,需要找到这个指针所在的地址。原题提供了2个按钮,1个改变血量,1个改变血量的地址(即指针变量的值)。跟前边一样,只通过Change Value按钮(不要乱按Change pointer),找到血量的地址,然后选查找写入血量地址的代码
http://s2/mw690/001p2jZhgy6FAZ957fH31&690Engine)迷题" TITLE="破解CE(Cheat Engine)迷题" />

再点一下Change Value触发代码捕获后,选中代码,并点More information,看一下这句代码周边代码。copy memory部分中的0006EAD8就是找到的,此时指针变量中的值,点击右键拷贝到剪切板,等下通过搜索这个值来找到指针变量的地址。另外注意mov [edx],eax中的[edx],表明offset偏移量为0(卡巴斯基随手带个纸笔记基址和偏移量是个好习惯:)
http://s4/mw690/001p2jZhgy6FAZ97F5113&690Engine)迷题" TITLE="破解CE(Cheat Engine)迷题" />

选中Hex搜索16进制,搜索上一步拷过来的指针变量的值。然后选Add Address Manually手动将搜索到的地址加入操作列表。
选Pointer说明是个指针类型的地址,手动输入搜到的指针地址00631360,偏移量是0,那个正负框不用输入任何值
http://s14/mw690/001p2jZhgy6FAZcxcMl7d&690Engine)迷题" TITLE="破解CE(Cheat Engine)迷题" />

试着按一下Change Value,可以看到2个地址值的血量Value是一同变化的
http://s1/mw690/001p2jZhgy6FAZcATpC90&690Engine)迷题" TITLE="破解CE(Cheat Engine)迷题" />


点中操作栏,地址项最左边的复选框以锁定地址,然后回车,输入原题要求改的血量值5000,然后点一下Change Pointer, Next键激活,过关!
http://s11/mw690/001p2jZhgy6FAZcCCTg6a&690Engine)迷题" TITLE="破解CE(Cheat Engine)迷题" />


第7关,代码插入
这一关的目的是要找到Hit Me对应的代码,变每按一次减血,变成反而会增加血量。要是打子弹,不仅不减少子弹,反倒子弹会越打越多,这是怎样的大BOSS啊,哈哈!

首先,还像前边那样找到Hit me对应的代码,然后按下图先显示反汇编代码,再选择Auto Assemble菜单项,系统会自动为插入代码做准备工作
http://s15/mw690/001p2jZhgy6FAZcF1Ce9e&690Engine)迷题" TITLE="破解CE(Cheat Engine)迷题" />

接下来选择Template的Code injection项开始插入代码
http://s1/mw690/001p2jZhgy6FAZcHgyY00&690Engine)迷题" TITLE="破解CE(Cheat Engine)迷题" />

提示要修改代码地址,程序将自动跳转到这个地址,以执行你要插入的代码,这个地址就是刚才搜到的Hit me改血量的代码所在的地址
http://s14/mw690/001p2jZhgy6FAZgWVvD9d&690Engine)迷题" TITLE="破解CE(Cheat Engine)迷题" />

代码的说明加在后面了,只有add 这句是手动添加的,只一句,简单!
http://s6/mw690/001p2jZhgy6FAZgZ1eB85&690Engine)迷题" TITLE="破解CE(Cheat Engine)迷题" />

点执行后,会显示这段代码的入口地址
http://s10/mw690/001p2jZhgy6FAZh0P7Xa9&690Engine)迷题" TITLE="破解CE(Cheat Engine)迷题" />

可以看到程序已经jump到这个入口地址了,但接下来出了个小插曲。当我点击Hit me时,血量的确在增加,说明修改是生效了的,但是Next键一直没有激活,这是乍回事呢?
http://s11/mw690/001p2jZhgy6FAZh45Z0aa&690Engine)迷题" TITLE="破解CE(Cheat Engine)迷题" />


来来回回又搞了几下,还是不OK
http://s7/mw690/001p2jZhgy6FAZlxCDk46&690Engine)迷题" TITLE="破解CE(Cheat Engine)迷题" />

然后仔细又看了一遍题才发现,原来,原题是说点一下,要加2滴血,而我改的代码因为是增加1滴血的,所以不给过啊,直接在反汇编里把02改成03,
http://s1/mw690/001p2jZhgy6FAZlzpeM10&690Engine)迷题" TITLE="破解CE(Cheat Engine)迷题" />


再点Hit me, 过了!哈哈!!
http://s10/mw690/001p2jZhgy6FAZlDzMl39&690Engine)迷题" TITLE="破解CE(Cheat Engine)迷题" />


第8关,多级指针
一级指一级啊,需要逆到最初的那个指针地址才OK,判定最后一级地址的标准就是Found列表中,有个条目地址会变绿,就是多级指针的最终基地址了。

还是同前边一样先找到第1级指针(注意注意,只准用Change value,直到找到基地址才能点Change pointer啊)
http://s15/mw690/001p2jZhgy6FAZlFydUce&690Engine)迷题" TITLE="破解CE(Cheat Engine)迷题" />

先找到第1级指针的值,偏移量为18
http://s14/mw690/001p2jZhgy6FAZlHMol7d&690Engine)迷题" TITLE="破解CE(Cheat Engine)迷题" />

检索指针的值,得到指针地址,手动加入操作列表,注意输入偏移量18
http://s14/mw690/001p2jZhgy6FAZqTeSp2d&690Engine)迷题" TITLE="破解CE(Cheat Engine)迷题" />

接下来,在找到地址项上右键,由于是第1级指针是指向最终的血量,后面的指针都是指向到前边的指针变量,并不会直接改写到血量,所以这里是选Find out what accesses this address,而不是writes那一项
http://s1/mw690/001p2jZhgy6FAZqVXDa20&690Engine)迷题" TITLE="破解CE(Cheat Engine)迷题" />

查看这个指针由谁访问
http://s10/mw690/001p2jZhgy6FAZqZo6d79&690Engine)迷题" TITLE="破解CE(Cheat Engine)迷题" />

接下来,出了个有意思的情况,当我选Change value时,跟踪到2条代码都在访问这个指针变量。进一步选More information后发现,第2条代码提示要搜索的地址,刚才跟前边搜索过的地址相同,显然这条语句不是我们要的
http://s10/mw690/001p2jZhgy6FAZr1Wzff9&690Engine)迷题" TITLE="破解CE(Cheat Engine)迷题" />

我们选择第1条语句的搜索地址,有注意到此时的[esi]偏移量也是0
http://s11/mw690/001p2jZhgy6FAZr4sB4da&690Engine)迷题" TITLE="破解CE(Cheat Engine)迷题" />

继续检索一下,这时又出现了2个地址的情况,到底哪一个是对的呢,别急,看下边。
把搜索到的第1个地址手动加入操作列表,要选Add Offset把前后2次的偏移量依次输入进去, 系统会自动计算血量地址,你可以校对一下,其中的值是否跟你的Change value那个值相同,如果相同,表明偏移量都输入正确
http://s1/mw690/001p2jZhgy6FAZuBR3a30&690Engine)迷题" TITLE="破解CE(Cheat Engine)迷题" />

我们刚才不是搜索出了2个地址吗?哪个是对的呢?在下、下个图中发现,第1个地址手动添加后,如果进一步跟踪,当点击Change value时,代码跟踪窗口没有任何反应,无法再跟下去了,我于是换第2个地址,这回可以了,Only you !
http://s16/mw690/001p2jZhgy6FAZuE8mr0f&690Engine)迷题" TITLE="破解CE(Cheat Engine)迷题" />

http://s16/mw690/001p2jZhgy6FAZuGzrVbf&690Engine)迷题" TITLE="破解CE(Cheat Engine)迷题" />

这次还是出了2条语句,其中一条检索的下一个地址值依然是旧的,所以弃用。第1条语句的可以,偏移量为14
http://s1/mw690/001p2jZhgy6FAZuIonu70&690Engine)迷题" TITLE="破解CE(Cheat Engine)迷题" />

输入3次的偏移量,核对一下血量值是OK的
http://s3/mw690/001p2jZhgy6FAZuKdj422&690Engine)迷题" TITLE="破解CE(Cheat Engine)迷题" />

还没到头,这回偏移量为0C
http://s11/mw690/001p2jZhgy6FAZyQ2sW6a&690Engine)迷题" TITLE="破解CE(Cheat Engine)迷题" />

继续,哈!基地址出现。。。。绿色的哦,把地址添加到操作列表
http://s3/mw690/001p2jZhgy6FAZySpTc12&690Engine)迷题" TITLE="破解CE(Cheat Engine)迷题" />

锁定条目,输入5000 again,然后点Change pointer, YES !! 画个快乐的小猫咪啊!
http://s16/mw690/001p2jZhgy6FAZyV7sP4f&690Engine)迷题" TITLE="破解CE(Cheat Engine)迷题" />

进入终极关,第9关!
目前还没过,请听下回分解~






0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有