继续上次,上次给出的开全图,是不能看透盟军的裂缝产生器的,有的修改器的开全图是可以看透的。它的原理是修改了判断迷雾的一个关键跳转。此处不多说,本人觉得不够优雅——能少改动代码则少改动代码。当然他也有自己的优势——看透裂缝产生器。可能在最后补充中,再加上吧。

当然,如果你事先查找了一些关键字符串,可以直接快速的定位到关键位置,不需要像我利用升级箱子来找。

(七)额外核弹——可能是全球首发

笔者在百度了那个升级箱子都能带来什么之后,发现那个箱子有可能会得到一次额外的核弹发射机会,我就在想能不能调用这个CALL,具体位置由上面确定的字符串已经可以确定,关键的就是获得调用的参数。

上图最后一个JMP就跳到函数尾部了,这个捡到核弹的处理还是比较短的。直接尝试调用最后一个CALL<添加建造选项>。跟入个CALL发现需要3个参数,1寄存器,2个堆栈。分析参数来源:

move    ecx,14
call    0069F7E0
...
mov    ebx,eax
...
mov    eax,[ebx+98]
mov    ecx,008324E0
push    eax
push    1F

最初我以为只用上面一个函数就够了,前面都是初始化什么的,结果是——只增加了一个核弹选项,却不是就绪状态,也不能倒计时……

于是上面一个CALL 0069CCF0也是必须的(一共4个CALL,一个是输出调试信息,一个是上面的CALL 0069F7E0得到一个参数值,另一个是增加选项,不是它还有谁?),既然上一个CALL的效果是增加核弹选项,这个CALL就是大概调整CD咯。那这个CALL的参数是什么?跟进分析,3个固定PUSH,一个ECX。分析参数来源:

mov     edx,[ecx+1B4]    //来源于调用此函数的参数
...
mov     edx,[edx+1A0]
mov     [esp+3C],edx
...
mov     eax,[ebx+98]      //EBX和上面来源相同
mov     ecx,[esp+3C]
mov     ecx,[ecx+eax*4]

最重要的就是上面的ECX参数了,程序不断在这里,怎么可能知道……正常情况下,能捡到一个核弹箱子的概率是多大,我是不想试,何况单人游戏,箱子出现的还那么少。想到瘸腿大象(修改高手,已经不再修改游戏了,从他的教程中收益良多)的魔兽修改教程中,都是用的专门的地图,相当方便。幸好有大神已经写出了红警地图编辑器,费好大劲建好一张地图。遇到不少问题,不知道错哪里,这不是主题,不深究

断下后来回跟踪好多层ECX又从哪里来,貌似都跟到游戏的消息循环了?!搞了一下午,然后觉得EDX的值好眼熟,突然发现EDX=[ECX+1B4]=玩家数据地址,WTF!果断写脚本,稍微改造下,用CE也是可以的。

pushad
mov ecx,14
call 0069F7E0
mov ebx,eax
//调整核弹CD
mov eax,[ebx+98]  //超武编号
mov edx,[00A35DB4]
mov ecx,[edx+1A0]
push 0  //初始状态,1=等待
push 0  //对应建筑
mov ecx,[ecx+eax*4]
push 1  //1=一次性机会。游戏设计问题,核弹必须=1,其他超武可以=0
call 0069CCF0
//增加核弹攻击选项
mov eax,[ebx+98]  //超武器编号
mov ecx,008324E0
push eax
push 1F
call 0067C530
popad
ret

搞定!注意,如果你之前造好了核弹,并已经进入CD了,是没有效果的

(八)添加任意建造选项——额外核弹带来的惊喜1

进入0067C530这个函数:首先是一个Switch,然后看到一个字符串

新建造选项!莫非这个还可以增加其他建筑,兵种什么的?如果是的话,那个PUSH的1F参数,应该是类型(比如基础建筑,防御建筑,步兵兵种等等),EAX应该是具体编号。

