2009-09-15 31 views

回答

2

商业游戏预计人们会试图破解协议作为一种欺骗手段,所以通常会使用加密,也可能会使用篡改检测。

停止这种类型的活动是游戏制造商非常关心的问题,因为当少数玩家拥有超级工具时,会破坏大多数玩家的体验。对于在线扑克等游戏,其后果更为严重。

+0

谢谢,等不及要深入挖掘今晚的工作:)你知道解决这类问题的任何资源吗?我可以尝试解密和搜索数据包加密功能吗? muahah – Shawn 2009-09-15 19:32:31

+0

如果数据已加密,那么Wireshark将对您无用。你需要一个调试器来读取和解密数据。 – Kylotan 2009-09-16 09:51:46

8

是的,这是可行的。但它的实用程度取决于所讨论的游戏。压缩会使你的工作变得更加困难,并且加密将使它变得不可能(至少通过Wireshark - 你仍然可以获得内存中的数据)。

也许最好的方法是有条不紊地做 - 不要记录'一堆流量',而是在游戏中执行一个单独的动作或命令,并查看发送了哪些数据以进行通信。然后,您可以查看包并尝试找出任何感兴趣的东西。通常你不会从中学到很多东西,所以试试另一个命令并将新消息与第一条消息进行比较。哪些部分在同一个地方?哪部分移动了?哪些部分完全改变了?尤其要注意可能描述消息类型的数据包开始附近的固定位置的值。一般来说,数据包的开始将是类似于头部的通用内容,后面的部分数据包将成为特定于消息的部分。考虑到UDP协议通常有自己的手卷订单或可靠性方案,并且您可能会在开头附近找到序列号。

了解您的数据类型非常方便。例如,整数值可能以big-endian或little-endian格式存储。许多游戏都会将数据作为浮点值发送,因此可以查看可能描述位置或速度的连续2或3个浮点数。

相关问题