13.网络游戏逆向分析与漏洞攻防-网络通信数据包分析工具-如果没有工具就创造工具

news2024/9/22 3:41:31

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

上一个内容 :12.游戏网络通信存在的问题

现在把游戏网络的架构看了一个小小的大概,可以用它的接口发数据接收数据了,如果真正想用它这一套东西,真正核心不在于它的接口而在于它的数据包的格式或内容,写下来就是去解读它的数据

下图是之前用来说话的一段数据包:就是默认接收下图的数据,紧接着游戏里面就收到了说话的内容,这就是模拟服务器去欺骗客户端,一个例子比如人物跟人打架,摔倒了,摔倒了在客户端会有一个时间,比如一段时间里不能动,僵直这样的操作,然后利用数据包,给自己发一个数据包,又站起来了,在客户端上站起来了,在服务端还没有,这个时候如果限制不严格,在客户端做的操作就又会发送给服务端,通过这样的方式就可以做很多事情,这也是研究漏洞的一种非常重要的形式,所以漏洞不仅仅是从客户端发数据到服务端,也有模拟服务端发数据给客户端

然后接下来,该怎样解读这个数据包?首先上图中的内容,它说话的内容肯定存在,这个数据是怎样组织怎样解读,可以通过逆向分析去分析,但是通过逆向分析去分析只适用一两个数据,如果说有大量的数据全部通过逆向分析成本是非常高的,所以要优先进入一个初步分析,然后把那些不能突破的东西再逆向分析。

然后正常来讲,客户端拿到一段数据它会进行解读,然后不同的数据,它不可能每个数据都有不同的解读方式,就算它有解读的方式,那它也必须要有解读的图纸,就是说这个东西应该根据图纸这样解读,或者说它没有这样的规划,它就要有一种系统性的解读方式。

如果它用的图纸,比如:

A数据包用的a号图纸解读,B数据包用b号图纸解读,就是把数据包定义成结构体,比如前面两个代表什么后面两个代表什么只要放到这个结构体里就行,这也就是说拿到结构体的定义就可以了

系统性的方法:

有系统性的就要破解出来写成算法,然后用这个系统性方法还原数据去组织数据

数据包只能多看多搞,用文本文档搞比较类,所以要搞个工具。

工具的功能:

首要要把数据包显示出来,然后还要可以把选中的数据单独拿出来显示方便查看,比如关键信息在数据包里一定是有的,但有很多信息不知道它是什么内容,就把其中某段数据选中,比如选中了四个字节的数据,然后就要把这四个字节组合起来的内容显示出来,如果它是字符串是什么样子,如果它不是字符串是小数是什么样子等就是把所有常用的类型都展示出来,然后根据显示的内容就可以猜测数据包里这四个字节的数据是什么东西

工具的功能划分:

1.显示通信数据包内容,根据数据包类型进行分别显示

2.能够显示鼠标选中的区域可能的内容

3.搜索,比如123456它出现在那一段里面

4.把内容写到硬盘文件

5.可以在不同项目中使用,所有网络通信就三个元素,第一是数据包,第二是它的长度,还有类型

6.过滤,比如某个数据包解读好了,比如数据包开头0x1F是它的特征,这时就把开头是0x1F的数据包过滤掉



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

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

相关文章

私域必备宝藏工具:多微信统一管理聚合聊天

对于私域流量运营者来说,如何高效管理多个微信号成为了一道难题。 不过不用担心,通过微信管理系统,可以实现多个微信同时登录,同一个界面内聚合聊天,省去来回切换账号的步骤。而且,还有很多非常实用且便捷…

Chrome插件 | WEB 网页数据采集和爬虫程序

无边无形的互联网遍地是数据,品类丰富、格式繁多,包罗万象。数据采集,或说抓取,就是把分散各处的内容,通过各种方式汇聚一堂,是个有讲究要思考的体力活。君子爱数,取之有道,得注意遵…

种花

分情况&#xff1a; 第一盆k种选择&#xff0c;之后全部k-1种选择 每次相乘结果对1e97取模 #include <iostream> #include <vector> #include <algorithm> using namespace std; #define endl \n const int N 1e9 7;int main() {ios::sync_with_stdio(f…

camunda7流程版本的控制和使用

1、流程定义的版本控制 从本质上讲&#xff0c;业务流程是长期运行的&#xff0c;流程实例可能会持续数周或数月。同时&#xff0c;流程实例的状态将存储到数据库中。但是&#xff0c;即使仍有正在运行的实例&#xff0c;您也可能需要更改流程定义。 流程引擎支持此功能&…

笔记73:ROS中的各种消息包

参考视频&#xff1a; 33.ROS 的标准消息包 std_msgs_哔哩哔哩_bilibili 34. ROS 中的几何包 geometry_msgs 和 传感器包 sensor_msgs_哔哩哔哩_bilibili 标准消息包&#xff1a;std_msgs常用消息包&#xff1a;common_msgs导航消息包&#xff1a;nav_msgs几何消息包&#xf…

C++数据结构与算法——二叉树的属性

C第二阶段——数据结构和算法&#xff0c;之前学过一点点数据结构&#xff0c;当时是基于Python来学习的&#xff0c;现在基于C查漏补缺&#xff0c;尤其是树的部分。这一部分计划一个月&#xff0c;主要利用代码随想录来学习&#xff0c;刷题使用力扣网站&#xff0c;不定时更…

C++——String(1)

