40.网络游戏逆向分析与漏洞攻防-角色管理功能通信分析-角色删除功能的数据包失败的分析

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

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

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

上一个内容:39.角色数据的维护与释放

码云地址(master 分支):https://gitee.com/dye_your_fingers/titan

码云版本号:81e80bedfabb82e75a74014e7bfae1742b201dde

代码下载地址,在 titan 目录下,文件名为:titan-角色删除功能的数据包失败的分析.zip

链接:https://pan.baidu.com/s/1W-JpUcGOWbSJmMdmtMzYZg

提取码:q9n5

--来自百度网盘超级会员V4的分享

HOOK引擎,文件名为:黑兔sdk升级版.zip

链接:https://pan.baidu.com/s/1IB-Zs6hi3yU8LC2f-8hIEw

提取码:78h8

--来自百度网盘超级会员V4的分享

以 39.角色数据的维护与释放 它的代码为基础进行修改

首先登陆游戏,到角色选择界面

然后选择角色点删除角色

然后就得到了删除角色的,发送与接收的数据包,这里的接收数据包是登陆成功返回的角色信息数据包,所以这个接收的就不管了

分析发送的数据包,如下图红框是要删除的角色的名字,后面的内容就不确定是什么了

然后再删除一个确定后面的数据是常量还是变量

然后发现下图红框位置的内容没有变化,但不管怎么拆分都认不出是什么东西,也没有长度,推测后面的东西没有用,只要传前面的东西就可以,接下来进行测试

经过测试,失败了,后面的东西是有用的,下图是测试代码

由于看不懂它们是什么就把它们当做常量处理,然后现在随便模仿一个数据包后面的结构去给服务发送数据,这种东西需要靠猜,比较玄学

就按照下图红框里的结构去定义结构体

声明的结构体

模拟删除角色

结果就是失败了,后面的东西并不能当常量去处理

然后经过大量删除,大量对比数据包,发现,后面的数据也都是变量,都可能会变,一会一个样,没有什么规律,下图是过了很大一会删除的数据包,可以说跟上方图里的数据包差距很大了

现在这次的分析 可以以失败告终了,这个删除角色的数据包比想象中的复杂很多很多,现在想想如果要是我写删除的话,我应该会给服务端传递一个id代表角色的id,然后跟着token(可以理解为代表了证明已登录标志),不知道游戏传的是什么,然后通过上方真对删除角色数据包的分析,什么东西都没得到,所以接下来换一种解读方式,通过拦截游戏发送的数据包,然后对它的数据包进行修改,看看哪一个修改了会成功会失败,从而得出正确的数据包格式。详情看下一个内容

然后现在知道了删除角色的数据包头是06,所以添加一个配置

写上下图中的内容,然后点确定

现在的配置内容

本次分析的结果是失败的,所以更改的代码不会详细写出更改了何处,但代码也提交到百度网盘、码云,新加的配置文件在百度网盘


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

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

相关文章

如何通过cookie来区分这是瑞数反爬的几代

一、以下仅个人观点,可能有误 1、瑞数反爬了解 瑞数反爬:大多数首次不带cookie的请求,响应状态码是202/412瑞数的cookie : 我们看PPT结尾的Cookie的来定位是几代,PT的是js生成的; 不看OS的,OS…

SQLite版本3中的文件锁定和并发(七)

返回:SQLite—系列文章目录 上一篇:自己编译SQLite或将SQLite移植到新的操作系统(六) 下一篇:SQLite—系列文章目录 正文: 1.0 SQLite 版本 3 中的文件锁定和并发 SQLite 版本 3.0.0 引入了新的锁…

【蓝桥杯嵌入式】六、真题演练(一)-1演练篇:第 届真题

温馨提示: 真题演练分为模拟篇和研究篇。本专栏的主要作用是记录我的备赛过程,我打算先自己做一遍,把遇到的问题和不同之处记录到演练篇,然后再返回来仔细研究一下,找到最佳的解题方法记录到研究篇。 解题记录&#x…

Yarn的安装及使用(1):安装

一、Yarn的安装 在不同操作系统上安装Yarn的步骤和注意事项: 1、Windows 1.1 通过.msi安装程序安装: 步骤: 访问 Yarn官方网站 下载适用于Windows的.msi安装包。 运行下载好的.msi文件,按照向导进行安装。 在安装过程中&#…

Apache Hive的基本使用语法(一)

一、数据库操作 创建数据库 create database if not exists myhive;查看数据库 use myhive; desc database myhive;创建数据库并指定hdfs存储 create database myhive2 location /myhive2;删除空数据库(如果有表会报错) drop database myhive;…

爱上数据结构:栈和队列的概念及使用

​ ​ 🔥个人主页:guoguoqiang. 🔥专栏:数据结构 ​ 一、栈 1.栈的基本概念 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端 称为栈顶,…

酒店管理系统项目用例图及用例说明

1、系统功能模块图 2、部分系统功能模块说明 (1)查询房间剩余 模块名称:管理员登录 编号:1-1 主要功能:验证管理员登录用户名及密码 上级调用模块:无 下级调用模块: 约束: &a…

