当前位置:  开发笔记 > 程序员 > 正文

除了Wireshark之​​外,我如何进行逆向工程基于UDP的自定义游戏协议?

如何解决《除了Wireshark之​​外,我如何进行逆向工程基于UDP的自定义游戏协议?》经验,为你挑选了1个好方法。

除了Wireshark之​​外,我如何进行逆向工程基于UDP的自定义游戏协议?我可以记录一堆流量,但那又怎么样?我的目标是为Wireshark编写一个解剖器插件,最终能够解码游戏命令.这看起来可行吗?我可能面临哪些挑战?命令是否可以加密?



1> Kylotan..:

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

可能最好的解决方法是有条不紊地做 - 不要记录"一堆流量",而是在游戏中执行单个动作或命令,看看发送的数据是什么.然后你可以查看数据包并尝试发现任何感兴趣的内容.通常你不会从中学到很多,所以尝试另一个命令并将新消息与第一个消息进行比较.哪些部件在同一个地方?哪些部分搬了?哪些部分完全改变了?特别注意可能描述消息类型的数据包开头附近的固定位置的值.一般来说,数据包的开头将是标题之类的通用内容,后面的数据包部分将是消息特定的.考虑到UDP协议通常有自己的手动排序或可靠性方案,并且您可能会在开始附近找到序列号.

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

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有