目录 1. 为什么学习string类&#xff1f; 1.1 C语言中的字符串 1.2 相关题目 2. 标准库中的string类 2.1 string类&#xff08;了解一下&#xff09; 2.2 string类的常用接口说明 1. string类对象的常见构造 2. string类对象的容量操作 3. string类对象的访问及遍历操作…

瑞_Redis_Redis的Java客户端

文章目录 1 Redis的Java客户端1.1 Jedis快速入门1.1.1 入门案例1.1.1.1 项目构建1.1.1.2 引入依赖1.1.1.3 建立连接1.1.1.4 释放资源1.1.1.5 测试1.1.1.6 完整测试类代码 1.1.2 Jedis连接池1.1.2.1 连接池工具类1.1.2.2 改造原始代码 &#x1f64a; 前言&#xff1a;本文章为瑞…

【Java程序设计】【C00327】基于Springboot的高校教师教研信息填报系统(有论文)

基于Springboot的高校教师教研信息填报系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的高校教师教研信息填报系统&#xff0c;本系统有管理员、教研管理以及教研人员三种角色&#xff1b; 管理员&#xff1a…

bvh文件,人体骨骼重定向

关于两个bvh文件&#xff0c;人体骨骼重定向&#xff0c;小白记录 1、打开 Motionbuilder &#xff0c;选择 打开特定路径下的bvh文件。 绑定骨骼&#xff08;在绑定骨骼过程中&#xff0c;如果骨骼角度&#xff0c;大小之类的不方便&#xff0c;可以shift键加鼠标拖拽界面&…

Fabric V2.5 通用溯源系统——应用后端GIN框架部分设计

本节对Fabric V2.5 通用溯源系统的应用后端部分做一个简单的介绍,包括目录结构、文件作用、用户注册登录与农产品信息上链过程介绍。此节内容免费发布在TrueTechLabs Fabric学习交流QQ群。 购买专栏前请认真阅读:《Fabric项目学习笔记》专栏介绍 TrueTechLabs Fabric学习交流…

蓝桥杯刷题2

1. 修建灌木 import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scan new Scanner(System.in);int n scan.nextInt();for (int i 1;i < n1;i){int distance Math.max(i-1,n-i);System.out.println(distance*2);}scan.close…

Node.js+Express后端,自定义接口

6分钟学会Express 后端 API 开发 Node.js 2020最新版_哔哩哔哩_bilibili 要使用Node.js和Express搭建一个简单的后台服务器&#xff0c;用于接收带有token的请求头&#xff0c;你可以按照以下步骤进行操作&#xff1a; 首先&#xff0c;确保你已经安装了Node.js和npm&#xff0…

马斯克正式起诉OpenAI和奥特曼!

就在刚刚&#xff0c;马斯克闹出来一件大事——正式起诉OpenAI和Sam Altman&#xff0c;并要求OpenAI 恢复开源GPT-4等模型&#xff01; 众所周知&#xff0c;马斯克这两年一只在推特上指责 OpenAI是CloseAI(不开源)&#xff0c;但都只是停留在口头上。 而这次马斯克动了真格。…

Qt 自定义长条进度条(类似播放器进度条)

1.运行界面 2.步骤 其实很简单。 2.1绘制底图圆角矩形 2.2绘制播放进度圆角矩形 参考&#xff1a;painter绘图 3.源码 #pragma once#include <QWidget> #include <QLabel> #include <QHBoxLayout> #include <QMouseEvent> #include <QDebug&g…

2D割草/吸血鬼游戏 性能优化——GPU Spine动画

视频中万人同屏方案(gpu动画、渲染、索敌、避障等功能)&#xff0c;可某宝搜店铺&#xff1a;【游戏开发资源商店】获取整套方案源码。 在过去的几年里&#xff0c;割草、类吸血鬼玩法的游戏频出爆款&#xff0c;其丰富的技能、满屏特效、刷怪清屏的解压畅快是此类游戏的核心&…

队列实现栈与栈实现队列

文章目录 前言一、使用队列实现栈二、使用栈实现队列 前言 1、用于巩固栈和队列。 2、本章是使用纯C语言实现的栈和队列&#xff0c;不懂的可以先看看这个喔&#xff1a;c语言实现栈和队列&#xff0c;当然这里直接用C的栈和队列会更方便哦。 3、利于复习C语言的知识点。 一、使…

杭电OJ 2044 一只小蜜蜂... C++

思路&#xff1a;本质与斐波那契数列一样&#xff0c;关键在于a与b之差 #include <iostream> #include <vector> using namespace std; int main() { vector<long long> nums(51); nums[0] 0; nums[1] 1; nums[2] 2; for (int i 3; i < 5…

设计模式——2_3 迭代器(Iterator)

生活就像一颗巧克力&#xff0c;你永远不知道下一颗是什么味道 ——《阿甘正传》 文章目录 定义图纸一个例子&#xff1a;假如你的采集器供应商提供了不同类型的返回值单独的遍历流程实现 碎碎念如果读写同时进行会发生啥&#xff1f;外部迭代和内部迭代迭代器和其他模式迭代器…

Spring框架知识点

Spring框架知识点 Spring框架中的单例Bean是线程安全的吗&#xff1f; 答&#xff1a;Spring框架中有一个Scope注解&#xff0c;默认值是singleton&#xff0c;单例的&#xff0c;当bean中定义了可变参数&#xff0c;就不是线程安全的。我们建议不要注入有状态的变量&#xf…