红色警戒2修改器原理百科(二)
上一篇中介绍了,金钱的修改,瞬间建造以及快速建造。不多说,本篇开始
(四)无限电力——共用代码处理
电力和负载的精确数值,可以选中任意一个发电厂来查看
直接给出电力的地址:[game.exe+635DB4]+52D0
负载地址:[game.exe+635DB4]+52D4
红警2中,电厂提供的电力根据其健康程度是不同的,生命值越少提供的电力越少。所以当电厂被攻击时会更新电力值。当新放置建筑,或建筑被摧毁,卖掉建筑物,都会更新电力和负载。要实现无限电力,可以把电力改大,也可以将负载减小。我选择第二种,将负载清零。第一种方法改多大是个问题,个人不喜欢显示99999,不优雅。
直接查找谁改写了负载,进入游戏没进行任何操作就有一个地址004E44FE - mov [esi+000052D4],eax,根据经验八成不是,因为你还没进行操作,经测试NOP后也没效果。新建一座发电厂,出现3条指令,然后强制攻击自己的电厂,发现这条指令004F2D9B - mov [esi+000052D4],ecx计数增加,就是它了,NOP掉,当你让电力发生变化时,负载成功清零。
那么问题来了,这段代码是共用的,电脑AI也实现了无限电力,不信去试试打掉电脑的所有发电厂,防御建筑还在工作,而且电脑也只建造一个电厂。这就要处理共用代码了,我的实现是,判断是不是玩家的负载地址,如果是则清零,如果不是则正常操作,如下CE脚本。
[ENABLE]
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)game.exe+F2D9B: //要修改的指令地址
jmp newmem
nop
returnhere:newmem:
push eax
mov eax,game.exe+635DB4 //玩家数据地址
mov eax, dword ptr [eax]
cmp eax, esi
pop eax
jnz originalcode //如果不是我方则跳转
mov [esi+000052d4],0 //修改后的指令
jmp exitoriginalcode:
mov [esi+000052d4],ecxexit:
jmp returnhere
(五)金钱只增不减
方法同上,查找让金钱减少的代码,同样需要处理共用代码。
(六)地图全开——简单CALL,却找得不易
最初一直没有如何地图全开的思路,找过地图迷雾数组,搜索未知,然后一直搜索变化实在是不靠谱,是否有大神告知这种如何操作?
然后看红警2对战直播的时候,发现地图上的随机箱子可以获得开全图。得到思路,遂从此下手,一般的箱子都是加钱的,就查找谁更改了金钱(让你的矿车都停下来,减少干扰),然后去吃箱子,得到一个地址(后来发现这个地址也是所有与金钱增加有关的地方)。用OD在这个地址下断点,然后继续找箱子,遇到加钱箱子,程序断下来。
然后查看调用堆栈,一层层下断点。返回一层:
返回二层:
最初寻找的时候,下断了4层,有些你会发现,刚进游戏,就被断下来,这样的断点直接取消就好。根据上图已经有的注释,实际两层就好。而且当你返回一层的时候,往上面翻,你会看到如下关键字符串:
再往上翻还有其他的,比如开全图的,和重新关闭全图的:
最后开全图的CALL就是:
pushad
mov ecx,008324E0 //游戏数据区
call 0055A120
popad
ret
代码注入器CodeinEx,调用即可。这个函数里面就是把全图的迷雾改写为已经探索。不深究。
To be continued…
转载请注明来源,http://www.cnblogs.com/viewll/p/4769346.html
转载于:https://www.cnblogs.com/viewll/p/4769346.html
红色警戒2修改器原理百科(二)相关推荐
- 红色警戒2修改器原理百科(十)
(二十一)转换阵营--很炫酷却很简单 这个功能,貌似当初很火很轰动,感觉很强大--联网对战中控制对手单位,卖掉对手建筑!右边的建造选项也是对手的,你可以替对手建造单位.可是这个原理很简单,游戏中一个很 ...
- Qt实现的红色警戒3修改器
前言 这部修改器制作有一段时间了,但是一直没出教程.今天利用周末空闲写篇教程,给后来者指路的同时也加深自己对游戏修改器的理解,大佬就随便看看吧 浏览了一下网络,形形色色的单机游戏修改器教程,但是基本只 ...
- 【术】游戏内存修改器原理及游戏敏感数值加密建议
介绍市面上主流游戏内存修改器的原理,对症下药,让游戏从数据加密层面上更好的抵御这类内存修改器. 主流游戏内存修改器有三大内存搜索功能: 1. 基础数值搜索 2. 模糊搜索 3. 反加密搜索 基础数值搜 ...
- 游戏修改器制作教程二:键盘鼠标钩子
本教程面向有C\C++基础的人,最好还要懂一些Windows编程知识 代码一律用Visual Studio 2013编译,如果你还在用VC6请趁早丢掉它... 写这个教程只是为了让玩家更好地体验所爱的 ...
- 利用cheat engine以及VC编写游戏修改器
cheat engine的介绍已经完毕了,下面就是怎么使用它的问题,这里写一个稍微有意思一点的,也有实际用途的话题,就是来编写自己的游戏修改器. 这篇文章参考了http://www.pediy.com ...
- 打造自己的游戏修改器和内存补丁
相信很多人打游戏的时候都用修改器,这里我介绍怎样用VB编写修改器. 1.其实修改器原理很简单,一般来说,在游戏运行的时候我们对游戏内存空间中必要的数据进行修改就可以了.举个例子来说,一款拳皇模拟器里游 ...
- 【v2.x OGE-example 第二章(第二节) 修改器的使用】
2019独角兽企业重金招聘Python工程师标准>>> [v2.x OGE-example 第二章(第二节) 修改器的使用] 1. 位置:Modifier_example --> ...
- 单机游戏修改器——从计算机基础学科出发
游戏修改器--从计算机基础学科出发 qq:610551883@qq.com 主要针对单机游戏.从操作系统层面对如何做进行了说明. 认识内存 图1所示的为某一代内存条的硬件示意图,任何与CPU打交道 ...
- 第十四课 k8s源码学习和二次开发原理篇-调度器原理
第十四课 k8s源码学习和二次开发原理篇-调度器原理 tags: k8s 源码学习 categories: 源码学习 二次开发 文章目录 第十四课 k8s源码学习和二次开发原理篇-调度器原理 第一节 ...
- (8)3DMAX之车削修改器、曲面修改器、放样建模(放样建模原理、放样变形器、拟合放样)
一.车削修改器 1.图形按照轴心线旋转 生成原理:通过我们绘制出来的二维图形,按照我们所指定的轴心线进行旋转所生成得到的三维模型结构 2.更改"轴"的位置:两种方法 方法1:进入& ...
最新文章
- [快报][贴图] ANSI Art 的新形式 - CSS-ANSI Art
- SQL函数--- SQL FIRST()
- 【虚拟机】关于VMware 提示“无法获得VMCI驱动程序的版本:句柄无效”的解决方案...
- 喜马拉雅xm格式转化mp3_怎样让mp3录音转文字?
- layout_weight layout_gravity gravity
- IDEA下的使用git
- SLS机器学习最佳实战:日志聚类+异常告警
- layui如何存在多个弹窗_web前端:layer重复弹出(layui弹层同时存在多个)的解决方法...
- 网络执法官.P2P终结者等监控网络流量控制软件的原理和防范
- 一个通配符引起的错误
- 【Android -- 数据存储】LitePal 的基本使用
- 渗透开发-XSS扫描器
- 人脸识别 数据集 与竞赛
- abd串口工具使用教程_adb调试工具包(adb调试程序)
- 深度学习入门学习路线及好课推荐
- 伴随矩阵例题_考研数学一真题详解:伴随矩阵有关问题
- 为什么要使用NAS存储设备呢?
- 雅虎邮箱pop服务器,使用Yahoo.com.cn的POP和SMTP
- 了不起的大中国—移动支付
- 1u服务器系统风扇,1U工控服务器机箱介绍