76.网络游戏逆向分析与漏洞攻防-移动系统分析-分析角色移动产生的数据包

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!

如果看不懂、不知道现在做的什么,那就跟着做完看效果,代码看不懂是正常的,只要会抄就行,抄着抄着就能懂了

内容参考于:易道云信息技术研究院

上一个内容:75.伪造服务端更新属性消息欺骗客户端

到现在为止,角色的信息,附近玩家,附近怪物,角色信息的修改,都已经做完了,接下来是角色移动相关的,本次是分析角色移动时产生的数据包,分析完成之后写c++代码,通过C++代码让角色移动、让角色高速移动

上一个内容里,尝试修改了,移动速度,然后发现修改移动速度会被服务器发现(移动之后会跳回移动之前的位置),服务器它怎么发现的?整个移动的过程是在本地,如果在服务器计算这种东西会导致服务器性能变差,就算在服务器计算也肯定不能计算的很准确,所以要么就是设置的速度太快要么它还是有什么检测的方法,上一个内容里发现了一个0A数据包里,也就是发送移动数据的数据包里,它里面有移动速度的数据,接下来要做的是想办法突破这个东西,尝试实现完美的加速

首先抓包

下图红框位置,有0x13和0xF这两个数据包,这两个数据包在没有移动的时候就有,所以它是与移动不相关的数据包,为了方便抓取移动的数据(发送的0xA数据包),要把0x13和0xF给屏蔽掉

屏蔽0x13数据包,0x13的十进制是19,如下图红框,把输出相关的全部取消

屏蔽0xF数据包,0xF的十进制是15,如下图红框,把输出相关的全部取消

未加速时的数据包

移动的时候会先发一个下图样子的数据包15,15是操作码,表示移动,1看这个看不懂,8表示有8个数据,下图所示就是8个小数

当停止移动的时候,会有一个下图样子的数据包,也是15,这次15后面是0,不是1了,这可以猜测1表示移动中,0表示未移动,未移动的数据只有4个,坐标和面向,上图移动的数据包可以看出它里面有移动速度,还有移动的目标位置

接下来修改移动速度

在停止移动的时候,会多出一个1F的数据包

它的值都是浮点数,如下图,分别是三个坐标和一个面向,它应该是起到修正的作用,修正我们的坐标,导致回弹

它与最初的坐标一样

然后通过分析多个移动的数据包

每次当前坐标超过预计移动的位置之后会重新发送一个数据包

如下图第一次移动,发送的数据包,现在是当前-445.359314预计移动到-433.755157

第二次发送的移动数据包当前位置是 -435.553711未达到-433.755157,这可能在走一步就超过了-433.755157,所以发送的是未超过 -433.755157 的那个位置

第三次发送的移动数据包,也都是那样的一个规律,当前坐标和预计移动到的位置坐标

然后接下来看一次跳,跳也会涉及到坐标的更新

原地跳发送的数据包

往前跳第一个数据包,往前走的数据包 15 1 8

往前跳第二个数据包,跳的数据包 15 2 9

然后发现了游戏的一个漏洞,我们修改了移动速度,走完之后会通过1F数据包对我们的坐标进行修正,然后跳跃的时候,并没有因为修改了速度而修正我们的坐标,也就是不可以快走但可以快跳

然后再试一试高空坠落的数据包,由于修改了移动速度会重置我们的坐标,必须要跳很麻烦,所以重新登录了一次让移动速度恢复了正常,所以后面图中移动速度不会是10

首先来到高的地方

然后往下跳,摔掉血了

然后分析这时的数据包,然后看到有两个890的数据包

一个是890 2

一个是890 1,这俩可能是高空坠落掉血的,之后尝试屏蔽它俩,看看是否可以实现高空坠落不掉血

然后高空坠落的数据包是 15 2 9,与跳跃的区别就是下图红框位置,少了4.5,所以这个4.5应该是跳跃的高度,或者往上跳的速度

移动完之后都会有的 15 0 4

然后闪避移动的数据包

闪避移动的数据包是211

然后是1019

然后是15 5889 8

然后还是 15 5889 8,一共有9个15 5889 8,出了坐标相关数据不同,其它都一样

然后第9个15 5889 8之后是一个1021

然后是 15 0 4

总结:到这初步分析就结束了,接下来尝试写C++代码

15 2 9是跳跃或高空坠落

15 1 8是移动

15 0 4是移动完

1F 是修正坐标

