红色警戒2修改器原理百科(八)

(十五)科技全开2——问题终结

上一篇留下的问题,进行修改后为什么没有效果。试图让游戏添加所有可能的建造项,但是游戏中试图刷新建造项(建造新单位)后却没出现我们期望的。这是一个很简单,却难住我一段时间的问题。最初我以为是指令写错了,对比好几遍终于确信没有错误。这么解释这个问题,游戏会在合适的时候(通常是建造了新单位后)会刷新你的建造选项,刷新包括添加和删除。很不幸的是,游戏刷新建造项的流程是:添加当前可建造的->删除当前不可建造的,这是我发现的”证据”,先发出来:

所以,当我们试图刷新建造项来验证我们修改的成果时,刚添加上的东西,立马被删除了,也就看不到效果了。怎么找到删除建造项的地方呢,当初我们找到添加建造项的地方是不经意间带来的惊喜。现在没有惊喜了,留给笔者的是问题!

好在,笔者有新发现——ConstructionOption.nCount,查找谁修改了它就得到指令:0068071B mov [ebp+50],edx,然而当我试图发现一个删除建造选项的CALL时,却没能发现。。。研究半天,我才意识到我们所在的位置就是删除所有不能建造的选项的CALL内部,好比拿着手机打电话突然发现手机不见了——————其实你还可以通过这个nCount定位到添加建造选项的地方,那么可以有这么一条线索:找CD->快速建造+建造项结构->添加/删除建造项->科技全开->科技加强->…

既然这个CALL是删除不满足条件的建造项,一定有判断跳过满足条件的咯。往上找,惊喜地发现我们之前做的标签注释(随手注释总是没错的):

结果不用说了,困扰多年的难题终于解决了。而且红警修改大师也是修改的这个之前我没发现的地方。(话说我是先想办法找到了这个地方,然后想办法定位到附近,我承认我作弊了,我站在了别人肩膀上……原谅我也只是修改游戏的新手)

我试图NOP掉调用这个CALL的上一层的指令,结果发现基地都没了,建造选项还在,不优雅,所以还是选择了改跳转。

有了上图的分析,可以填上上一篇挖的坑了,ConsturctionOption和ConstructionDescriptor在没有指针的情况下是如何联系起来的,答案就是CALL< 00482C00=获取建造描述对象>。

(十六)科技加强——可怜的总统只值$10

你现在已经几乎已经有足够的资料去实现科技加强了,真的。现在你从上篇中有了以下资料:

1.(建筑物)建造描述对象(指针)数组,你可以在附近代码找到步兵的、战车的、飞行器的;

类型编号      类型名       Contruction对象基址
0x03          飞行器       00A3D288
0x07          建筑物       00A35CDC
0x10          步兵          00A40354
0x28          战车          00A35D4C

2.建造描述对象ConstructionDescriptor的成员变量的偏移;

你缺少的是:

3.你想启用的兵种的编号,即在数组中的索引(十进制):

0=E1;美国大兵
1=E2;苏联动员兵
2=SHK;磁爆步兵
3=ENGINEER;盟军工程师
4=JUMPJET;火箭飞行兵
5=GHOST;海豹部队
6=YURI;尤里
7=IVAN;疯狂伊万
8=DESO;生化步兵
9=DOG;苏联军犬
...

更详细的可以百度,或去本系列结尾下载所有相关资料。

例如:22=奶牛,那么启用奶牛,就将地址[[00A40354]+22*4]+55C设置为1。

你现在除了启用隐藏的兵种,还应该想到可以修改单位造价和售价。

这篇就很尴尬,再加一小节就太长,不加就太短。但是该睡觉了,所以选择不加!

留个小彩蛋吧,第三篇中提到有的修改器通过围墙建造超级武器,通过电厂建造复制中心,现在你可以做到了,试着去修改ConstructionOption.nID~

Tip:不要尝试用电厂改超级武器,用围墙改复制中心,用工程师改V3火箭……因为类型不一样,也不要去修改nType,因为就算你改了类型,建造选项还是在原来选项卡下,程序还是把它当成原来的类型处理,结果就是造不出来,也取消不掉。

To be continued…

转载请注明来源,http://www.cnblogs.com/viewll/p/4777068.html

时间: 2024-12-09 23:42:38

红色警戒2修改器原理百科(八)的相关文章

红色警戒2修改器原理百科(五)

