开学清爽小文:游戏人物加速的思路实例碎碎念

本帖最后由 机智聪明的小迪 于 2019-9-1 21:25 编辑

0x00:简介
——————————————————————————————————————————————————————————————————

开学了,先发个贴再进行学校生活~大家在玩游戏的时候,经常会碰到这样的情形:你在开车,突然,身边一个人以大于你车速的速度从你身旁跑过,并且询问你:“兄弟,买挂吗?”

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



——————————————————————————————————————————————————————————————————
加速的实现:


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


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

0x01:方法1---人物状态逆向法
——————————————————————————————————————————————————————————————————

在游戏中,我们的角色必定需要做运动动作,那么这些运动动作的属性,肯定是放在一个结构中,可能是const不可写的,但是有些有可能是可写的
例如:

1.我们在水中和陆地上,speed_陆地 > speed_水中
2.我们在站立和蹲下时,speed_站立 > speed_蹲下
3.我们在跑步和行走时,speed_跑步 > speed_行走
4.等等等等

甚至有的游戏在上坡和下坡时的速度,有风无风时人物的速度都会有细微的差别,那么这些游戏所谓“精妙”的设计,正是“漏洞(遗漏的BUG)”逆向所在.

0x02:去找个游戏实战一下

——————————————————————————————————————————————————————————————————

做例子的游戏为穿x火x,在上游戏后,我需要把机器码弄一下,不得不说,封机器是真的狠,一封封十年,我的大号可以传给下一代了

进入新手任务训练营,或者大家随便在游戏中找到相关的“洞口”:

猜想:
我们在战立和蹲下时,speed_站立 > speed_蹲下

又因为游戏中对于速度的设定,大都是浮点数,所以我们进行如下搜索:

搜索未知的初始值

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

出洞,搜索增加的数值:

循环过滤搜索,通过锁定10测试,得到控制人物后跳速度的数据:

在这种情境下搜索,本人测试后发现,只有控制后跳速度的数据

0x03:爽一下

——————————————————————————————————————————————————————————————————

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

我退退退退退

打完收工:

0x04:总结

——————————————————————————————————————————————————————————————————

实际上,该加速地址在鄙人几年前就测试过,无检测,错误代码几率极小(有几率干掉),至今依然存在,不知道还能存活多久

在游戏逆向中,我们可以利用一切可以使角色加速减速的动作、建筑物等进行数据的筛查,例如:水,下坡,风力,喷泉,被攻击,物品重量等等等等

惊喜的你会发现,不仅没有检测,还会玩的很爽

好了,本文结束,开学第一天,祝大家学业爱情双丰收~

THE END
喜欢就支持以下吧
点赞0
分享
评论 抢沙发
  • 管埋员

    昵称

  • 取消
    昵称