红色警戒2修改器原理百科(九)
完结了一个相对比较复杂的修改,其实说起来也简单,如果不去理解数据结构只追求修改效果的话。笔者的一个原则就是要搞明白:怎么找到的,怎么改,为什么。一个线索无法伸展了,换个点,就来下面这个吧。
(十七)任意建造——离优雅只有一步之遥
这次我们想试试新方法,这个方法在一些游戏中有奇效,简单快捷方便,一秒钟满足你!有时很有效的的大杀器——字符串搜索。从我们最初修改地图全开时,我们就发现游戏程序中包含一些字符串,那么不能建造有没有对应的字符串呢,有的话是什么字符串呢?字符串最常见的是显示在游戏画面中,红警中是语音。当不能在某处放置建筑物的时候,你会听到“Can Not Deploy Here”,我们就搜索“deploy”字符串,如果听不懂“deploy”就试试“here”嘛。
OD搜索字符串,然后查找,找到如下结果:
有3个,双击来到对应位置,全部下断点。为什么是“eva_”开头,猜想因为游戏中是个女声提示,“Eva”是一个女名“伊娃”。吐槽下,难道是男声还要“bob”开头!言归正传,接下来就是去洗洗脸,坐等游戏断下来?
好了,等了3个多小时,游戏终于断下来了。你信吗?而且是断在了0049BDEB,国际惯例,找跳转——观察周围有没有跳转不执行这段代码。
可以看出,是不满足放置的条件,跳过来的。根据OD提示,跳转来自0049BC1C和0049BC2A,尝试NOP替换~达到传统效果:虽然显示是红色,但还是放置成功了。但是显示的是红色,很不优雅啊!刚开始从网上下载修改器用的时候(我是从红警知道游戏竟然有修改器、外挂这东西的),我就在想为什么不能是绿色的?
我们来看看程序中大概是什么样的流程:
//判断能否放置
if(canDeploy() == True)deploy();
elsecanot();//绘制提示颜色
if(canDeploy() == True)drawGreen();
elsedrawRed();
上面看出,我们只要修改了canDeply()这个函数,就能同时改变绘制的颜色和放置判断。我们已经找到了关键的跳转了,上面附近就应该关键的CALL。跟踪这个函数的执行,可以找到关键指令:0049BBC9 call 004991D0。使其返回1就可以了,修改如下:
004991D0:
mov eax,1
retn 10 //平衡堆栈
这样还直接省去了游戏复杂的判断,提高了执行效率。
红色警戒2修改大师,修改了第一个跳转,效果是相同的。也是我尝试这么多红警修改器以来第一个能显示绿色任意建造的修改器。其它修改器离优雅只有一步之遥……用破解中的术语就是,关键跳和关键CALL:改跳转只能该处起作用,改CALL可以影响所有调用的地方。
(十八)自动修理——所有人心中的痛
由于之后就没有什么新的寻找思路和方法了,在此之后只给出提示和结果。
方法1.字节,建筑物的+5B8偏移 = 修理标志;CE搜索字节类型,修理状态查找1,不修理查找0,反复几次后结果数量不再减少,筛选游戏单位地址后面不太远的地址即是。
方法2.调用CALL
//作用:修理建筑
//思路:改写修理标记,返回一层
//备注:参考指令下方Case16是出售单位;联网可用
//参考指令:004B67FF call [eax+184]
pushad
mov ecx,单位地址
mov edx,[ecx]
push -1
call [edx+184]
popad
ret
结合第五篇讲的的遍历游戏中所有单位,并判断归属,选择上述其中一种方法即可。
(十九)出售单位
//作用:获取单位出售价格
//思路:卖掉建筑物金钱增加,返回1层
//参考指令:0044610C call [eax+29C]
//...保护现场
mov ecx,单位地址
mov eax,[ecx]
call [eax+29C]
//...恢复现场及返回//作用:出售单位,可以直接出售奶牛刷钱,不需要复制工厂
//思路:地图编辑器,类似转移所属
//备注:此函数联网不可用;可以卖出非己方单位
//参考指令:006AE13B call [edx+188]
pushad
mov ecx,单位地址
mov edx,[ecx]
push 1
call [edx+188]
popad
ret
(二十)建造队列上限
1.搜索出当前队列剩余数目
选择一个兵种建造,暂停(为了方便),然后建造另一个同类型(都是步兵,或都是战车…飞机不属于战车,战船也不属于)兵种,增加或减少此兵种的队列数量,CE精确数值搜索即可。注意,暂停的那一个单位因为已经开始建造了,不包含在等待建造的队列数目之内。
例如:
,要搜索10
2.查找谁改写了
找到增加的那一条指令(004B94FB mov [esi+10], ecx),附近可以分析出[game.exe+439848]+E8=最大队列数目。当然也可以改跳转。
To be continued…
转载请注明来源,http://www.cnblogs.com/viewll/p/4777694.html
转载于:https://www.cnblogs.com/viewll/p/4777694.html
红色警戒2修改器原理百科(九)相关推荐
- 红色警戒2修改器原理百科(十)
(二十一)转换阵营--很炫酷却很简单 这个功能,貌似当初很火很轰动,感觉很强大--联网对战中控制对手单位,卖掉对手建筑!右边的建造选项也是对手的,你可以替对手建造单位.可是这个原理很简单,游戏中一个很 ...
- Qt实现的红色警戒3修改器
前言 这部修改器制作有一段时间了,但是一直没出教程.今天利用周末空闲写篇教程,给后来者指路的同时也加深自己对游戏修改器的理解,大佬就随便看看吧 浏览了一下网络,形形色色的单机游戏修改器教程,但是基本只 ...
- 【术】游戏内存修改器原理及游戏敏感数值加密建议
介绍市面上主流游戏内存修改器的原理,对症下药,让游戏从数据加密层面上更好的抵御这类内存修改器. 主流游戏内存修改器有三大内存搜索功能: 1. 基础数值搜索 2. 模糊搜索 3. 反加密搜索 基础数值搜 ...
- 利用cheat engine以及VC编写游戏修改器
cheat engine的介绍已经完毕了,下面就是怎么使用它的问题,这里写一个稍微有意思一点的,也有实际用途的话题,就是来编写自己的游戏修改器. 这篇文章参考了http://www.pediy.com ...
- 打造自己的游戏修改器和内存补丁
相信很多人打游戏的时候都用修改器,这里我介绍怎样用VB编写修改器. 1.其实修改器原理很简单,一般来说,在游戏运行的时候我们对游戏内存空间中必要的数据进行修改就可以了.举个例子来说,一款拳皇模拟器里游 ...
- 单机游戏修改器——从计算机基础学科出发
游戏修改器--从计算机基础学科出发 qq:610551883@qq.com 主要针对单机游戏.从操作系统层面对如何做进行了说明. 认识内存 图1所示的为某一代内存条的硬件示意图,任何与CPU打交道 ...
- 游戏修改器的基本工作原理
所谓游戏修改器,主要是通过修改游戏程序的内存数据或存盘文件来修改游戏中的相关数据,使之达到"无敌"等效果. 游戏修改器主要分为两类:单一游戏的修改器和通用游戏修改器.顾名思义,前者 ...
- 游戏修改器、外挂原理
修改内存. 通过一款第三方软件金山游侠2002便可以找到那些存储数据的地址,在我们玩游戏的过程中,通过单一变量法来分析某种属性的地址在哪里,比如说玩游戏的过程中生命全满然后保持其他不变将生命值减少然后 ...
- (8)3DMAX之车削修改器、曲面修改器、放样建模(放样建模原理、放样变形器、拟合放样)
一.车削修改器 1.图形按照轴心线旋转 生成原理:通过我们绘制出来的二维图形,按照我们所指定的轴心线进行旋转所生成得到的三维模型结构 2.更改"轴"的位置:两种方法 方法1:进入& ...
- python怎么制作游戏修改器_Mancala (Python Edition)游戏修改器_九游手机游戏
Mancala (Python Edition)游戏修改器游戏攻略 Mancala is an ancient family of board games. This version is known ...
最新文章
- 润乾集算报表优化应用结构之混合数据源
- How to enable mod_rewrite on Apache?
- 韩国防部长会见美驻韩大使 或谈韩日舰机矛盾
- 【SDOI2014】数表【莫比乌斯反演】【树状数组】
- ASP.Net string 类的扩展方法 [转]
- 怎么用计算机弹c哩c哩,计算器音乐c哩c哩乐谱 | 手游网游页游攻略大全
- 【ES10(2019)】Symbol 扩展 Symbol.prototype.description
- python 批量查询网页导出结果_李亚涛:python批量查询网页收录情况并计算收录率...
- memset函数的使用
- 二分类混淆矩阵结构_「混淆矩阵」4.4.2分类模型评判指标(一) - 混淆矩阵(Confusion Matrix) - seo实验室...
- cm-14.1 Android系统启动过程分析(二)-Zygote进程启动过程
- タイトル キャッスルファンタジア ~エレンシア戦記~リニューアル 艾伦西亚战记(艾伦希亚战记)日文攻略
- SIFT经典论文翻译版
- android 获取 meid 代码,Android 各个版本获取IMEI、MEID
- 是CEE、DCB、DCE还是EEDC?
- codesign 想要访问您的钥匙串中的密钥
- 计算机专业树立职业理想,对理想职业的要求
- 线代[4]|浅谈数域
- 基于java+jsp的酒店预订系统
- 百思不得姐框架(一)
热门文章
- iPhone手机绑定163邮箱解决方案
- 计算机 host id是指,关于如何修改hostid的问题Windows系统 -电脑资料
- 跟着团子学SAP CS:SAP CS(客户服务)模块概览
- 基于auto.js的安卓抢购软件---淘宝抢购小助手(不完善,仅供参考)
- 最优化算法---可行方向之Frank-wolfe 方法(求解非线性规划问题)
- MapReduce实现商品推荐算法(用户购买向量*商品同现矩阵)
- 9个优秀的标签云免费生成工具
- 水星怎么设置网速最快_水星怎么设置路由器的网速
- 前向断言/前向预查/正向断言/正向预查(lookahead assertions)
- 将APPDATA 迁出C盘