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.mfbz.cn/a/600849.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[开发|安卓] Android Studio 开发环境配置

Android Studio下载 Android Studio下载地址 下载SDK依赖 1.点击左上角菜单 2.选择工具 3.打开SDK管理中心 4.下载项目目标Android版本的SDK 配置安卓虚拟机 1.打开右上角的设备管理 2.选择合适的手机规格 3.下载并选择项目目标Android系统 4.点击完成配置 …

jupyter lab 与jupter notebook 以及anconda环境

jupyter lab 与jupter notebook 以及anconda环境 jupyter lab 与jupter notebook 以及anconda环境方法一之后需要将虚拟环境的包,导入到jupyter lab中方法二 jupyter lab 与jupter notebook 以及anconda环境 #踩坑/深度学习/jupyter,与深度学环境 关于…

python 打包为exe可执行程序

近期因为需要做文字识别,应用ocr 所以每次都需要部署环境,然后打算做成exe,遇到问题做一总结。 pyinstaller -D --hidden-importpaddleocr testflask.py 生成exe paddleocr 和pyinstaller 安装不做说明。 No such file or directory: …

element-plus el-cascader 懒加载实现-省市区街道选择及回显

大概思路: 准备一个接口可以通过父Id,查询到下一级省市区街道的信息;如下方的getRegionListOne确定后端的数据结构,需要在created里边处理数据回显逻辑el-cascader接收的数据格式是[‘’,‘’,‘’];后端的数据格式多为[{provinceId: ‘’, …

Hive Bucketed Tables 分桶表

Hive Bucketed Tables 分桶表 1.分桶表概念 2.分桶规则 3.语法 4.分桶表的创建 5.分桶表的好处

鸿蒙内核源码分析(时间管理篇) | 谁是内核基本时间单位

时间概念太重要了,在鸿蒙内核又是如何管理和使用时间的呢? 时间管理以系统时钟 g_sysClock 为基础,给应用程序提供所有和时间有关的服务。 用户以秒、毫秒为单位计时.操作系统以Tick为单位计时,这个认识很重要. 每秒的tick大小很大程度上决…

set-cookie字段,cookie文件介绍+原理,如何查看cookie文件,在基于http协议服务器的代码实现,cookie存在问题+解决(会话机制)

目录 Set-Cookie 引入 介绍 原理 描述 图解 保存"cookie文件"的方法 内存级 文件级 查看cookie文件 示例 实现 介绍 代码 核心代码 全部代码 示例 cookie存在的问题 介绍 存在的必要性 如何解决 问题梳理 引入 会话机制 -- 解决信息泄漏…

构造照亮世界——快速沃尔什变换 (FWT)

博客园 我的博客 快速沃尔什变换解决的卷积问题 快速沃尔什变换(FWT)是解决这样一类卷积问题: ci∑ij⊙kajbkc_i\sum_{ij\odot k}a_jb_k ci​ij⊙k∑​aj​bk​其中,⊙\odot⊙ 是位运算的一种。举个例子,给定数列 a,…

【大模型】LLaMA-1 模型介绍

文章目录 一、背景介绍二、模型介绍2.1 模型结构2.2 模型超参数2.3 SwiGLU 三、代码分析3.1 模型结构代码3.2 FairScale库介绍 四、LLaMA家族模型4.1 Alpaca4.2 Vicuna4.3 Koala(考拉)4.4 Baize (白泽)4.5 Luotuo (骆驼,Chinese)4.6 其他 参考资料 LLaMA&#xff08…

pynq7020系列的资源有多少

pynq系列的资源有多少 对比 查找表107,273 39.14 140,537 51.28查找表随机存储器17,457 12.12 19,524 13.56触发器67,278 12.27 81,453 14.95 Block RAMs ( 36 KB ) 264.5 29.00 457 50.11 Table 1: Zynq-…

从简单逻辑到复杂计算:感知机的进化与其在现代深度学习和人工智能中的应用(下)

文章目录 第一章:感知机的局限性1.1 异或门的挑战1.2 线性与非线性问题 第二章:多层感知机2.1 已有门电路的组合2.2 实现异或门 第三章:从与非门到计算机 文章文上下两节 从简单逻辑到复杂计算:感知机的进化与其在现代深度学习和人…

The provided password or token is incorrect or your account

IDEA使用git技巧 【/n】 01 问题出现场景 我的gitlab上个月生成的token到期了,于是今天推上去的时候报了这个错误 The provided password or token is incorrect or your account has 2FA enabled and you must use a personal access token instead of a password. See ht…

Unreal游戏GPU参数详解,游戏性能优化再升级

UWA GOT Online For Unreal GPU模式近期全新发布,方便开发者从渲染和带宽的角度进行GPU分析。同时,此次更新中UWA也增加了丰富的GPU参数,涵盖了GPU SoC和GPU Counter模块。这些新增的参数不仅能够帮助Unreal开发者从宏观层面监控GPU的压力状况…

【busybox记录】【shell指令】paste

目录 内容来源: 【GUN】【paste】指令介绍 【busybox】【paste】指令介绍 【linux】【paste】指令介绍 使用示例: 合并文件的行 - 默认输出(默认是行合并) 合并文件的行 - 一个文件占一行 合并文件的行 - 使用指定的间隔符…

Deeplab的复现(pytorch实现)

DeepLab复现的pytorch实现 本文复现的主要是deeplabv3。使用的数据集和之前发的文章FCN一样,没有了解的可以移步到之前发的文章中去查看一下。 1.该模型的主要结构 对于代码部分,主要只写了模型部分的,其他部分内容基本和FCN的一致&#xf…

【busybox记录】【shell指令】join

目录 内容来源: 【GUN】【join】指令介绍 【busybox】【join】指令介绍 【linux】【join】指令介绍 使用示例: 打印两个文件的共有行 - 默认输出 可以对字母排序 可以对数字排序 可以对字符串排序 打印两个文件的共有行 - 输出文件1或者文件2中…

市场营销的酒店营销策略研究意义

在市场经济条件下,市场营销策略已成为企业经营管理中最重要的组成部分,其在企业管理中的地位日益显现出来。 然而,由于酒店营销环境的特殊性,酒店营销策略研究一直是咱们从业者研究的热点之一。 对于酒店营销策略的研究&#xf…

【C++】从零开始认识多态

送给大家一句话: 一个犹豫不决的灵魂,奋起抗击无穷的忧患,而内心又矛盾重重,真实生活就是如此。 ​​​​ – 詹姆斯・乔伊斯 《尤利西斯》 _φ(* ̄ω ̄)ノ_φ(* ̄ω ̄)&…

xv6源码分析 017

xv6源码分析 017 在buffer cache上面的就是logging层了,这一层主要的工作是维持每一个文件系统写入的操作的原子性。什么是原子性?通俗地来讲,原子性可以这样理解,如果一组操作(或者一个操作)在执行的时候…

【busybox记录】【shell指令】expand

目录 内容来源: 【GUN】【expand】指令介绍 【busybox】【expand】指令介绍 【linux】【expand】指令介绍 使用示例: 把制表符转化为空格 - 默认输出 把制表符转化为空格 - 修改制表符转空格的个数 把制表符转化为空格 - 修改制表符转空格的个数…
最新文章