将上面的脚本,更改了两个CALL之前EAX的赋值(原本是0,改成1,2,3等),果然增加了其他超级武器的一次使用机会,但是使用后选项不会消失……找原因未果,猜想是游戏中设计只有核弹有一次性使用机会,其他超级武器也就不必要消失。

试图修改1F为1D或20来添加其他建造选项,比如建筑物或者兵种,游戏却崩溃了。马后炮一次,这个字符串前面的Switch是关键。

更改为上图中的一些值后,果然能添加一些其他建造选项了,逐步确定:

03=飞机,07=建筑物,10=步兵,1F=防御技能(超级武器、伞兵),28=车船

那么这个CALL单独调用,就可以完成增加一个建造选项的功能了,脚本如下:

pushad
mov ecx,008324E0  //数据基址
push 36  //添加的建筑项,此处是核弹发射井
push 07   //添加的选项类型,此处是建筑物
CALL 0067C530
popad
ret

但是最初,我不是这样确定的。。我猜想这个函数并不是这里专属的,在函数头下断点。当你展开基地车的时候,会获得建造发电站的选项;建造完发电站,获得矿场和兵营的选项。建造任意单位,需要刷新建造选项的时候,果然成功断下来了,然后查看堆栈传进来的值得到03,07及其含义的。

各种建筑物的编号,我也用最笨的方法逐一确定了——依次使用上面的脚本添加,还有一些无法建造的地图上的其他元素,比如爱因斯坦实验室什么的:

00=发电厂
01=盟军矿石精炼厂
02=盟军建造厂
03=盟军兵营
04=沙袋
05=盟军维修厂
06=盟军作战实验室
07=盟军战车工厂
09=磁能反应炉
0A=苏联作战实验室
…限于篇幅省略,见资料打包

盟军建造厂和苏军建造厂,就是指基地,是可以直接平地而起,不需要基地车!我都惊呆了当然是有条件的,你只有有了一个盟军建造厂,才可以直接建造盟军建造厂,苏军同理。而其他建筑物,只要有任意基地就可以,巨炮除外。。

对于步兵,也有对应的具体编号,同见资料打包。战车战船,无资料,苦力活……因为有了后文的科技全开,不必要

这个CALL的用途,可以在没有开超级武器的情况下,给自己添加上建造超级武器的选项。一旦建造任意单位,该选项就会消失,因为游戏刷新了当前可建造项。网上有种修改器,需要在上方修改器增加的选项条中选择超级武器类型,然后建造围墙,来建造超级武器。文中这种方式是不是更优雅些?(无贬义)建造围墙的修改方式,应该是找到了建造CALL,修改了传入的参数,具体没研究过这种方式是修改了建造选项对应的建筑编号(第七篇有介绍)。

To be continued…

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

转载于:https://www.cnblogs.com/viewll/p/4769473.html

