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ÿ…...
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.定义变量:let 2.定义常量:const <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"…...
Hadoop3:HDFS副本节点选择逻辑讲解
一、副本节点选择(机架感知) 说明 第一个副本,因为我们的client可能是web页,也可能是shell终端。 如果是web页,则随机选取一个节点,如果是shell终端,则选择当前shell终端所在的节点。 节点距离最…...
Java 高级面试问题及答案 更新(二)
Java 高级面试问题及答案 以下是几个常见的Java高级面试问题及其答案,这些问题覆盖了Java语言的核心概念和高级特性。 问题1: 什么是Java内存模型(JMM),它在并发编程中扮演着什么角色? 答案: Java内存模型(JMM)是一个抽象的概念…...
MacOS安装Go
下载 Go 安装包: 访问 Go 官方网站的下载页面,找到适合 macOS 系统的 Go 安装包,并下载 go1.20.2.darwin-amd64.pkg(假设你的 macOS 是 64 位系统)。 安装 Go: 打开下载的安装包 go1.20.2.darwin-amd64.pk…...
【微服务最全详解】
文章目录 微服务微服务的介绍微服务服务架构演变 微服务网关微服务的负载均衡微服务的容灾机制服务崩溃服务容灾机制微服务熔断机制微服务限流Sentinel怎么实现限流微服务限流算法1.令牌桶算法2.漏斗桶算法 服务监控日志收集 微服务 微服务的介绍 微服务是一种软件架构风格&a…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...
智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...
DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...
MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...
使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装
以下是基于 vant-ui(适配 Vue2 版本 )实现截图中照片上传预览、删除功能,并封装成可复用组件的完整代码,包含样式和逻辑实现,可直接在 Vue2 项目中使用: 1. 封装的图片上传组件 ImageUploader.vue <te…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...
Rust 异步编程
Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...
Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?
Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...