211 是闪避移动


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/674825.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于vue.js+thymeleaf模板引擎+ajax的注册登陆简洁模板(含从零到一详细介绍)

文章目录 前言1、数据库准备2、工具类与相关基类使用2.1、工具类2.2、相关基类 3、web包目录说明4、注册功能设计(本文核心部分)4.1、注册页面设计4.2、注册逻辑设计 5、登陆功能设计5.1、登陆页面设计5.2、登陆逻辑设计 6、运行效果图 前言 大多数的网…

JUC-synchronized练习-交替打印ABC

今天来练习一下synchronized 简单来利用synchronized实现一个字符串的交替打印 主要的实现设置一个全局的变量state,线程执行通过不断累加state,根据state对三取余的结果来判断该线程是否继续执行还是进入等待。并通过synchronized锁住一个共享变量loc…

C语言 自定义类型——联合体

目录: 一、联合体是?声明计算内存大小 二、联合体的特点例如 三、联合体大小的计算规则: 四、应用习1习2 一、联合体是? 联合体和结构体差不多,但是其最大的区别在于联合体所有的成员共用一块内存空间。所以联合体也叫共用体。联…

【MATLAB源码-第204期】基于matlab的语音降噪算法对比仿真,谱减法、维纳滤波法、自适应滤波法;参数可调。

操作环境: MATLAB 2022a 1、算法描述 语音降噪技术的目的是改善语音信号的质量,通过减少或消除背景噪声,使得语音更清晰,便于听者理解或进一步的语音处理任务,如语音识别和语音通讯。在许多实际应用中,如…

25-ESP32-S3 内置的真随机数发生器(RNG)

ESP32-S3 内置的真随机数发生器(RNG)😎 引言 📚 在许多应用中,随机数发生器(RNG)是必不可少的。无论是在密码学🔒、游戏🎮、模拟🧪或其他领域,随…

AGI|基于LangChain实现的三种高级RAG检索方法

一、前言 RAG(Retrieval-Augmented Generation)检索增强生成,是现如今基于企业私域知识的问答应用所使用的主流技术之一。相较于重新训练基于私域知识的大模型来说,RAG没有额外的预训练成本,且回答效果与之相当。 但在实际应用场景中&#xf…

自动化运维管理工具----------Ansible模块详细解读

目录 一、自动化运维工具有哪些? 1.1Chef 1.2puppet 1.3Saltstack 二、Ansible介绍 2.1Ansible简介 2.2Ansible特点 2.3Ansible工作原理及流程 2.3.1内部流程 2.3.2外部流程 三、Ansible部署 3.1环境准备 3.2管理端安装 ansible 3.3Ansible相关文件 …

目前最便宜的VPS多少钱一个月?

目前最便宜的VPS一个月的价格在5美元左右,换算成人民币约为35元。 VPS服务器的配置、性能、所在地区都是影响其价格的因素,价格与性能呈正相关,也有的廉价VPS的服务商会提供性能低的配置,让用户可以进行简单的网站托管或开发环境…

鸿蒙内核源码分析(进程通讯篇) | 九种进程间通讯方式速揽

进程间为何要通讯 ? 鸿蒙内核默认支持 64个进程和128个任务,由进程池和任务池统一管理.内核设计尽量不去打扰它们,让各自过好各自的日子, 但大家毕竟在一口锅里吃饭, 不可能不与外界联系, 联系就得有渠道&#xff0c…

ZIP压缩输出流(将ZIP文件解压)

文章目录 前言一、ZIP压缩输出流是什么?二、使用介绍 1.使用方法2.实操展示总结 前言 该篇文章相对应的介绍如何使用java代码将各种文件(文件夹)从ZIP压缩文件中取出到指定的文件夹中。解压流将ZIP文件中的文件以条目的形式逐一读取&#xff…

UE5自动生成地形二:自动生成插件

UE5自动生成地形二:自动生成插件 Polycam使用步骤 本篇主要讲解UE5的一些自动生成地形的插件 Polycam 此插件是通过现实的多角度照片自动建模生成地形数据,也是免费的。这里感谢B站up主古道兮峰的分享 Polycam网站 插件下载地址 插件网盘下载 提取码&a…

研发效能 | Jacoco dump基于k8s的实现

问题描述 总所周知,jacoco的dump操作如果是使用server模式只需要使用以下命令就能获取到 exec 文件。 java -jar jacococli.jar dump --address 192.169.110.1 --port 6300 --destfile ./jacoco-demo.exec 如果是非 k8s 的集群,也只需要遍历执行这条命…