手头有一个有趣的问题。我有一个角色扮演的mmog通过一个客户端应用程序(不是浏览器)运行,它将我的播放器的动作发送到一个服务器,服务器通过发送数据包来保持所有播放器的同步。
现在,游戏使用TCP/IP上的顶层协议来发送数据。然而,wireshark不知道使用的是什么协议,它将TCP头之外的所有内容显示为转储。
此外,此转储没有任何纯文本字符串。尽管游戏有聊天功能,但发送的聊天字符串在这个转储文件中不会被视为纯文本。
我的任务是对协议进行一些反向工程,以找到关于包中包含的数据的一些非常基本的东西。
有人知道为什么聊天字符串不能以纯文本形式显示,以及是否有可能使用标准的顶级协议吗?
此外,是否有任何工具可以帮助从转储中获取数据?

最佳答案

如果它是加密的,你就有机会(事实上,如果处理得当,你就有100%的机会):密钥必须位于计算机上的某个位置。只需打开你最喜欢的调试器,从一个socket中观察一些数据(呃,我希望是100字节左右),在数据上设置一个观察点,然后查看访问它的东西的堆栈跟踪。如果你真的很幸运,你甚至可以看到它被解密了。如果没有,你可能会发现他们使用的是标准加密算法(从理论安全的角度来看,他们是傻瓜),或者通过查看堆栈跟踪(如果你幸运的话),或者使用现有的IV/S-Box配置文件之一(避免学术的,大多数是他们不会不费吹灰之力就工作的)。许多加密算法使用可以检测到的“标准数据”块(这些是IVS/S盒),这些是您在没有其他信息的情况下寻找的。无论你找到什么,谷歌它,并尝试覆盖他们的加密库,以转储正在加密/解密的数据。从这些垃圾堆中,应该比较容易看到发生了什么。
加强加密会话可能会很有趣,但它需要调试器技能和大量阅读。这可能令人沮丧,但如果你花时间学习如何做,你不会感到遗憾:)

09-08 00:03