如何使用数据包破解游戏 - 从这里开始

什么是包?

您的游戏客户端和服务器始终处于通信状态。从一个到另一个的每次传输称为一个数据包。

有时它是由一系列数据包组成的数据包“流”,有时它只是一个具有个人用途的数据包。

游戏使用的协议是 TCP 和 UDP

游戏将打开端口,操作系统接收数据包并通过管道将它们传送到具有正确端口的进程。客户端和服务器都将具有数据包的发送和接收功能。这些游戏功能的基础是普通的 Windows winsock 功能。

这是一个数据包编辑在游戏中的指南

您会找到有关该主题的一般信息的大脑转储,然后是我们最好的线程、工具、教程和其他重要资源链接的集合。

首先,如果您是菜鸟:捕获数据包、反转数据包和发送数据包不适合您。只有具有至少 1 年经验的足够游戏黑客才应该考虑它。如果您是个白痴,请不要创建关于数据包的线程(是的,这意味着您)

数据包游戏分布指南

1.了解数据包

2.在游戏客户端中查找数据包的函数。将它反转

3.钩住发包函数,并记录他们

4.反向包函数

5.注入一个可以调用Send Packet()的Dll

6.发送你要发送的数据包

为什么做游戏黑客会关心数据包呢?

  • 我们是可以发送数据包的
  • 处理数据包会暴露游戏逻辑中可能包含最多漏洞的区域。
  • ”健全性检查“类型逻辑通常应用于客户端所做的操作,但不会对数据包进行相同的检查。
  • 服务器可能不会实现客户端限制,向服务器发送送数据,服务器可能会在客服端踢你时候接受它
  • 先要在看不到玩家的情况下射击他们?发送数据包欺骗你的坐标。可能会奏效
  • 客户可能对它不应该拥有的东西具有权威性。
  • 客户端永远不会向服务器发送“不正确”的值,但我们可以使用数据包。
  • 有些功能需要太多的逻辑和东西来反转。有时你可以只发送一个数据包,你会得到同样的效果。(不要有任何想法菜鸟,这不是那么容易)
  • 您可以为mmo bots等制作自己的客户端...

客户端和服务器之间的数据包是怎末交互的?

  • 客户端捡起一个健康药水 -> 客户端运行 pick() 函数 -> 健康药水数量增加 1
  • Pickup() 创建一条消息发送到服务器 ->“客户端拿起了健康药水 B”
  • 游戏客户端将此消息转成一个数据包,数据为“客户端捡到了健康药水B”
  • 数据包具有附加数据,包括数据大小、数据包 ID、数据包大小等...
  • 让我们调用这个函数 AssemblePacket()
  • 然后游戏客户端调用调用 winsock 发送函数的 SendPacket()
  • 消息现在被封装在一个 TCP/UDP 数据包中并发送
  • 服务器的操作系统接收数据包,将其传送到正确的进程
  • 数据包由 winsock 接收函数接收
  • 游戏服务器检索TCP数据包中的“游戏数据包”
  • 服务器调用 DissassemblePacket(),获取消息和其他必要的数据
  • 现在“消息”由服务器网络消息处理程序处理
  • 执行服务器端pickup(),从地图中删除该pickup并增加客户端的药水数量服务器端
  • 现在服务器必须向所有客户端更新世界/地图/拾取数据以告诉他们拾取不再可用
  • 新信息被发送到服务器上的 AssemblePacket(),然后通过 SendPacket() -> Winsock Send() 发送到所有客户端

对于更严肃的游戏,您将有另一层封装:EncryptPacket() 和 DecryptPacket()

我们不关心 TPC/UDP 和 Winsock。我们关心 Winsock 的唯一原因是我们使用对这些 winsock 函数的引用来查找 AssemblePacket() 和 DisassemblePacket() 函数。

因为我们只关心游戏关心的东西。我们想使用游戏逻辑来破解游戏。数据包内的数据是重要的部分。
分析工具网址链接:Downloads page

更多内容QQ群:592163319

你可能感兴趣的:(tcp/ip,udp,网络)