强化基础-Java-泛型基础

什么是泛型? 泛型其实就参数化类型,也就是说这个类型类似一个变量是可变的。 为什么会有泛型? 在没有泛型之前,java中是通过Object来实现泛型的功能。但是这样做有下面两个缺陷: 1 获取值的时候必须进行强转 2 没有…

音视频开发之旅(80)- AI数字人-腾讯开源AniPortrait-音频驱动的肖像动画

目录 1、前言 2、效果展示 3、原理学习 4、遇到的问题与解决方案 5、资料 一、前言 一个月前阿里Emo发布,通过音频驱动的非常自然的肖像视频,引起很大反响。具体看下面的视频,但是并没有开源其代码。 这两天腾讯开源了其音频驱动的肖像…

2024年美团笔试题(1)

一.题目描述 小美拿到了一个排列,其中初始所有元素都是红色,但有些元素被染成了白色。 小美每次操作可以选择交换任意两个红色元素的位置。她希望操作尽可能少的次数使得数组变成非降序,你能帮帮她吗? 排列是指:一个长度为n的数组&#…

Java | Leetcode Java题解之第1题两数之和

题目&#xff1a; 题解&#xff1a; class Solution {public int[] twoSum(int[] nums, int target) {Map<Integer, Integer> map new HashMap<>();for(int i 0; i< nums.length; i) {if(map.containsKey(target - nums[i])) {return new int[] {map.get(tar…

【React】vite + react 项目,进行配置 eslint

安装与配置 eslint 1 安装 eslint babel/eslint-parser2 初始化配置 eslint3 安装 vite-plugin-eslint4 配置 vite.config.js 文件5 修改 eslint 默认配置 1 安装 eslint babel/eslint-parser npm i -D eslint babel/eslint-parser2 初始化配置 eslint npx eslint --init相关…

应急物资管理系统|实现应急物资的全生命周期管理和监控

应急物资管理系统是一种现代化、智能化、可视化的物资管理平台&#xff0c;主要用于实现对应急物资的全生命周期管理和监控&#xff0c;并提供可靠的应急响应支持。 应急物资管理系统功能 准入控制&#xff1a;东识应急物资管理系统可以实现准入控制&#xff0c;确保只有经过授…

C语言----strcmp()函数:比较两个字符串

C语言中strcmp&#xff08;&#xff09;用于对两个字符串进行比较&#xff08;区分大小&#xff09;。 头文件&#xff1a;string.h 语法原型 int strcmp(const char*str1,const char*str2) 参数str1和str2是参与比较的两个字符串。 strcmp()是根据ASCLL编码依次比较str1和str…

MP设置动态表名

Mybatis设置动态表名 Mybatis设置动态表名1.动态表名插件2.传递表名3.注意事项 Mybatis设置动态表名 1.动态表名插件 MybatisPlus中提供了一个动态表名的插件&#xff1a;https://baomidou.com/pages/2a45ff/#dynamictablenameinnerinterceptor 插件的部分源码如下&#xff…

大模型面试准备(十):大模型数据处理方法及优秀的开源数据介绍

节前&#xff0c;我们组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、参加社招和校招面试的同学&#xff0c;针对大模型技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何备战、面试常考点分享等热门话题进行了深入的讨论。 合集在这…

【Consul】Linux安装Consul保姆级教程

【Consul】Linux安装Consul保姆级教程 大家好 我是寸铁&#x1f44a; 总结了一篇【Consul】Linux安装Consul保姆级教程✨ 喜欢的小伙伴可以点点关注 &#x1f49d; 前言 今天要把编写的go程序放到linux上进行测试Consul服务注册与发现&#xff0c;那怎么样才能实现这一过程&am…

内网渗透之域环境探索和简单提权

参考文章&#xff1a;http://t.csdnimg.cn/AZ2OR 一个简单的域环境可以这样子搭建&#xff1a; 其中边界服务器有两张网卡&#xff0c;一个是对外的公网网卡&#xff0c;另一张是对内的局域网网卡。一般渗透过程中&#xff0c;拿下这个作为跳板机&#xff0c;进而继续渗透。 …

P23—P25:标识符和关键字

标识符 什么是标识符&#xff1f; 在java源程序中&#xff0c;程序员有权自己命名的单词都是标识符在EditPlus编译器中&#xff0c;表示符以黑色高亮字体显示 标识符可以标识什么元素&#xff1f; 类名方法名变量名接口名常量名 … 标识符的命名规则&#xff1a; 只能由**数…

C++学习随笔(8)——模板初阶

本章我们来学习一下C的模版部分&#xff01; 目录 1. 泛型编程 2. 函数模板 2.1 函数模板概念 2.1 函数模板格式 2.3 函数模板的原理 2.4 函数模板的实例化 2.5 模板参数的匹配原则 3. 类模板 3.1 类模板的定义格式 3.2 类模板的实例化 1. 泛型编程 如何实现一个通…