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

[TOC]

前言

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

https://www.52pojie.cn/thread-1011457-1-1.html

本次基础知识

调试

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

方法

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

详细步骤

200人口突破实现

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

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

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

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

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

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

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

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

OllyDebug修改exe文件

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

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

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

结尾

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

THE END
喜欢就支持以下吧
点赞0
分享
评论 抢沙发
管埋员的头像-小北的自留地

昵称

取消
昵称