都第五篇了,好长,这是个坑,没多少人看为什么要写这个,我就当是为了部落--还有什么没写?选中单位3星,随处建造(优雅),科技全开,转移单位所属(优雅),立即胜利(这个这个不怎么好意思发,我自己没找到).还有地图其他玩家数据,当然还有我还没试过也可以写的出售建筑CALL,自动修理,枚举地图上全部单位(然后可以配合出售建筑,卖掉全部不属于自己的)还要写几篇才能完结呢..还还有心灵探测(从来不想实现,造个心灵探测器会死),奶牛总统等特殊兵种(红警全能王谷子猫绿色珍藏版中的自定义函数好长好复杂,红色警戒

红色警戒2修改器原理百科(一)

红色警戒2,一个经典的游戏.我上初中时经常周末回到家就开始玩任务模式,然后半天过不去一关,就开外挂--开外挂虐冷酷的不开超级武器电脑. 先说一下版本,V1.006.共和国之辉只是基址不一样,其他版本可参考思路.当时比较好用一个外挂是胜利之歌的内存修改器,还有就是红警全能王,各种全能,全能的我不怎么喜欢用(功能默认全开,没得选). (一)最简单的开始--修改金钱 当初刚刚接触Cheat Engine,只会改个金钱.快速建造.地图全开.科技全开什么的完全不知道怎么办.现在貌似突然领悟了什么,回头看看

红色警戒2修改器原理百科

红色警戒2,一个经典的游戏.我上初中时经常周末回到家就开始玩任务模式,然后半天过不去一关,就开外挂……开外挂虐冷酷的不开超级武器的电脑. 先说一下版本,原版V1.006.其他版本只是基址不一样,可参考思路,如共和国之辉.当时比较好用一个外挂是胜利之歌的红色警戒2内存修改器,还有就是红警全能王——各种全能,全能的我不怎么喜欢用(功能默认全开,没得选). (一)最简单的开始——修改金钱 当初刚刚接触Cheat Engine,只会改个金钱.快速建造.地图全开.科技全开什么的完全不知道怎么办.现在貌似突

红色警戒2修改器原理百科(十)

(二十一)转换阵营--很炫酷却很简单 这个功能,貌似当初很火很轰动,感觉很强大--联网对战中控制对手单位,卖掉对手建筑!右边的建造选项也是对手的,你可以替对手建造单位.可是这个原理很简单,游戏中一个很重要的指针CurrentPlayer(即game.exe+635DB4这个基址)指向本地玩家的数据,你所有的操作依据最终都来源于此.如果你把这个指针指向对手的数据,游戏就认为你原本就是对手--这是游戏设计的缺陷. 但是只在联网对战中有效.单机时也有一定作用,能看到电脑的科技是全开的--当然除了超级武

红色警戒2修改器原理百科(三)

继续上次,上次给出的开全图,是不能看透盟军的裂缝产生器的,有的修改器的开全图是可以看透的.它的原理是修改了判断迷雾的一个关键跳转.此处不多说,本人觉得不够优雅——能少改动代码则少改动代码.当然他也有自己的优势——看透裂缝产生器.可能在最后补充中,再加上吧. 当然,如果你事先查找了一些关键字符串,可以直接快速的定位到关键位置,不需要像我利用升级箱子来找. (七)额外核弹——可能是全球首发 笔者在百度了那个升级箱子都能带来什么之后,发现那个箱子有可能会得到一次额外的核弹发射机会,我就在想能不能找到这

红色警戒2修改器原理百科(二)

上一篇中介绍了,金钱的修改,瞬间建造以及快速建造.不多说,本篇开始 (四)无限电力--共用代码处理 电力和负载的精确数值,可以选中一个发电厂来看 直接给出电力的地址:[game.exe+635DB4]+52D0 负载地址:[game.exe+635DB4]+52D4 红警2中,电厂提供的电力根据其健康程度是不同的,生命值越少提供的电力越少.所以当电厂被攻击时会更新电力值.当新放置建筑,或建筑被摧毁,卖掉建筑物,都会更新电力和负载.实现无线电力,可以把电力改大,也可以将负载减小.我选择第二种,将负

红色警戒2修改器原理百科(九)

完结了一个相对比较复杂的修改,其实说起来也简单,如果不去理解数据结构只追求修改效果的话.笔者的一个原则就是要搞明白:怎么找到的,怎么改,为什么.一个线索无法伸展了,换个点,就来下面这个吧. (十七)任意建造--大多数人离优雅只差一步 这次我们想试试新方法,这个方法在一些游戏中有奇效,简单快捷方便,一秒钟满足你!有时很有效的的大杀器--字符串搜索.从我们最初修改地图全开时,我们就发现游戏程序中包含一些字符串,那么不能建造有没有对应的字符串呢,有的话是什么字符串呢?字符串最常见的是现实在游戏界面中,

红色警戒2修改器原理百科(六)

先说一件事情,昨天我在继续OD调试游戏的时候,运行错了版本,然后OD的备注.标签和断点通通没有了.喜大普奔上天关上了一扇门,然后我开了一扇窗户——抛弃之前的枷锁,重新出发,目前来看可能是找到了判断地图触发器的整个过程,待进一步测试:还找到了立即胜利的源头. 让我们书接上回. (十三)枚举地图玩家——隐藏在背后的黑暗势力 如果细心的你在进行上一步的疯狂的掠夺的时候,发现了没人占有的建筑物的pOwner不是NULL,你就可能发现一片新大陆.是谁拥有了这个建筑物,却还能显示没有归属. 前一篇最后一个图

基于C++ Qt实现的红色警戒3修改器(Github开源)

前言 这部修改器制作有一段时间了,但是一直没出教程.今天利用周末空闲写篇教程,给后来者指路的同时也加深自己对游戏修改器的理解,大佬就随便看看吧 浏览了一下网络,形形色色的单机游戏修改器教程,但是基本只实现了一到两个功能,GUI图形界面也没有.网站上能下载到的实现很多功能的修改器却又不开源,对新手不够友好 为什么选择红警3而不是其他游戏呢? 其一,它是单机游戏,制作网络游戏修改器(外挂)是违法的,根据<计算机信息网络国际联网安全保护管理办法>第六条规定:“任何单位和个人不得从事下列危害计算机信息