35.网络游戏逆向分析与漏洞攻防-游戏网络通信数据解析-登录成功数据包内容分析

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

如果看不懂、不知道现在做的什么,那就跟着做完看效果

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

上一个内容:34.登录数据包的监视与模拟

首先登陆游戏,到角色选择界面,如下图,可以看到这个数据包很大2421个字节

首先确定它的常量和变量,所以返回登陆,重新登录一次,下图是重新登录之后

然后再次重新登录,通过三次数据包来确定数据包的变化情况

然后发现长度没有变化,开头的内容也没有什么变化,然后它的突破口就是名字

然后就搜索到了

这证明了,角色数据确实存在

然后从头开始分析,下图选中的位置,它就像 Unicode 数据,两个字节,它也正是角色名4399

然后它签名是一个0A 00 00 00,0A的十进制是10,然后下图红框圈起来的内容也正好是10字节长度,所以它签名的A是后面字符的长度,然后07应该是操作类型

然后现在就可以根据上方分析出来的结构继续拆分,然后后面有一个0x0220长度的字符串,这里直接往下找00 00 的位置,因为00 00是字符串结尾符

然后看到下图红框位置,就符合字符串结尾,所以在这里继续拆分

下图红框位置的数据就像是 数据解析约定,02表示int类型,05表示long long类型,06表示char类型,这样

然后下图红框又是另一个角色名了

然后下图红框又是它的数据,然后直接往后找 00 00 结尾

来到下图红框位置是 00 00 结尾,然后根据上方的得到的规律继续拆分

就找到了另一个角色

通过第一个角色数据,可以猜测每个角色是以05结尾,如下图红框

来到最后也可以证明数据是以05结尾

现在一个大体的结构就有了

然后看前面的部分

下图红框位置

每登陆一次它会自增1,可能会用来做加密,然后换一个账号登陆,它也是红框位置的数据自增1,头部其余数据不会变

然后下图红框的04对应角色的数量,所以删除一个角色看看它变不变

然后它变了,所以它是角色的数量

然后整理现在的情况,头部位置是基本不变的,所以它是数据结构约定,后面的数据是数据解析约定,然后选择角色进入游戏,找几个数据解析约定的数据包(只要能对上数据解析约定规律的数据包就是),再看几个数据包确定一下数据解析约定的数据结构

登陆成功之后返回的数据包里06是char类型,这里是char*类型,03是int类型,这里是 longlong类型,05没变还是longlong类型

然后04是float类型

然后08是longlong类型或者double类型

现在的结构:

00 还没见到

01 还没见到

02 int

03 long long

04 float

05 long long

06 cahr或者char*

07 wchar_t*

08 long long 或者 double类型


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

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

相关文章

LGBM算法 原理

简介 GBDT (Gradient Boosting Decision Tree) 是机器学习中一个长盛不衰的模型,其主要思想是利用弱分类器(决策树)迭代训练以得到最优模型,该模型具有训练效果好、不易过拟合等优点。GBDT不仅在工业界应用广泛,通常被…

伪装目标检测之注意力CBAM:《Convolutional Block Attention Module》

论文地址:link 代码:link 摘要 我们提出了卷积块注意力模块(CBAM),这是一种简单而有效的用于前馈卷积神经网络的注意力模块。给定一个中间特征图,我们的模块依次推断沿着两个独立维度的注意力图&#xff…

蓝桥杯day13刷题日记

P8692 [蓝桥杯 2019 国 C] 数正方形 思路:观察正方形有两种放置方式,正放和斜放,其中正放的个数等于边长的平方,斜放的个数等于边长减1,所以有如下求法: 首先注意到我们得到的数据是点数,而非…

10.2024

使用选择排序将{2,9,5,0,1,3,6,8}排序 代码&#xff1a; public class 第十题 {public static void main(String[] args) {int a[]{2,9,5,0,1,3,6,8};int begin0;int enda.length-1;while (begin<end){int mina[begin];int tbegin;for (int ibegin;i<end;i){if(min>…

Selenium 自动化 —— 定位页面元素

更多内容请关注我的 Selenium 自动化 专栏&#xff1a; 入门和 Hello World 实例使用WebDriverManager自动下载驱动Selenium IDE录制、回放、导出Java源码浏览器窗口操作切换浏览器窗口 使用 Selenium 做自动化&#xff0c;我们不仅仅是打开一个网页&#xff0c;这只是万里长…

Python私有属性和私有方法

私有属性和私有方法 在实际开发中&#xff0c;对象的某些属性或者方法只希望在对象内部被使用&#xff0c;而不希望在外界被访问。 私有属性&#xff1a;对象不希望公开的属性 私有方法&#xff1a;对象不希望公开的方法 定义方式&#xff1a;在属性名或者方法名前添加两个下划…

flask_restful规范返回值之类型设置

大型的互联网项目中&#xff0c;返回的数据格式&#xff0c;有时是比较复杂的结构。 如&#xff1a;豆瓣电影 https://movie.douban.com/j/chart/top_list?type24&interval_id 100%3A90&action&start20&limit20 返回的值里有 json 或者列表数据&#xff0c…