红色警戒2修改器原理百科(三)相关推荐

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

    (二十一)转换阵营--很炫酷却很简单 这个功能,貌似当初很火很轰动,感觉很强大--联网对战中控制对手单位,卖掉对手建筑!右边的建造选项也是对手的,你可以替对手建造单位.可是这个原理很简单,游戏中一个很 ...

  2. Qt实现的红色警戒3修改器

    前言 这部修改器制作有一段时间了,但是一直没出教程.今天利用周末空闲写篇教程,给后来者指路的同时也加深自己对游戏修改器的理解,大佬就随便看看吧 浏览了一下网络,形形色色的单机游戏修改器教程,但是基本只 ...

  3. 七日杀16.1 服务器修改器,七日杀三十二项32位修改器_七日杀 a16.1b1多功能三十二项修改器-66街机网...

    资源说明: 七日杀 a16.1b1多功能三十二项修改器32位[潇潇蓝龙],由"潇潇蓝龙"制作,一款全功能修改器,基本上是全能力开关,支持任意调整生物伤害.方块距离.生物距离.体力消 ...

  4. 【术】游戏内存修改器原理及游戏敏感数值加密建议

    介绍市面上主流游戏内存修改器的原理,对症下药,让游戏从数据加密层面上更好的抵御这类内存修改器. 主流游戏内存修改器有三大内存搜索功能: 1. 基础数值搜索 2. 模糊搜索 3. 反加密搜索 基础数值搜 ...

  5. 《红色警戒2·尤里复仇》-第三章 无敌与秒杀

    目录 目录 第三章   无敌与秒杀 名人虾言: 荒塘爽一爽: 思考:秒杀的原理是什么?怎么找? 逆向分析 ①找血量 ②找出是谁改写了这个地址 ③修改 对象结构(重点) ①找对象结构地址 ②打开CE的结 ...

  6. 利用cheat engine以及VC编写游戏修改器

    cheat engine的介绍已经完毕了,下面就是怎么使用它的问题,这里写一个稍微有意思一点的,也有实际用途的话题,就是来编写自己的游戏修改器. 这篇文章参考了http://www.pediy.com ...

  7. 打造自己的游戏修改器和内存补丁

    相信很多人打游戏的时候都用修改器,这里我介绍怎样用VB编写修改器. 1.其实修改器原理很简单,一般来说,在游戏运行的时候我们对游戏内存空间中必要的数据进行修改就可以了.举个例子来说,一款拳皇模拟器里游 ...

  8. 【v2.x OGE-example 第二章(第二节) 修改器的使用】

    2019独角兽企业重金招聘Python工程师标准>>> [v2.x OGE-example 第二章(第二节) 修改器的使用] 1. 位置:Modifier_example --> ...

  9. 单机游戏修改器——从计算机基础学科出发

     游戏修改器--从计算机基础学科出发 qq:610551883@qq.com 主要针对单机游戏.从操作系统层面对如何做进行了说明. 认识内存  图1所示的为某一代内存条的硬件示意图,任何与CPU打交道 ...

  10. (8)3DMAX之车削修改器、曲面修改器、放样建模(放样建模原理、放样变形器、拟合放样)

    一.车削修改器 1.图形按照轴心线旋转 生成原理:通过我们绘制出来的二维图形,按照我们所指定的轴心线进行旋转所生成得到的三维模型结构 2.更改"轴"的位置:两种方法 方法1:进入& ...

最新文章

  1. apue对java_[apue] 一个快速确定新系统上各类限制值的工具
  2. 正则表达式提取括号里面的值
  3. linux系统编程:read,write与lseek的综合应用
  4. lamda表达式和stream
  5. java end_Java Matcher end()用法及代码示例
  6. 速来围观:飞时达土石方计算软件FastTFT V15.2正式升级发布
  7. 用游戏编辑器制作MOD脱颖而出
  8. 如何驱动直流电机H桥驱动笔记
  9. 英语单词词性顺口溜_英语单词词性分类
  10. 区块链在供应链金融中的应用分析
  11. 算法面试中:时间复杂度和空间复杂度是什么?
  12. 等级保护测评—Windows
  13. 光与影的地平线:手机AI摄影全析
  14. Laragon的安装、注意事项
  15. 微信小程序尺子样式滚动选择器组件
  16. 强力破解E-mail密码三种方法(转)
  17. Maven账户设置非明文密码
  18. 电脑好用的ftp软件,推荐10款电脑好用的ftp软件
  19. 图片流量节省大杀器:基于 CDN 的 sharpP 自适应图片技术实践
  20. 博客排名,终于进入前100啦!

热门文章

  1. CUDA中的Warp Shuffle
  2. 手机奥维地图在测量中的应用
  3. Google Chrome浏览器调试入门————转载只为自己查看方便
  4. 中科院软件所的毕业去向(硕+博)
  5. steam无盘服务器,网吧服务器如何安装steam平台和正版游戏?
  6. 《留住好员工》-读后感
  7. 在自己网页浏览器端通过websocket接入海康摄像头实时视频-方案二
  8. 图解splay / splay模板 / p3369
  9. unity 引用 移动mm 支付sdk
  10. 苹果宣布前CEO史蒂夫·乔布斯逝世