当前位置: 首页 > news >正文

84.网络游戏逆向分析与漏洞攻防-游戏技能系统分析-筛选与技能有关的数据包

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

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

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

上一个内容:83.游戏瞬移漏洞的测试与分析

移动相关的到这就全部结束了,现在有瞬移、穿墙、飞天、遁地、高速移动,接下来开始分析与技能有关的,主要完成得到所有的技能,技能里面是一个什么样的情况,比如叫什么名字、能不能用这种基本的信息,一般对于技能这些信息来讲,它很多信息会放在客户端,服务端那边很可能就给发一个编号,有可能极其的简单,有的可能会多发点描述性的内容,具体要去数据包里看,本次是大体看一下跟技能相关的数据包,前期以收集整理为主

打开游戏拦截游戏进入游戏并且有技能相关的画面之间所有的数据包,如下图

然后放一个技能,看看放技能发送的数据包

放技能

然后找到一个这样的数据包

初步猜测

然后通过放技能得到了技能id,然后既然游戏可以放这个技能,并且用这个id告诉服务端释放了技能,这就说明客户端肯定、服务端肯定有一个地方存着,这个东西肯定有初始化的时候,所以接下来通过技能id去找这个id在什么数据包中出现了

然后使用 DataAnly.exe 搜索数据包

搜索出来的的结果

一共有6个位置出现了技能id

然后一个一个的看,从下往上看

第一个是接收的11数据包,现在分析不出来,看不出它是数据结构约定还是数据解析约定

第二个、第三个也是接收的11数据包,分析不出来直接跳过了

第四个是接收的18数据包,这个数据包可以看出,它是初始化技能的

然后这个接收的18开头的数据包,有很多,每个18开头的数据包前面都会有一个接收的15开头的数据包,18的第二个内存与15第二个内容是一样

这有个盘腿坐下的技能

游戏中也确实有,如下图,所以 接收的 18 28 数据包是跟技能有关

然后接收的18 82,Single中文是单的意思Sword中文是剑的意思,应该是单手剑的意思,所以猜测这个18 82和装备有关

然后18 01,Hat是帽子的意思,所以可以猜测 18 01 应该是除了武器以外的装备有关,18 82与武器有关

然后剩余的一个是接收的11数据包,现在解析不了,另一个是发送的0A数据包,这个是释放技能发送的数据包

然后就没有了,整理一下

通过释放技能发送的0A数据包得到了技能id,然后通过搜索技能id找到了,11、18这俩数据包,18 28现在可以猜测是初始化技能的,接收的11数据包现在解析不了,在登录成功之后有两个很大的数据其中一个是接收的09数据包这个已经解析过了它是数据类型表,然后另一个是接收的0A数据包,这个数据包应该也是一个数据类型表,这个接收的11数据包可能要把接收的0A数据包给解读出来才能搞

接下看看升级得到新的技能之后的数据包

然后通过游戏的技能面板,看到有一个角色4级解锁的技能,所以接下来解锁这个技能,看看它是解锁技能的数据包

做了几个任务现在达到了三级

然后到了关键点完成任务升到4级,得到了新的技能

然后释放技能查看它的id,然后看到它的id是 Skill_Ex1102_01_1

然后通过它的id去找它是怎样解锁的

看到了两个1E数据包(1E数据包之前屏蔽了,现在只有解析的内容所以搜不到)

可以猜测技能是通过这俩东西解锁的

然后看到,这个技能在最开始的18 28数据包那块出现了,这猜测 登录进游戏之后 所有技能信息就全部拿到了,但是有状态,也就是这个技能可用不可用的状态,这个状态在18 28数据包里

然后有个 1F8 通过接收的09数据包的数据类型表,看出它是CanUse,Can中文是能,Use是使用,连起来就是能使用的意思,所以这个1F8用来表示当前是否可以释放技能,但是通过观察多个接收的18 28数据包,发现1F8的值都是01 00,所以能否使用这个事,在接收的18 28数据包里看不到,可能与接收的11数据包有关

然后还有一个接收的13数据包,它跟11数据包一样现在解不了,所以没有放图

现在初步的分析就已经可以结束了,整理现在的东西,通过升级,然后升级之后得到新技能,然后释放新技能得到技能id,然后通过技能id搜索,查看相关数据包,得出所有技能在登录进游戏之后就全部得到了,接收的18 28数据包得到的,接收的18 28数据包前面会有一个接收的15数据包,然后还有在接收的11、13数据包中也通过id搜出来了,接收的13数据包是在升级之后出现的,然后接收的11、13数据包现在都解不了,然后猜测它与刚登录游戏之后接收的一个很大的0A数据包有关,现在怀疑接收的0A数据包是另一个数据解析约定的数据类型表,所以后面要做的事先得到接收的0A的数据类型表,然后通过这个接收的0A的数据类型表尝试去解接收的11、13数据包,还有通过数据包得到的技能id没有技能名字,所以还要找id跟技能名字对应的那个表,所以接下来要逆向分析去找这些表


