“黑客”入门学习之“单机游戏外挂原理与实现”_cheatengine什么原理(1)

写在最后

在结束之际,我想重申的是,学习并非如攀登险峻高峰,而是如滴水穿石般的持久累积。尤其当我们步入工作岗位之后,持之以恒的学习变得愈发不易,如同在茫茫大海中独自划舟,稍有松懈便可能被巨浪吞噬。然而,对于我们程序员而言,学习是生存之本,是我们在激烈市场竞争中立于不败之地的关键。一旦停止学习,我们便如同逆水行舟,不进则退,终将被时代的洪流所淘汰。因此,不断汲取新知识,不仅是对自己的提升,更是对自己的一份珍贵投资。让我们不断磨砺自己,与时代共同进步,书写属于我们的辉煌篇章。

需要完整版PDF学习资源私我

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!


三、 学会利用"Cheat Engine"工具读取和修改游戏内存数据

1、简介

作弊引擎(Cheat Engine)是一个开源工具,旨在帮助玩家修改在窗口下运行的单人游戏,以便可以根据自己的喜好使其更难或更容易(,还包含其他有用的工具来帮助调试游戏甚至普通应用程序,并帮助您通过后门程序检查内存修改来保护您的系统,甚至包含一些方法可以从常规方法中取消隐藏。

它配有内存扫描器,可以快速扫描游戏中使用的变量,并允许您更改它们,但它还具有调试器,反汇编器,汇编器,speedhack,培训师制造商,直接3D操纵工具,系统检测工具等。除了这些工具,它还提供了广泛的脚本支持,这将有助于经验丰富的开发人员轻松创建自己的应用程序,并与其他人分享。

Cheat Engine是我见过的比较优秀的游戏作弊工具。它的优点多不胜数,虽然单独从搜索游戏里面的数值来说,它并不比其他同类软件强多少,但它不仅仅是个游戏修改工具,它还有其他游戏修改软件所没有的一些特点,例如:它有强大的反汇编功能,这个是别的游戏工具中几乎没有的;还有,它本身就自带了外挂制作工具,可以直接由它生成外挂。而它的界面非常简洁朴素,这也是我喜欢它的原因之一。

2、举例来阐述CE获取游戏内存数据地址的过程

2.1利用CE工具获取"魂斗罗单机游戏"内存数据地址

**步骤一:**先打开游戏用CE来查找游戏中 1号键中武器的子弹数基址由于这是单机游戏, 游戏中的基址不会改变, 如果是网络游戏, 基址会随着游戏的更新而改变.

如下图大家所见, 1号键中的武器子弹数为; 100

img

步骤二

打开CE, 如下图:

img
我们再附加游戏进程.

img

点击 OPEN

**步骤三:**附加游戏进程之后我们在数值这里添写 子弹数 100 再点 首次扫描

img

img

这里找到了749个结果, 这么多结果, 我们也不确定哪个才是真正的子弹数地址, 那们步骤四:我们就进入到游戏里面, 开几枪.好的, 现在剩下 86个子弹, 那么我们就在 CE中输入86, 点击 再次扫描

img

最后得到两个地址, 经过修改这两个地址的数值, 我们得到了第二个是正确的.00506d20

img

现在子弹数被锁定为了 830

img

大概获取内存地址的思路都是这样的。

3、利用CE工具修改"魔兽争霸"游戏数据的过程(简单修改个攻击力值)

具体步骤如下:

步骤一

先运行魔兽进入游戏

步骤二

打开

img
img

然后点击左上角电脑图标:选则war3。打开

img

步骤三:开始修改攻击下图为装备武器后数据(绿色字体为武器加攻击量)

img

在CE中输入11首次扫描

img

扫描后左边对话框出现许多11

img

步奏四:

卸下武器

img

在HEX中输入0(点击再次扫描)出现以下图片

img

依旧有许多数值。

接下来在船上武器输入11.如此反复知道数值变少

img

这种情况这些地址都可能是攻击。选取第一个

img

点击红色箭头

img

双击下面的值(11)

img

下面就可以输入自己满意的数值。比如1000

回到游戏发现攻击力已被更改为1000。

img

四、 学会自制一款单机游戏外挂

制作过程一定需要编程基础了,但是这里也有简单的编程工具,例如**“易语言”,“易语言”**是一门以中文作为程序代码语言,易语言的诞生极大的降低了编程的门槛和学习的难度。所以小伙伴们可以考虑利用这款工具做一款单机游戏修改器。

下面仍然通过"魂斗罗单机游戏"为例子阐述一下"易语言"编程外挂的逻辑。

上面我们找出了游戏中人物当前血的地址以及1号子弹数的地址.现在就通过"易语言"编写代码实现人物血的读取和修改子弹数.

具体步骤如下:

1、打开易语言, 首先申明两个变量,窗口句柄 和 进程ID 都是整数型的, 如下图:

img

上图中, 是通过游戏的进程名ext.exe 以及它的标题 “eXtinction” 来取得它的窗体句柄的。取得句柄后, 下一句我们判断窗口句柄是否有效, 之后通过窗口句柄取得进程ID。需要注意的是如果游戏没有打开, 窗口句柄将是负数, 所以要判断窗口句柄是否大于0.

2、在易语言窗口中布置好, 如下图:

img

3、然后再双击读取人物血, 现在我们开始写代码。

img

上图中, 定义了一个变量;人物血地址 整数型的。接下读内存整数型十六到十, 就是将十六进制转换成十进制。上图中两条语句的意思是:读内存整数型, 把读出的值传给了人物血地址然后就是在编辑框中显示读取出来的人物血值.

4、 修改子弹数这次需要用到的命令是写内存整数型。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 26
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值