为什么我用CE修改了qq捕鱼大亨亨的金钱 然后重启后又变回原来的金钱了 是用精确数值扫描修改的,改的子弹也是打

CE游戏修改器制作游戏修改器傻瓜教程_西西软件资讯
西西软件园多重安全检测下载网站、值得信赖的软件下载站!
→ CE游戏修改器制作游戏修改器傻瓜教程
1.0.6 官方最新版
类型:图像浏览大小:13.0M语言:英文 评分:3.6
傻瓜教程目标是:注重操作,不求深入,主要是为了培养各位的兴趣和带你迅速入门。先简单介绍下什么叫CE,CE的全称是Cheat Engine,最新的版本是5.6.1(作者是 Dark Byte)CE是目前最优秀的游戏修改器,不是之一,这个工具绝对值得你去学习(只要花一点时间就够了)。忘记金山游侠,GM8,FPE之类的修改工具的吧,CE会让你爱不释手。一、先下载CE 5.6.1,这个汉化版相当不错哦(不需要安装),推荐各位下载使用。下载地址:二、打开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 Float2、双浮点数 也叫双精度浮点数 英文是Double Float这里面要强调的是:浮点数的长度是4字节,使用4字节也可搜索到浮点数,但需要使用模糊搜索。下图: 双浮点数的长度是8字节,使用8字节也可搜索到浮点数,但需要使用模糊搜索小技巧:1、双击图中红圈处可快速更改数值类型。 2、浮点数在4字节中大多以11开头。 现在好多游戏都采用浮点数来处理,比如中的时间。例如您在扫描游戏时发现一个数值是
这时候您就要想到它是浮点数。4字节的
= 浮点数的 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-.html2、阳光的查找:http://bbs.52miji.com/thread-.html这一关相当重要,大家一定要多多练习(学会前六关,你已经可以修改大部分的游戏了)小说明:1、并不是所有的游戏都要找基址然后做指针,有的游戏直接就是基址,比如这个教程:http://bbs.52miji.com/thread-.html2、基址是绿色的,如果找到最后有多个绿色地址,在一般情况下选择第1个。最后介绍下CE中的模块地址:双击基址 您会发现显示的竟然是 Tutorial.exe+60C34 而不是&&00460c34 这是为什么呢? 其实 Tutorial.exe+60C34 就等于 00460c34 一般来说游戏在电脑中申请的地址是从开始的,Tutorial.exe代表的就是
然后加上 60c34 自然就等于&&00460c34。但是在某些情况下游戏的起始地址并不是从开始的,或者说每次启动申请的地址都不相同;那么就不能用 00460c34 来添加指针了,真正科学添加指针的方法是: 从本关开始,各位会初步接触到CE的反汇编功能,这也是CE最强大的功能之一。在第6关的时候我们说到指针的找法,用基址定位动态地址。但这一关不用指针也可以进行修改,即使对方是动态地址,且功能更加强大。看看教程让我们做什么:原来每按一次按钮减少1点血,改成每按一次按钮增加2点血。还记得第5关的不伤血的修改方法吗?这一关就是第5关的加强版。查找血量的地址,然后再地址上 右键=& 查找写入的地址 然后按一下打我按钮,会出现一行汇编代码
- ff 8b 10 03 00 00 - dec [ebx+] 双击那行代码,看下详细信息: 这行代码什么意思呢?dec 大家都知道是英文减少的意思图示红框处:EBX=01e0ee18我们用计算器算一下(注意是16进制的)01e0ee18 + 310&&= 01E0F128 正好是血量的地址。dec [ebx+] = dec [01E0F128] 够清楚了吧,这就是让血量减1的代码(1省略了),其实CE中也有提示 Decrement by 1 。明白了这行代码的意思,我们回去看看Tutorial的要求:把减1改成加2。继续操作。选择反汇编程序 点击工具,选择自动汇编 第一步选择作弊框架代码 第二步选择代码注入 对应的地址不要搞错了,是 然后按确定,会自动生成汇编代码,这些代码是什么意思,我们先不管,找到关键的一行:dec [ebx+] 把代码注释掉(删除也行),改成 add [ebx+ 保存即可,然后在地址栏就可以看到这个脚本了,点击前面的 单选框 执行,然后点击Tutorial中的打我,这关就可以过了。 你感觉到他的神奇了吗?逆天级的修改:1、怪物每次打我从伤血变成加血。2、子弹越打越多。3、钱越花越多。如果你学会了这一关,你已经脱离菜鸟的行列了,不要再提金山游侠,FPE,GM8之类的修改工具了,告诉你们的朋友快来学习CE吧。最后,再强调一下CE中的模块地址:在第6关的后面有提到过CE的模块地址,我说过这是科学的添加方法。这一关也同样适用,就是在代码注入的时候。
变成了 Tutorial.exe+5A063
注入的时候也应该是 小技巧:这种方法并不是百试百灵的,对于某些变态的游戏可能并不好使。如何判断这种方法是否有效呢?很简单:在上面选中 显示模块地址 后,如果
变成了 Tutorial.exe+5A063 说明这种方法好使。反之如果
则说明这种方法失效了。至于为什么,你以后会明白。当然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图标,选择 高级选项 图示选择 默认即可 图示: 选择添加 按图示操作 增加热键 改图标 + 生成修改器
最终生成的修改器&
08-1908-1808-1708-1608-1607-2507-2507-2207-2207-20
阅读本文后您有什么感想? 已有23人给出评价!
名称大小下载|  
|  
|  
|  
|  
只需一步,快速开始
查看: 8028|回复: 23
[100%原创][01/24更新] CE修改实战——《行星遭遇攻击》无敌修改(提高篇已补完)
主题帖子积分
高级玩家, 积分 460, 距离下一级还需 140 积分
高级玩家, 积分 460, 距离下一级还需 140 积分
本帖最后由 ioncannon 于
19:01 编辑
前阵子看了某位大大的后深受启发,感觉我也应该将自己的修改经验分享出来,于是就想到写个修改实战的帖子。
正巧看到了一款正对我胃口的游戏,《行星遭遇攻击》()。我比较菜打不过去,能找到的修改器又不是特给力,就计划拿此游戏开刀,将修改过程记录下来,希望对修改新手们有些借鉴意义。
本人以前没用过CE,初次使用觉得这是款极其强大的工具,靠着以前修改游戏的一点底子,过了教程后就上路了。由于是CE新手,修改流程中难以做到尽善尽美,还望高手们指正。另外不会设回复可见,就不搞那玩意儿了,觉得好就小小顶一下吧
修改游戏最适合的入手点莫过于改钱了,这款游戏也不例外。我们要做的基本分两步:找到钱存哪里,然后做你想要的修改。(废话)
首先当然要启动游戏,然后启动CE并选中游戏进程:
为方便修改,建议将游戏切到窗口模式,然后进游戏选人类随便开一局。建议选一开始的关卡,简洁明了。我选了第一关(First Blood Elimination),中等难度。钱的数量会显示在左上角:
此时你要做的是记住你的钱是多少然后快速暂停游戏(从游戏里切出来就会自动暂停),进CE,将你的钱填入搜索数值框里。扫描类型选“精确数值”(表示只搜索你指定的那个值)。
数值类型选什么?根据经验,游戏里最常见的两种类型是“4字节”(32位整数类型)和“浮点数”(单精度浮点类型),如果不确定,你可能需要一个一个试或选择“全部”以搜索所有数值类型。幸运的是,我知道这游戏里钱是个浮点数,所以你直接选“浮点数”就好了
选了“浮点数”后,右边会出现三个选项。这里我要吐槽一下翻译,完全不知所云 英文好的尽量用英文原版。其实这里是选择舍入方法,前两个是“全面”其实是“四舍五入”,第三个是“简化”应该是“截断”。比如现在搜索300这个值,选“四舍五入”就会搜索所有299.5 ~ 300.5之间的值,而选“截断”就是搜索所有整数部分为300的值而无视小数部分,即区间 [300, 301)。两个“四舍五入”选项之间有什么区别我也不知道。不知道该选哪个就要一个一个试。这里选择“截断”(即界面上的“简化”),因为我又知道了
其他选项留默认值不动(一般也不需要动),最后点“首次扫描”。
不出意外的话,左边应该列出很多符合条件的结果了。下面要做的是缩小范围,在这堆候选结果中找到谁才是真正存钱的地方。
尽情去游戏里花钱吧,然后把数值再记下来并快速暂停游戏。我不知道哪个是暂停键,调出菜单又看不到钱~~我的土方法是:点击任务栏,然后游戏就暂停了,且能看到现在有多少钱
好,回到CE,把更新后钱的数值填入搜索框,并点击“再次扫描”。观察左边的结果列表,正常情况下比之前少了很多。这时分三种情况:
还有不少候选结果,那就再回游戏里花钱(或者赚钱),再回来扫描,不停地重复下去,直到。。。只剩一个结果了,恭喜你,你多半是找到正确的位置了。一个结果都不剩?不好意思,可能数值不是你想象中那么存放的,修改一下搜索参数(数值类型等)重新来过吧
不过如果你真的按我说的去做了,你会发现总是有3个候选结果,无论你怎么扫描,结果集都不再收敛了
擦,那怎么办?别急,还好只有3个候选而不是30个。。。全选所有结果,并点那个红色箭头的按钮,将所有结果加入地址列表:
然后,然后就要靠运气了(不要吐槽,这么多年我都是这么干的,有更好的办法请立即告诉我)
方法是——随便选一个你看着顺眼的地址(或者抽签,或者像我一样从第一个开始……)双击数值的部分,并在弹出的“更改数值”对话框中输一个不一样的值,比如5000,然后点“确定”。
回游戏里再花点钱,然后看看你的钱变成你改的那个值了没?如果变了,那恭喜你押对宝了;如果没变,那说明押错了,将这条结果删掉吧,再挑一个结果试试。。。
注意,这里一定要再花点钱才能确定改得对不对,因为显示的数值不一定马上会更新。
当然,我不会告诉你我是找到最后一个才找对的
好了,到这里你就可以想怎么改就怎么改了,可以直接像刚才那样一次性地修改,也可以锁定,让CE帮你保持这个值不变(默认好像是100毫秒刷一次,对于金钱,这个刷新频率已经足够了)。
锁定的方法是点地址最前面那个方框。有人会想,钱这种东西是多多益善的,只想让CE保证一个最低值,超过这个值就让它超吧,这也是可以的。方法是点那个锁定方框右边一点的位置,跳出一个向上的绿箭头。这时如果金钱少于你设定的数值,CE就会帮你刷回来,但如果多于这个值CE就不管了(我打赌很多人不知道这个功能):
如果再点一下箭头,会变成一个向下的红箭头,那又是什么意思呢?不知道?猜一猜呢?
基础修改就讲到这里了。最后可能有些人会问:这个地址难道下次重启游戏不会变吗?
这是个好问题,不过这个金钱地址确实是个静态地址,因为CE会在扫描时的结果列表里把所有静态地址显示成绿色。什么?没注意?回去看看上面的图,三个结果都是绿的,下次启动游戏就放心大胆地按同样的地址改吧
可能你会觉得这和现成的金钱修改器没啥区别,好吧,确实如此。不过这游戏光改钱对我这样的菜鸟是不够的,必须来点狠的。
敬请期待下回将要介绍的——真正的——无敌修改
本帖子中包含更多资源
才可以下载或查看,没有帐号?
<p id="rate_0233" onmouseover="showTip(this)" tip="鼓励原创!&金元 + 20
贡献度 + 5
" class="mtn mbn">
主题帖子积分
高级玩家, 积分 460, 距离下一级还需 140 积分
高级玩家, 积分 460, 距离下一级还需 140 积分
本帖最后由 ioncannon 于
19:03 编辑
上回说到,这游戏光改钱对我这样的菜鸟是不够的。为什么这么说呢?Medium或Hard难度都是有附加条件的,比如不能失去多于XX个星球。这有点坑爹,如果你在某个星球和敌人拉锯战,那每被敌人抢去一次就算失去一个星球到后期还会有大BOSS能在瞬间抢下你一个星球这时候光有钱有什么用?
于是咱们这回挑战一把,改什么呢?Yes,就改人口!先YY一下:如果每个星球无论敌人如何进攻,人口都不减那不是就无敌了让你电脑抢我星球,显你电脑会精确派兵,我让你打,让你抢这回抢不下来了吧?傻眼了吧?。。。(此处省略584.62字)
好了,言归正传,我们要分析一下局势,制定修改策略。首先,人口和金钱不同,金钱只有一个值,而人口是每个星球各有一个值。因此像对付金钱那样“扫描+锁定”的策略显然行不通,跳蚤太多咱没那么多手指按。那我们的策略就是——先拿一个星球开刀,找到这个星球人口的地址,再分析敌人进攻时游戏是如何让星球减人口的,最终的目标是修改让星球减人口这段逻辑,使得无论敌人进攻哪个星球人口都不减。
首先选个经常被敌人进攻的星球(咱就是要被敌人攻,这样才能更好地受。。。哦不,更好地分析):
然后像扫描金钱一样,找到这个星球人口的地址(为了节省篇幅和你的时间,我友情提示这里数据类型是“4字节”)。应该很容易找到:
双击左边唯一的结果将其加入地址列表后,再右键菜单里选“找出是什么改写了这个地址”:
这时可能会弹出一个对话框让你确认是否启动调试器,选“是”:
然后CE会开个新窗口显示“下列代码写入到XXXXXXXX”,将它拖到一边不会被游戏窗口覆盖的位置。回到游戏,等待敌人来进攻。最好多等几波,但保持不要让敌人抢去这个星球。这时你会发现,刚才CE那个窗口里多了几条指令记录。注意每条的计数,有一条计数值很高。更重要的是,敌人的进攻每次使得星球人口减1时,那个计数就会相应加1(将该CE窗口放在游戏窗口旁边对比就会看的更清楚):
这说明就是该指令造成的敌人进攻时星球减人口。接下来有两条路可走:
第一条路很简单:在那条指令上点右键,选择“使用空指令替换(NOP)”,意思相当于将这条指令直接删掉,这样就达到了敌人进攻时星球人口不减的目的。但我们不能简单地这么做,理由是:虽然电脑进攻玩家的星球人口不减了,但是玩家进攻进攻电脑时,星球人口同样不会减,因为玩家也是电脑的“敌人”。大家互相攻不下对方的星球,这仗还怎么打
因此我们要走第二条路:先把修改暂时放一放,咱们进一步分析下这里的逻辑。如果能让“敌人进攻时人口不减”这个逻辑有条件地实施,即只有“玩家星球”人口不减,那才是我们想要的。
这时我们就需要分析一下“星球”这个数据结构了,期望能找到“玩家星球”和“电脑星球”之间的区别。
要找到区别,首先我们得找到“电脑星球”人口的数据。用前面扫描星球人口的方法将电脑星球的人口地址也找到并加入地址列表以备查阅(随着列表中地址增多,最好都加上描述以免搞错):
点地址列表上面的“查看内存”:
在弹出的“内存查看器”窗口中选菜单“工具”--&“解析 资料/结构”:
再在弹出的“结构分析”对话框中“Group 1”地址框内填入我方星球的结构地址。这个结构地址怎么算?注意看刚才修改人口的那些指令:
对人口的寻址都是[eax+],这通常说明此时eax指向星球结构的起始地址,而星球人口存在偏移量为4B4(16进制)的地方。不懂汇编也不要紧,只要知道4B4是人口地址相对于星球地址的位置就行了。那么将前面找好的人口地址减去4B4(16进制计算可用计算器,科学型(XP)或程序员模式(Win7))就是星球结构的地址。
比如我现在星球人口地址 18EA8994 - 4B4 = 18EA84E0 即星球结构地址。
敌方星球也一样:18EA6F54 - 4B4 = 18EA6AA0 即敌方星球结构地址。
我方星球地址填好后,选菜单“文件”--&“加入额外地址”,再次填入我方星球地址(后面有用),再选菜单“文件”--&“加入新群组”填入敌方星球地址。最后选菜单“结构”--&“定义新的结构”,然后一路确认,最终得到一个自动生成的结构:
由于所有结构成员都是CE推测的,数据类型、偏移量很可能是错的。浏览到我们目前唯一知道的成员偏移4B4处,看看是不是人口数值:
纳尼?这是什么呀?别急,在该条目上点右键,选“更改元件”(应该是更改成员吧?)
在“结构信息”对话框里,将类型改为“4字节”,别的选项保持不变,然后点“确认”:
擦,又忍不住要吐槽翻译了“签署”是神马意思?Signed就翻译成签署吗?太没专业精神了,明显是“带符号”的意思嘛!我发誓我写完这个帖子就把汉化补丁去掉,必须的。。。
好了,现在看看是不是与游戏中对应星球的人口数量一致啊?还会随着游戏进行而更新呢当然前两个数值都是我方星球的,所以肯定一样:
那为什么我方星球要加两组数据呢?咱们先在我方星球的一个地址上点右键,选“锁定”,这样这组数据就不会变化了:
随后进游戏,让敌人进攻吧,直到该星球沦陷。让星球沦陷很重要,因为这使我们有机会看到星球易手后有什么数据变化了:
回到CE,你会发现两个我方星球人口数值不再一样,第一个是被锁定了的原来的人口,第二个是现在的人口。另外所有变化了的数据都被标成了红色:
现在的任务是,试着在结构里找代表星球所属方的数值。这需要点运气,当然只需注意红色的数据,因为星球刚刚易手。
你会发现有一个成员(偏移454)非常值得怀疑:
这个数值在星球易手后从1变成了2,巧的是敌方星球对应的该数字也是2。这不得不让人联想到序号一类的东西,玩家是1而电脑是2。为了确认这一点,你可以试试把星球抢回来,看看这个数是不是又变成1了。
或者更激进些:直接将这个数值改成1——呵呵,回游戏后你会看到一个奇怪的现象:星球还是敌方的颜色,但人口标签又变回我方颜色了,并且敌人又派兵来攻打该星球了:
现在基本可以确定这就是我们要找的星球归属方的数值。有能力分清敌我了,就可以大刀阔斧地改了。选中前面那条指令,点右边“显示反汇编程序”:
又到了“内存查看器”:
选菜单“工具”--&“自动汇编”,会弹出个“自动汇编”的窗口。再连续点选菜单“模版”--&“自动汇编框架代码”、“模版”--&“代码注入”,一路确定后,一个基本的脚本就会生成:
大概解释一下:整个脚本就像一条修改器功能,有激活和移除两种状态。脚本分两块:[ENABLE]到[DISABLE]之间是激活该修改时执行的内容,[DISABLE]以后是移除该修改时执行的内容。
激活修改时,会在游戏进程内分配一块内存,将补丁代码写在里面。游戏跑到被注入的指令后,会跳到补丁里执行你加的指令,结束后再跳回去继续执行游戏。移除修改时做的正好相反:释放之前补丁的那块内存,并恢复原始被注入的指令。
我们将脚本修改成这样(我顺便加了些注释):
[ENABLE]
//从这里到“[DISABLE]”的脚本用于激活该修改
alloc(newmem,2048) //为补丁分配2KB内存,通常够用了
//声明标签,下同
label(returnhere)
label(originalcode)
label(exit)
newmem: //这里开始是前面分配的内存区
//将补丁代码置于此
pushfd //保存标志位(后面会解释)
cmp [eax+ //偏移454的值为1吗?
je exit //是的(即玩家星球),跳过下面的指令直接到exit
originalcode:
mov [eax+],ecx //按正常逻辑改写星球人口
exit:
popfd //恢复标志位(后面会解释)
jmp returnhere //回到被注入的指令下面继续执行游戏原来的代码
&game.exe&+F30CF: //这里是注入指令的位置
jmp newmem //这里原来的“mov [eax+],ecx”被替换为跳转到上面补丁位置的指令
nop //空指令什么也不做,只是为了填充原来的指令被替换掉后留的坑
returnhere: //原来的“mov [eax+],ecx”下面一条指令位置,补丁代码结束后跳到这里
[DISABLE]
//从这里开始的脚本用于移除该修改
dealloc(newmem) //释放掉为补丁分配的那2KB内存
&game.exe&+F30CF: //在被注入的指令位置
mov [eax+],ecx //恢复这里本来的指令
//这里也可以直接写机器码:db 89 88 B4 04 00 00复制代码
你可以直接将这段脚本复制粘贴到你的“自动汇编”窗口里。
修改的基本原理是:先判断偏移454处的星球所属值是不是1,是的话(表示玩家星球)就跳过那条MOV指令,不让人口减少;否则的话让人口正常减少以保证玩家能正常进攻电脑。
为什么要加PUSHFD、POPFD这两条指令?你可以看看被注入的指令前后两条两条指令:
COMxx是比较指令,会根据两个操作数比较结果设置标志位;而Jxx是条件跳转指令,会根据标志位决定是否跳转。这两类指令是天生一对,一般挨在一起配合执行。所以如果对当中的指令注入,那注入的补丁必须保持标志位不变,这就是补丁里PUSHFD、POPFD的作用。懂汇编的人可能又会问了,那为啥这代码非要把一条无关的MOV指令插在当中当电灯泡呢?好吧,这涉及到CPU超标量流水线的优化问题,已经超出本文的范畴了。
最后点选菜单“文件”--&“分配到目前的CT表单”然后关闭窗口,不要去点下面的“运行”按钮:
回到CE主界面,你会发现地址列表里多了一行自动汇编脚本:
现在试着像锁定金钱一样点前面那个方框,修改就激活了。回到游戏里看看是不是敌人再进攻人口就不减了?再试着进攻敌人,看看是不是地方星球人口照减?
我们的无敌修改基本大功告成了什么?你还想进攻时一击必杀?喂喂,改得太厉害游戏就没意思了。不过这也简单,只要在刚才的脚本里加一行清零敌方星球人口的指令就行了:
xor ecx,ecx复制代码
再激活修改后回到游戏,派一两艘飞船进攻敌人的星球试试,是不是逆天了?
好,高级修改就讲这么多了。觉得不错就帮忙顶一下哦~
有时间我再写个生成修改器的教程。。。
本帖子中包含更多资源
才可以下载或查看,没有帐号?
主题帖子积分
高级玩家, 积分 460, 距离下一级还需 140 积分
高级玩家, 积分 460, 距离下一级还需 140 积分
自己顶一下,顺便再占一楼
主题帖子积分
游戏狂人, 积分 1733, 距离下一级还需 267 积分
游戏狂人, 积分 1733, 距离下一级还需 267 积分
帮顶,顺便膜拜一下,俺以前也试用过一次CE,失败后就木有继续尝试啊
主题帖子积分
游戏达人, 积分 2144, 距离下一级还需 1356 积分
游戏达人, 积分 2144, 距离下一级还需 1356 积分
帮你顶一下~~
主题帖子积分
高级玩家, 积分 460, 距离下一级还需 140 积分
高级玩家, 积分 460, 距离下一级还需 140 积分
ofortuna 发表于
我会说我会心算1.00到1000.00的dh换算麽。。。
一般来说不必考虑哪些1,03,1,07啥的,偶尔可能会遇到游戏 ...
你说的都是定点数吧?定点数在知道倍率前除了低阶搜索外还有什么好办法吗?
FPE确实是经典,偶从DOS上的3.0用到Windows的FPE2000。。。
另外你说的游戏修改不一定局限于动态修改这点我非常认同,事实上我更倾向于修改规则文件或者通过MOD修改(如果游戏支持的话),感觉更官方一点。。最经典的恐怕就是红警的rules.ini了
主题帖子积分
游戏狂人, 积分 1142, 距离下一级还需 858 积分
游戏狂人, 积分 1142, 距离下一级还需 858 积分
ioncannon 发表于
你说的都是定点数吧?定点数在知道倍率前除了低阶搜索外还有什么好办法吗?
FPE确实是经典,偶 ...
我心算的才不是整数哦。。。而是1.00,2.00
倍率换算仅仅低阶搜索很难发现规律,比如大航海4的城市规模数据就很奇怪,一个字节表示游戏中一位数字。。。有些游戏也有类似问题,很难说丫到底是十进制表达还是十六进制存储。。。
还有一种事件开关问题,这在处理倭国十八插AVG里很实用,若干事件各占一个比特而非byte,你要心算布尔变量。。。
主题帖子积分
高级玩家, 积分 460, 距离下一级还需 140 积分
高级玩家, 积分 460, 距离下一级还需 140 积分
终于把提高篇更新了,累
主题帖子积分
高级玩家, 积分 460, 距离下一级还需 140 积分
高级玩家, 积分 460, 距离下一级还需 140 积分
主题帖子积分
高级玩家, 积分 460, 距离下一级还需 140 积分
高级玩家, 积分 460, 距离下一级还需 140 积分
主题帖子积分
游戏亡灵, 积分 -1, 距离下一级还需 1 积分
游戏亡灵, 积分 -1, 距离下一级还需 1 积分
顶一下,拿分走人
主题帖子积分
初级玩家, 积分 74, 距离下一级还需 26 积分
初级玩家, 积分 74, 距离下一级还需 26 积分
ioncannon 发表于
不是没人看,你没设回复后可见,所以只能手工帮顶。。另外,题目可以写得绚丽一些。毕竟不是paper,有一说一要不得。。
主题帖子积分
高级玩家, 积分 460, 距离下一级还需 140 积分
高级玩家, 积分 460, 距离下一级还需 140 积分
主题帖子积分
高级玩家, 积分 460, 距离下一级还需 140 积分
高级玩家, 积分 460, 距离下一级还需 140 积分
ding~~~
主题帖子积分
初级玩家, 积分 74, 距离下一级还需 26 积分
初级玩家, 积分 74, 距离下一级还需 26 积分
节后帮顶兼催稿~~
主题帖子积分
高级玩家, 积分 322, 距离下一级还需 278 积分
高级玩家, 积分 322, 距离下一级还需 278 积分
写得不错。不过游戏修改我比较喜欢静态修改。因为,毕竟,需要修改的不多。修改得多了游戏没意思了。
正常情况下,修改几次的静态数值比找一个动态数值要快很多。
主题帖子积分
高级玩家, 积分 516, 距离下一级还需 84 积分
高级玩家, 积分 516, 距离下一级还需 84 积分
关注下不错
主题帖子积分
中级玩家, 积分 168, 距离下一级还需 82 积分
中级玩家, 积分 168, 距离下一级还需 82 积分
水平很高啊,值得学习
主题帖子积分
中级玩家, 积分 235, 距离下一级还需 15 积分
中级玩家, 积分 235, 距离下一级还需 15 积分
不错学习了
主题帖子积分
游戏达人, 积分 2112, 距离下一级还需 1388 积分
游戏达人, 积分 2112, 距离下一级还需 1388 积分
[size=18.6667px]WQERQWERQWERQWERASDFASDFASD
主题帖子积分
游戏达人, 积分 2112, 距离下一级还需 1388 积分
游戏达人, 积分 2112, 距离下一级还需 1388 积分
qwerqwerwerqwerqwerqwerqwe
Powered by

我要回帖

更多关于 qq捕鱼大亨 的文章

 

随机推荐