相关文章:

84.网络游戏逆向分析与漏洞攻防-游戏技能系统分析-筛选与技能有关的数据包

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 如果看不懂、不知道现在做的什么,那就跟着做完看效果,代码看不懂是正常的,只要会抄就行,抄着抄着就能懂了 内容…...

维护表空间中的数据文件

目录 向表空间中添加数据文件 从表空间中删除数据文件 删除users表空间中的users02.dbf数据文件 对数据文件的自动扩展设置 Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 维护表空间中的数据文件主要包括向表空间中添…...

2024五月母亲节嘉年华活动方案

2024以花之名 致谢母亲簪花趣味亲子五月母亲节嘉年华活动方案-43P 活动策划信息: 方案页码:43页 文件格式:PPT 方案简介: 岁月温柔治愈 母爱闪闪发光 一年一度的PY圈孝子孝女大赛即将到来 本次母亲节,“以花之名…...

Linux 第三十三章

🐶博主主页:ᰔᩚ. 一怀明月ꦿ ❤️‍🔥专栏系列:线性代数,C初学者入门训练,题解C,C的使用文章,「初学」C,linux 🔥座右铭:“不要等到什么都没有了…...

低空经济:无人机竞赛详解

无人机竞赛市场近年来呈现出蓬勃发展的态势,其市场价值不仅体现在竞赛本身,还体现在推动无人机技术创新、拓展应用场景以及促进产业链发展等多个方面。 一、比赛项目介绍 无人机竞赛通常分为多个项目,包括竞速赛、技巧赛、航拍赛等。每个项目…...

CAD插入文字到另一图形样式变相同

CAD从一张图形复制到另外一张图形后,文字样式变成一样是因为两张图所用的文字样式名称一样,但是样式里面的使用字体样式不一样。如下图所示,找到工具栏中的注释 ,点击文字样式。里面就会显示当前图形中使用的样式名称及其对应的字…...

算法随想录第八天打卡|344.反转字符串,541. 反转字符串II, 卡码网:54.替换数字, 151.翻转字符串里的单词,卡码网:55.右旋转字符串

344.反转字符串 建议: 本题是字符串基础题目,就是考察 reverse 函数的实现,同时也明确一下 平时刷题什么时候用 库函数,什么时候 不用库函数 题目链接/文章讲解/视频讲解:代码随想录 Python class Solution:def reve…...

外卖系统的JWT实现登录

1、什么是JWT jwt可以生成一个加密的token,作为用户登录的令牌,当用户登陆成功之后,发放给客户端。请求需要登录的资源或者接口的时候,将token携带,后端验证token是否合法。jwt有三部分组成: A:…...

基于springboot实现的家具销售电商平台

开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包&…...

STM32中的Systick的使用

SysTick,全称System Tick Timer,是Cortex-M microcontrollers内核中提供的一个简单而有效的系统定时器,设计用来给操作系统提供时间基准,或用于生成周期性的中断。STM32系列微控制器,作为基于ARM Cortex-M内核的设备&a…...

做一个桌面悬浮翻页时钟

毛玻璃效果翻页桌面悬浮时钟,TopMost(Topmost“True”),不在任务栏显示(ShowInTaskbar“False”),在托盘区显示图标,双击托盘区图标实现最小化和还原,右键托盘图标可选“…...

Transformers中加载预训练模型的过程剖析(一)

使用HuggingFace的Transformers库加载预训练模型来处理下游深度学习任务很是方便,然而加载预训练模型的方法多种多样且过程比较隐蔽,这在一定程度上会给人带来困惑。因此,本篇文章主要讲一下使用不同方法加载本地预训练模型的区别、加载预训练模型及其配置的过程,藉此做个记…...

数据可视化的艺术:使用Matplotlib和Seaborn揭示数据故事

引言 数据可视化是数据分析中的关键一环,它帮助我们理解数据模式、趋势和异常。在Python中,Matplotlib和Seaborn是两个流行的数据可视化库,它们提供了丰富的图表和图形选项,使数据的可视化变得简单而强大。 Matplotlib&#xff…...

2024全新小狐狸AI免授权源码

