丸子de爸爸 发表于 2019-8-23 17:06

星际争霸v1.08人口无限DIY(续)



# 前言

此篇为后续篇章,结构相对比较简单,建议结合前章观看。

传送门:星际争霸人口无限DIY

# 本次基础知识

## 调试

打入断点,控制代码逐行执行时的动作。

## 方法

在编程里面,方法是多行代码的合集。调用方法可以直接实现该代码合集的执行。如本处,检测是否能建造,就是一个方法,会有很多地方会调用,来判断是否符合条件。方法的多次重复调用主要是达到精简代码的目的。

# 详细步骤

## 200人口突破实现

重新开始一局游戏,想尽办法让人口达到200上限(秘籍开起来)。

达到上限的标志如下图,会提示"Supply limit exceeded"。





找到人口判断关键方法,并标出正确制造所有的跳转。(就是在注释中加入normal那个操作,如果之前没有关闭过程序,normal会一直存在。见上一篇的"跳转逻辑分析"部分)



此时如果在方法口打入断点,会发现每过几秒就会进入一次断点。这说明,检验方法一直被反复调用。此时要调试起来难度就很大,但是我们可以借助DxWnd来实现调试。

程序在使用DxWnd窗口化,当鼠标切换出窗口时,程序运行会自动暂停,于是我们可以借助这个特点,过滤掉多处方法调用导致的错误触发。

先在游戏中找到建造会超过200人口的单位,然后切换到CheatEngine,会发现游戏已经暂停。在方法口打下断点,然后将鼠标移动到游戏窗口的单位上,再点击鼠标,此时会直接进入断点。



对比与正常逻辑的跳转,找到异常的跳转处,发现正常逻辑需要跳转,但是此处没有跳转,所以直接改为jmp。



修改完成后,实现200人口破解。



## OllyDebug修改exe文件

CheatEngine中纪录需要修改代码的内存地址0040233F。

然后完全退出CheatEngine,因为一个程序只能同时被一个软件调试。



然后,自己尝试修改一下,如果不会,参考上一篇OllyDebug修改EXE部分。

# 结尾

至此,人口无限算是真正的完成了。建议大家看完第一篇之后,可以用第二篇来自己练习,很多思考方式都是相似的。慢慢熟悉了之后,很多游戏都可以用类似的方式破解,再次谢谢大家。

冥界3大法王 发表于 2019-8-23 18:00

弄个无限原子弹,比人口更有乐子。人口多了卡顿啊。

yanmingming 发表于 2019-8-24 08:47

woailisongyao 发表于 2019-8-24 08:47
你这个哪吒怎么弄的   我也想弄

积分满200 升级后在个人签名处加img标签

佚丶名 发表于 2019-8-23 17:17

沙发   老哥厉害了{:301_1000:}

bzchf 发表于 2019-8-23 17:24

好久没玩过WAR了

2623666 发表于 2019-8-23 17:25

当年作弊的唯一障碍

uwar123 发表于 2019-8-23 17:28

额 星际1?

sylovek 发表于 2019-8-23 17:38

666,支持一下

yanmingming 发表于 2019-8-23 17:53

支持一下楼主

傻笑的老鼠 发表于 2019-8-23 17:57

支持一下666

依缘客栈 发表于 2019-8-23 18:18

楼主,直接发布一个无限人口的星际本版呗!!
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 星际争霸v1.08人口无限DIY(续)