游戏人物加速的思路实例碎碎念
2020-01-20 19:08:49 Author: mp.weixin.qq.com(查看原文) 阅读量:137 收藏

本文为看雪论坛优秀文章

看雪论坛作者ID:小迪xiaodi

0x00 简介

大家在玩游戏的时候,经常会碰到这样的情形:

你在开车,突然,身边一个人以大于你车速的速度从你身旁跑过,并且询问你:“兄弟,买挂吗?

 

顿时,你心里一慌,买?还是不买?关于买与不买的问题请大家参考《中华人民共和国网络安全法》以及相关处罚条例,本文只做技术交流。

加速的实现:
1. 内核变速:可以参考《深入游戏变速底层原理以及内核变速的实现》: 
https://www.52pojie.cn/thread-951616-1-1.html

2. 内存变速:在这里面,最有搞头的我感觉就是“内存变速”,因为可以发挥自己的想象力,下面让我们展开想象,去发挥吧。

 
0x01 方法一:人物状态逆向法
在游戏中,我们的角色必定需要做运动动作,那么这些运动动作的属性,肯定是放在一个结构中,可能是const不可写的,但是有些有可能是可写的。
例如:
1. 我们在水中和陆地上,speed_陆地 > speed_水中
2. 我们在站立和蹲下时,speed_站立 > speed_蹲下
3. 我们在跑步和行走时,speed_跑步 > speed_行走
4. 等等等等
甚至有的游戏在上坡和下坡时的速度,有风无风时人物的速度都会有细微的差别,那么这些游戏所谓“精妙”的设计,正是“漏洞(遗漏的BUG)”逆向所在。
0x02 去找个游戏实战一下
做例子的游戏为穿x火x,在上游戏后,我需要把机器码弄一下,不得不说,封机器是真的狠,一封封十年,我的大号可以传给下一代了。

进入新手任务训练营,或者大家随便在游戏中找到相关的“洞口”:
猜想:
我们在站立和蹲下时,speed_站立 > speed_蹲下。
又因为游戏中对于速度的设定,大都是浮点数,所以我们进行如下搜索,搜索未知的初始值:

钻进洞,搜索减少的数值,因为速度减小了:

出洞,搜索增加的数值:

循环过滤搜索,通过锁定10测试,得到控制人物后跳速度的数据;在这种情境下搜索,本人测试后发现,只有控制后跳速度的数据:

0x03 爽一下

退一步海阔天空,如果要退,那一步一定是我退!

我退退退退退。

打完收工:

0x04 总结
实际上,该加速地址在鄙人几年前就测试过,无检测,错误代码几率极小(有几率干掉),至今依然存在,不知道还能存活多久。
在游戏逆向中,我们可以利用一切可以使角色加速减速的动作、建筑物等进行数据的筛查,例如:水,下坡,风力,喷泉,被攻击,物品重量等等等等。
惊喜的你会发现,不仅没有检测,还会玩的很爽。
好了,本文结束,祝大家学业爱情双丰收~
- End -

看雪ID:小迪xiaodi 

https://bbs.pediy.com/user-680946.htm 

*本文由看雪论坛  小迪xiaodi  原创,转载请注明来自看雪社区

推荐文章++++

CVE-2017-11882理论以及实战样本分析

恶意代码分析之 RC4 算法学习

CVE-2017-0101-Win32k提权分析笔记

ROPEmporium全解

实战栈溢出漏洞

好书推荐


公众号ID:ikanxue
官方微博:看雪安全
商务合作:[email protected]
“阅读原文”一起来充电吧!

文章来源: http://mp.weixin.qq.com/s?__biz=MjM5NTc2MDYxMw==&mid=2458303025&idx=1&sn=131c9b99b39e8494ad7b331bab7f448d&chksm=b1818abb86f603ad06922b86b0976a5f9d7065b37c90d129d19a020a1f7dbe4fae5d39a14131#rd
如有侵权请联系:admin#unsafe.sh