源码安装说明: 下 载 地 址 : runruncode.com/php/19757.html 1. 在宝塔新建一个站点,选择 PHP 版本为 7.2、7.3 或 7.4。将压缩包上传到站点的根目录,并设置运行目录为 /public。 2. 导入数据库文件,该文件位于 …...

Python基础详解四

目录 一,Json解析 二,pyecharts模块 三,类和对象 四,类型注解 一,Json解析 字典转换为JSON: import jsondata [{"name":"袁震","age":20},{"name":"张三&…...

es6新语法和ajax和json

es6新语法 1.定义变量&#xff1a;let 2.定义常量&#xff1a;const <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"…...

Hadoop3:HDFS副本节点选择逻辑讲解

一、副本节点选择&#xff08;机架感知&#xff09; 说明 第一个副本&#xff0c;因为我们的client可能是web页&#xff0c;也可能是shell终端。 如果是web页&#xff0c;则随机选取一个节点&#xff0c;如果是shell终端&#xff0c;则选择当前shell终端所在的节点。 节点距离最…...

Java 高级面试问题及答案 更新(二)

Java 高级面试问题及答案 以下是几个常见的Java高级面试问题及其答案&#xff0c;这些问题覆盖了Java语言的核心概念和高级特性。 问题1: 什么是Java内存模型(JMM)&#xff0c;它在并发编程中扮演着什么角色&#xff1f; 答案&#xff1a; Java内存模型(JMM)是一个抽象的概念…...

MacOS安装Go

下载 Go 安装包&#xff1a; 访问 Go 官方网站的下载页面&#xff0c;找到适合 macOS 系统的 Go 安装包&#xff0c;并下载 go1.20.2.darwin-amd64.pkg&#xff08;假设你的 macOS 是 64 位系统&#xff09;。 安装 Go&#xff1a; 打开下载的安装包 go1.20.2.darwin-amd64.pk…...

【微服务最全详解】

文章目录 微服务微服务的介绍微服务服务架构演变 微服务网关微服务的负载均衡微服务的容灾机制服务崩溃服务容灾机制微服务熔断机制微服务限流Sentinel怎么实现限流微服务限流算法1.令牌桶算法2.漏斗桶算法 服务监控日志收集 微服务 微服务的介绍 微服务是一种软件架构风格&a…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

&#x1f9e0; 智能合约中的数据是如何在区块链中保持一致的&#xff1f; 为什么所有区块链节点都能得出相同结果&#xff1f;合约调用这么复杂&#xff0c;状态真能保持一致吗&#xff1f;本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明&#xff1a; 想象一下&#xff0c;你正在用eNSP搭建一个虚拟的网络世界&#xff0c;里面有虚拟的路由器、交换机、电脑&#xff08;PC&#xff09;等等。这些设备都在你的电脑里面“运行”&#xff0c;它们之间可以互相通信&#xff0c;就像一个封闭的小王国。 但是&#…...

conda相比python好处

Conda 作为 Python 的环境和包管理工具&#xff0c;相比原生 Python 生态&#xff08;如 pip 虚拟环境&#xff09;有许多独特优势&#xff0c;尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处&#xff1a; 一、一站式环境管理&#xff1a…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合

强化学习&#xff08;Reinforcement Learning, RL&#xff09;是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程&#xff0c;然后使用强化学习的Actor-Critic机制&#xff08;中文译作“知行互动”机制&#xff09;&#xff0c;逐步迭代求解…...

golang循环变量捕获问题​​

在 Go 语言中&#xff0c;当在循环中启动协程&#xff08;goroutine&#xff09;时&#xff0c;如果在协程闭包中直接引用循环变量&#xff0c;可能会遇到一个常见的陷阱 - ​​循环变量捕获问题​​。让我详细解释一下&#xff1a; 问题背景 看这个代码片段&#xff1a; fo…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件&#xff0c;常用于在两个集合之间进行数据转移&#xff0c;如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model&#xff1a;绑定右侧列表的值&…...

【Linux】C语言执行shell指令

在C语言中执行Shell指令 在C语言中&#xff0c;有几种方法可以执行Shell指令&#xff1a; 1. 使用system()函数 这是最简单的方法&#xff0c;包含在stdlib.h头文件中&#xff1a; #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

mongodb源码分析session执行handleRequest命令find过程

mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程&#xff0c;并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令&#xff0c;把数据流转换成Message&#xff0c;状态转变流程是&#xff1a;State::Created 》 St…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat&#xff08;I/O Statistics&#xff09;是Linux系统下用于监视系统输入输出设备和CPU使…...

MODBUS TCP转CANopen 技术赋能高效协同作业

在现代工业自动化领域&#xff0c;MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步&#xff0c;这两种通讯协议也正在被逐步融合&#xff0c;形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...