解决sqlalchemy执行语句提示Not an executable object

问题&#xff1a; from sqlalchemy import create_engine# 数据库的变量 HOST 127.0.0.1 PORT 3306 DATA_BASE itbz USERroot PWD123456 # DB_URL f数据库的名驱动名://{USER}:{PWD}{HOST}:{PORT}/{DATA_BASE} DB_URL fmysqlpymysql://{USER}:{PWD}{HOST}:{PORT}/{DATA_B…

分类模型评估:混淆矩阵与ROC曲线

1.混淆矩阵2.ROC曲线 & AUC指标 理解混淆矩阵和ROC曲线之前&#xff0c;先区分几个概念。对于分类问题&#xff0c;不论是多分类还是二分类&#xff0c;对于某个关注类来说&#xff0c;都可以看成是二分类问题&#xff0c;当前的这个关注类为正类&#xff0c;所有其他非关注…

政安晨:【Keras机器学习实践要点】(三)—— 编写组件与训练数据

政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收录专栏: TensorFlow与Keras实战演绎机器学习 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff01; 介绍 通过 Keras&#xff0c;您可以编写自定…

【linux】linux防火墙相关操作命令

在Linux系统中&#xff0c;可以使用iptables或firewalld&#xff08;取决于系统使用的防火墙管理工具&#xff09;来开启/关闭特定的端口。以下是两种情况的示例命令&#xff1a; iptables防火墙服务 chkconfig --list | grep iptables #查看防火墙的服务 chkconfig iptables…

位段详细解释

结构体位段的使用原则 在C语言中&#xff0c;结构体&#xff08;Struct&#xff09;是一种复合数据类型&#xff0c;它允许我们将多个不同类型的数据项组合成一个单一的实体。位段&#xff08;Bit Field&#xff09;是结构体中的一个特殊成员&#xff0c;它允许我们只取结构体…

常用中间件redis,kafka及其测试方法

常用消息中间件及其测试方法 一、中间件的使用场景引入中间件的目的一般有两个&#xff1a;1、提升性能常用的中间件&#xff1a;1) 高速缓存&#xff1a;redis2) 全文检索&#xff1a;ES3) 存日志&#xff1a;ELK架构4) 流量削峰&#xff1a;kafka 2、提升可用性产品架构中高可…

【LAMMPS学习】五、LAMMPS命令(2) 输入脚本的解析规则

5. 命令 本部分描述了 LAMMPS 输入脚本的格式以及其中的命令如何用于定义 LAMMPS 模拟。主要包括以下内容。 5.1. LAMMPS 输入脚本 5.2.输入脚本的解析规则 输入脚本中的每个非空行都被视为一条命令。 LAMMPS 命令区分大小写。命令名称是小写的&#xff0c;指定的命令参数…

Spring Cloud 网关Gateway + 配置中心

网关 网络的接口&#xff0c;负责请求的路由、转发、身份校验 路由&#xff1a;告诉请求去哪找 转发&#xff1a;请求找不到直接带请求过去 路由及转发 判断前端请求的规则就这么配 当前情况下只需要访问8080端口 就可以完成对全部微服务的访问 路由属性 登录校验 没必要在每…

sonar+gitlab提交阻断 增量扫描

通过本文&#xff0c;您将可以学习到 sonarqube、git\gitlab、shell、sonar-scanner、sonarlint 一、前言 sonarqube 是一款开源的静态代码扫描工具。 实际生产应用中&#xff0c;sonarqube 如何落地&#xff0c;需要考虑以下四个维度&#xff1a; 1、规则的来源 现在规则的…

ACSAC 2023

Web Security 1. PhishReplicant: A Language Model-based Approach to Detect Generated Squatting Domain Names. PhishReplicant&#xff1a;一种基于语言模型的检测生成的领域名抢注的方法。 2. From Attachments to SEO: Click Here to Learn More about Clickbait…

java一和零(力扣Leetcode474)

一和零 力扣原题 给定一个二进制字符串数组 strs 和两个整数 m 和 n&#xff0c;请你找出并返回 strs 的最大子集的长度&#xff0c;该子集中最多有 m 个 0 和 n 个 1。 示例 1&#xff1a; 输入&#xff1a;strs [“10”, “0001”, “111001”, “1”, “0”], m 5, n …

【msyql】mysqldump: 未找到命令...

使用mysqldump备份数据库出现错误提示&#xff1a; mysqldump: 未找到命令... 执行的命令如下&#xff1a; mysqldump -uroot -proot --databases db_user > /home/backups/databackup.sql 解决方法 确认mysql是否安装 查看mysql版本 mysql --version 查找mysql安装路…

php反序列化刷题1

[SWPUCTF 2021 新生赛]ez_unserialize 查看源代码想到robots协议 看这个代码比较简单 直接让adminadmin passwdctf就行了 poc <?php class wllm {public $admin;public $passwd; }$p new wllm(); $p->admin "admin"; $p->passwd "ctf"; ec…